一:硬件资源
1. Arduion UNO R3
2. ESP8266WIFI模块
二:需要提前明确的知识点
1. ESP8266模块具有TCP透传功能,通过AT指令可以使得WIFI模块连接至相应的服务器
2.onenet具有多协议接入方式,例如TCP透传,HTTP协议,EDP, MQTT等,每种协议接入的IP地址和端口号是不同的,例如HTTP协议时IP为"183.230.40.33",端口80, 而TCP透传协议时IP为“”183.230.40.40",端口1811
3.当使用TCP透传协议接入onenet时,需要提前在Onenet中上传lua脚本,onenet会更具你上传的脚本解析你上传的数据,lua脚本中最重要的函数是
device_data_analyze(dev) 为终端上行数据解析函数,每一包数据都会经过其处理;
device_timer_init(dev) 为定时器初始化函数,用于指定周期性的数据下发操作;
三:具体操作步骤
1.在ONENET中注册TCP透传协议的产品,然后添加设备
2.上传lua脚本值onenet
3.在ArduinoIDE编码实现通过AT指令控制ESP8266,使得ESP8266连接至Onenet TCP透传服务器
const char * at = "AT\r\n";
const char * at_cwmode = "AT+CWMODE=1\r\n";
const char * at_rst = "AT+RST\r\n";
const char * at_cwjap = "AT+CWJAP=\"tplink111\",\"tttttttt\"\r\n"; //此处改wifi名称和密码
const char * at_cifsr = "AT+CIFSR\r\n";
const char * at_cipmux = "AT+CIPMUX=0\r\n";
const char * at_cipmode = "AT+CIPMODE=1\r\n";
const char * at_cipstart = "AT+CIPSTART=\"TCP\",\"183.230.40.40\",1811\r\n";
const char * at_cipsend = "AT+CIPSEND\r\n";
const char * tcp_connect = "*346686#123546#pump*\r\n"; //346686为产品ID, 123456为设备鉴权信息,pump为lua脚本名称
通过Arduino串口向ESP8266发送上述字符串,ESP8266执行无误便可通过TCP透传协议连接至Onenet,后续就可以发送数据了.
4 发送数据至onenet并解析onenet响应或者onenet下发的指令
四:Arduino代码及Lua脚本: