关于arduino和zigbee串口16进制通讯问题

      这几天我作毕业设计遇到的问题。这个问题就是个人uno板子怎样和zigbee通讯起来。先说说个人思路,把uno作成一个网关,从而连上互联网,而zigbee就是作无线通讯。去跟个人传感器通讯,把个人传感器的数据发给协调器,而后协调器和uno通讯。关键就在于怎么把uno和协调器通讯起来,个人zigbee板子用的是创思通讯的开发板。这板子很不错,学习资料都有,因为zigbee协议我看不懂。我就拿来主义,直接用的给好的代码。一个当终端,一个当协调器。代码不少,我就看了几个关键的地方。而后又看看协调器是怎么能过串口跟电脑的串口助手通讯的。oop

      zigbee串口通讯就是上图红色所看来的要求。因为我对串口通讯不太熟悉,当我第一次看到要HEX显示和HEX发送时,我是来懂的。而后上百度,看了几个网页。才知道,哦!原来就是以16进制发送显示啊。(到如今我也不知道是否是这样的)知道了zigbee是怎么通讯的。那下一步,我就让个人uno板子按上面的要求来和zigbee通讯了。因为我不知道uno要怎么代码才能够达到上要的要求。我又一次百度了。这个过程,我看了好几天。由于,我对hex方式通讯不懂啊,走了不少的弯路。而个人这篇文章就是要帮助像我以前不怎么懂的人,能够从我这里有所帮助。学习

      说回正文,我从百度中看到了,若是要串口发送hex16进制的话。uno是要用Serial.write的,我不知道是为何,我以前用Serial.print发送有问题。再用Serial.print(xxx,HEX)发送仍是有问题。最后,我就用了Serial.write就能够发送成功了。下面我就把个人代码显示下
设计

unsigned char d_ligth[7]={0x3a,0x00,0x04,0x0a,0x01,0x35,0x23};//这是发送协调器代码
unsigned char d_dark[7]={0x3a,0x00,0x04,0x0a,0x00,0x34,0x23};
void setup() {
  // put your setup code here, to run once:
  Serial.begin(38400,SERIAL_8N1);
}

void loop() {
  // put your main code here, to run repeatedly:
  Serial.write(d_ligth,7);//uno发送的方式
  time_10s();
  Serial.write(d_dark,7);
  time_10s();
}
void time_10s(){
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
  delay(1000);
}code

    上面代码几行,但是我这几天百度,学习的结果。只是但愿写下来,给有须要的人帮助。第一次写这类型的文章。有错误的地方,请见谅!
开发

相关文章
相关标签/搜索