欢迎下载研华科技主题白皮书:
【AIoT】研华AIoT边缘智能及网关解决方案
[摘要] 物联网、大数据、云服务与人工智能,是产业数位转型的关键科技趋势,透过创新应用,将替各产业带来巨大商机与全新 局面。研华以坚强的硬件实力为基础,开发出多元软件服务。
https://www.eefocus.com/resource/advantech/index.php?act=detail&item=1496
这篇开始,我们就真正做《网关》升级版教程了,采用arduino+zigbee哦。
arduino简单易学,zigbee自组网(如果不懂c语言,直接用就好,我们已经刷好自组网代码)!
这次我们的教程是通过以下配件实现《网关》功能,并在手机端点击按钮,使zigbee模块上的灯闪亮(实现是发送真正的命令了{ckxxxxxxxxx}的格式)!
通过不同的格式命令就可以操作开、关、接收、发送数据!之后《温湿传感器》《zigbee插座》等就可以直接连上了!
上面就是arduino开源网关的配件。
1、SMARTRF04EB(ZIGBEE下载器)
2、CP2102(arduino下载器)
3、电源供电
4、arduino板(含w5100、zigbee插槽、SD卡座)
5、zigbee开发板 (如果只想学zigbee只需要两块开发板和zigbee模块,自组网学习哦)
6、zigbee模块
实现自己的arduino开源网关吧(自己有arduino和w5100是可以代替我们的arduino板的)。第一部份:arduino板刷上代码。
一、安装CP2102驱动(USB驱动)
https://pan.baidu.com/s/1o6iDLcm(下载后直接安装或发现有新硬件就更新驱动)。
二、将CP2102连上arduino板底下的插槽的一定要一一对应哦。DTR->DTR
GND->GND
TX->RXI
RX->TXO
VDD3.3->VCC
三、刷arduino代码
大家可以直接在这里下载源代码:
https://pan.baidu.com/s/1i386zPV(包含arduino软件和所有的库)
下面我们就贴上代码(都有注释哦)
#include
#include
#include
#include
#include
//请到m.znck007.com申请登陆-》家中环境-》网关,里可以看到!
#define APIKEY "xxxxxxxxxxxxxxxx" //设置apikey
uint16_t sid=001;//设置sid(设备号)
//NRF24l01发送接收节点
const uint16_t this_node = 0;
const uint16_t other_node = 1;
//NRF24l01收发数据
struct payload_t
{
uint32_t ms;
uint32_t data;
char sendchar[20];
};
//NRF24l01脚针设置
iBoardRF24 radioSend(3,8,5,6,7,2);
iBoardRF24Network networkSend(radioSend);
bool ispayload=false;//NRF24l01收发判断
uint16_t sendChannel=1;//NRF24l01发送频道
uint32_t sendCount=0;//NRF24l01发送次数
char incomingData[20]={0};//NRF24l01接收到的字符(其它设置发过来)
//设置MAC地址,如果有二个请改为不同(随意)
static byte mymac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
EthernetClient client;//声明网关类
char server[] = "api.znck007.com";//声明API网址
//char urlBuf[] = "/index.php";
static long timer;//用于规定时间间隔
unsigned long last_http;//记录http时间,用于http超时判断,目前20秒无响应则重新GET。
bool ishttpget=false;//标示http是否已经结束
bool isUpdate=false;//成功则更新服务器数据为正常
char updateData[20]={0};//更新的字符(服务器通过字符分析指定某个设备)
//串口通信处理(主要用于zigbee通信
1