Arduino基于ESP8266模块的TCP透传功能使用TCP透传协议连接移动onenet

一:硬件资源

      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脚本:

  https://download.csdn.net/download/oofish0519/12456281

你可能感兴趣的:(Stm32,Arduino)