Zigbee物联网组网

物联网的核心和基础是互联网,物联网是在互联网基础上的延伸和扩展的网络,然而在物联网当中基于海量数据的无线传感网是物联网极具代表的网络之一,其用户端延伸和扩展到了任何物品与物品之间,进行信息交换和通信。

硬件设备及连接:

(1)M0物联网平台作为终端节点。

(2)Zigbee模块作为协调器。

(3)Ulink2烧写器负责设备程序烧写工作。

1. 物联网IDE开发环境搭建

Keil5开发环境,ulink2驱动程序,串口驱动程序,IAR Zigbee开发环境。

2.物联网平台M0介绍与使用

M0平台外设资源

• 处理器LPC11C14;

• 主频高50MHz,外接12MHz晶体,实际工作48MHz;

32KB Flash8KB SRAM;

• 1个I2C接口的256KB EEPROM,1个SPI接口的256KB Flash;

• 1个MCU片上的UART接口,通过板上的USB转换后可与PC或其他装置连接。

• 2个扩展UART接口

• 1个I2C总线接口,2个SPI总线接口

• 1个CAN总线接口

• 1个RS-485/RS-422可选双功能接口

• 2路ADC输入

• 1个128×64点阵OLED双色(黄和蓝)显示屏

3.物联网平台M0程序烧写

编写测试程序:

程序源码片段:

case KEY_SEL:

//触发按键分支判断为Zigbee发送数据

switch(menu.numb)

//菜单触发分支判断选择Zigbee控制菜单

{

case 1:

//开关语句1负责通过Zigbee节点发送数据到Zigbee协调器"Hello ZigBee! "

ZigBee_PutString("Hello ZigBee! ");

//调用ZigBee_PutString()Zigbee通讯接口实现数据的发送工作

printf("\r\nSend Hello ZigBee! ");

//底层调试打印

break;

case 2:

//开关语句2负责通过Zigbee节点发送数据到Zigbee协调器"FAN On "

ZigBee_PutString("FAN On ");

//调用ZigBee_PutString()Zigbee通讯接口实现数据的发送工作

printf("\r\nSend Turn on FAN ");

//底层调试打印

break;

case 3:

//开关语句3负责通过Zigbee节点发送数据到Zigbee协调器"FAN Off "

ZigBee_PutString("FAN Off ");

//调用ZigBee_PutString()Zigbee通讯接口实现数据的发送工作

printf("\r\nSend Turn off FAN ");

//底层调试打印

break;

default:

break;

}

delay_ms(250);

break;

4.物联网平台M0 Zigbee组网实验实施

组网和实施相结合

物联网协调器组网效果:单板D8 Led

物联网终端节点组网效果: 单板Led6亮

物联网Zigbee组网数据通讯可以看到终端的串口有数据出现说明通讯成功!

嵌入式物联网需要学的东西真的非常多,千万不要学错了路线和内容,导致工资要不上去!

分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!点击领取

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ZigBee是一种无线通信协议,它可以用于组建低功耗、低速率、短距离的无线网络。以下是一个基本的ZigBee组网示例代码,供参考: ``` #include <XBee.h> #define PAN_ID 0x3332 #define NODE_ID 0x01 XBee xbee = XBee(); void setup() { Serial.begin(9600); xbee.begin(Serial); // 初始化ZigBee模块 xbee.setPAN(PAN_ID); xbee.setNodeIdentifier(NODE_ID); xbee.setDestinationAddress(ZB_BROADCAST_ADDRESS); xbee.setSerial(Serial); } void loop() { // 发送数据包 uint8_t payload[] = "Hello, world!"; ZBTxRequest zbTx = ZBTxRequest(ZB_BROADCAST_ADDRESS, payload, sizeof(payload)); xbee.send(zbTx); delay(1000); // 接收数据包 if (xbee.available()) { XBeeResponse response = xbee.getResponse(); if (response.getApiId() == ZB_RX_RESPONSE) { ZBRxResponse rx = ZBRxResponse(response); uint8_t* data = rx.getData(); uint8_t len = rx.getDataLength(); Serial.print("Received data: "); for (int i = 0; i < len; i++) { Serial.print(data[i]); } Serial.println(); } } } ``` 这段代码使用XBee库来实现ZigBee通信,其中包含了初始化ZigBee模块、发送数据包和接收数据包的代码。在setup()函数中,我们设置了ZigBee网络的PAN ID和节点ID,然后初始化了XBee对象。在loop()函数中,我们发送了一个包含字符串"Hello, world!"的数据包,并通过delay()函数等待一秒钟。然后,我们检查是否有可用的数据包并接收它们。如果接收到了ZB_RX_RESPONSE类型的响应,我们将数据打印到串口上。 请注意,这只是一个基本的示例代码,实际应用中需要根据具体情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值