一:硬件資源
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腳本: