ESP8266透传接入中国移动OneNet

这块ESP8266买回来也放了挺久了,这两天突然想拿起来玩玩,简单的本地操作玩过之后,就想试试连接服务器,一开始是选择了阿里云的物联网平台,然后。。没搞出来。用了乐鑫原厂的DEMO,装linux虚拟机一套操作猛如虎,搞了两天之后倒是成功连上了平台,但是用不了AT指令,而且平台和模块之间一直疯传一堆东西,我也没看懂(笑。
然后被人推荐了移动的OneNet平台直接用透传接入。倒腾了一下午终于是成功连上了,中间遇到了许多问题,所以写上来和大家分享一下。
我一开始的配置是参考了这篇文章:中国移动OnetNet云平台 使用WIFI模块ESP8266 TCP透传模式传输数据流步骤
在此也是感谢作者。
下面是我的调试过程。

环境准备

  • 我使用了UartAssist串口调试助手,大家可以选用自己习惯的调试助手,应该都没什么问题。
  • 注册OneNet账号,创建产品,添加设备,具体方法可以参考官方平台提供的开发文档(这里很简单,一步一步来就行)

模块准备

我是刷入了安信可提供的AT固件。具体的方法不再赘述,可以参考安信可官网wiki:https://wiki.ai-thinker.com/esp8266

开始接入

下面是直接引用的 https://www.cnblogs.com/Mysterious/p/4816482.html?tdsourcetag=s_pctim_aiomsg 这篇文章的内容,为了读者阅读方便就直接贴在下面了。第一次写文章不知道怎么引用或者其他什么操作,如果有侵权或者其他问题请原作者或者管理员私信我。

发送指令顺序:

AT
这个指令要看到有AT OK说明你的供电和TTL和wifi模块通讯正常

AT+CWMODE=3
设置模式3,STA+AP,其实我们只用了STA

AT+RST
让模块复位,能在接收信息最下面看到 ready,说明模块复位成功。复位后就是STA+AP模式了

AT+CWJAP=“your ssid”,“password”
输入你无线路由器的用户名和密码,一定要写正确,注意大小写

AT+CIFSR
查询IP,因为有STA和AP两个模式,所以有两组MAC和IP,常见的是192.168.x.x局域网IP

AT+CIPMUX=0
设置单链接,透传只能在单连接模式下进行,所以在建立连接之前一定要用(AT+CIPMUX=0 设置单连接)

AT+CIPMODE=1
设置透传模式

AT+CIPSTART=“TCP”,“183.230.40.33”,80
连接OneNet服务器

AT+CIPSEND
启动透传发送

我按照原文章操作到这里没有任何问题,但是接下来的步骤会出错,无法正确连接到平台,以下是原内容:

POST /devices/79146/datapoints HTTP/1.1
api-key: pmWLtnkDBSreKfvg7GsClUXdXa4A
Host:api.heclouds.com
Connection:close
Content-Length:59

{"datastreams":[{"id":"TEMP","datapoints":[{"value":50}]}]}

发送JSON数据流,格式一定要正确,大多数人失败都是在这里格式不对

其中79146修改为你自己的设备ID

api-key后面的内容修改为自己的API-KEY

"TEMP"这个是我的数据流名称,修改为自己想要的

“value”后面的50就是数据,输入想要的。

然后回过头看下Content-Length:59

Connection:colse这一条如果加了,服务器接收到一次数据后会断开,如果不加可以连续发送数据。如果长时间不发送,也同样会关闭链接的。

这个59是后面的整个数据流的长度

一个小技巧,可以用Notepad++软件直接选中看这个长度是多少,别自己数,数错了就悲剧了!

这里困扰了我很久,我尝试用TCP助手连接平台,是没有问题的
最后的解决方案是,在串口调试助手中,所有应该输入回车的地方用\n代替,我一开始试过用shift+回车,但是没有用,串口助手只是在屏幕显示时完成了换行,这样传送给模块的代码就没有回车
所以修改后的代码是:

POST /devices/79146/datapoints HTTP/1.1\n
api-key: pmWLtnkDBSreKfvg7GsClUXdXa4A\nHost:api.heclouds.com\n
Connection:close\nContent-Length:59\n\n
{"datastreams":[{"id":"TEMP","datapoints":[{"value":50}]}]}

注意!!代码中的\n表示传输给模块的换行指令,然后为了阅读的方便,我用shift+回车将代码换行了
shift+回车只是在串口助手中显示换行,实际上并不会将换行指令传输给模块

成功后,模块返回数据如下:

{“errno”:0,“error”:“succ”}HTTP/1.1 200 OK Date: Tue, 04 Dec 2018
16:11:47 GMT Content-Type: application/json Content-Length: 26
Connection: keep-alive Server: Apache-Coyote/1.1 Pragma: no-cache

{“errno”:0,“error”:“succ”}

然后登陆自己的平台账户,设备数据那里就可以看到自己刚刚上传的数据了
在这里插入图片描述

至此,就完成了ESP8266模块通过透传与OneNet平台的通信。

尾记

使用AT指令加透传连接平台很方便,基于此可以将WIFI模块连接MCU,进而完成更复杂的操作。
我后期还是会尝试直接通过TCP协议连接阿里云平台,成功后也会写上来和大家分享,不过又懒又菜的我,做出来也不知道是什么时候了(笑。

  • 9
    点赞
  • 72
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 首先,您需要在移动onenet平台上创建一个设备并获取设备ID和API Key。然后,您需要将ESP8266-01S连接到您的WiFi网络,并使用AT指令将其配置为连接到onenet平台。以下是一些步骤: 1. 将ESP8266-01S连接到您的计算机,并使用串口工具(如Arduino IDE的串口监视器)打开串口连接。 2. 输入AT指令,检查模块是否正常工作。例如,输入AT指令并按回车键,如果模块正常工作,它将返回“OK”。 3. 使用AT指令将ESP8266-01S连接到您的WiFi网络。例如,输入AT+CWJAP="your_SSID","your_password"并按回车键。如果连接成功,它将返回“OK”。 4. 使用AT指令将ESP8266-01S配置为连接到onenet平台。例如,输入AT+CWMODE=1并按回车键,将模块设置为客户端模式。然后,输入AT+CWSTARTSMART并按回车键,启动SmartConfig模式。在SmartConfig模式下,您可以使用移动onenet应用程序扫描WiFi网络并将WiFi网络信息发送到ESP8266-01S。 5. 在移动onenet平台上创建一个设备,并获取设备ID和API Key。然后,使用AT指令将ESP8266-01S连接到onenet平台。例如,输入AT+MQTTUSERCFG="your_device_id","your_api_key"并按回车键。如果连接成功,它将返回“OK”。 6. 现在,您可以使用AT指令发布和订阅onenet平台上的主题。例如,输入AT+MQTTPUBLISH="your_topic","your_message"并按回车键,将消息发布到指定的主题。或者,输入AT+MQTTSUBSCRIBE="your_topic"并按回车键,订阅指定的主题并接收消息。 希望这些步骤能帮助您将ESP8266-01S连接到移动onenet平台。 ### 回答2: ESP8266-01S是一款基于ESP8266芯片的Wi-Fi模块,它可以作为一个独立的微控制器或作为另一个微控制器的无线扩展模块使用。移动OneNet是一款物联网平台,可以帮助我们连接各种设备实现数据的采集、存储和管理。下面我们就来介绍一下如何把ESP8266-01S连接到移动OneNet平台。 1.注册登录OneNet平台 首先,我们需要注册OneNet平台账号并登录,然后创建一个新的产品,生成产品ID和API Key。在我们的ESP8266-01S设备连接到OneNet时,需要使用这些信息进行鉴权以确保数据的安全性。 2.连接ESP8266-01S到OneNet 然后,我们需要使用Arduino IDE为ESP8266-01S编写一个程序,该程序可以将设备的数据发送到OneNet平台。我们可以通过AT指令或使用Arduino库来实现这个过程。 使用AT指令时,我们需要在ESP8266-01S上安装透传固件,并使用以下指令连接到OneNet: AT+CWMODE=1 //设置为Station 模式 AT+CWJAP="WiFi名称","WiFi密码" //连接到WIFI AT+CIPSTART="TCP","openapi.heclouds.com",80 //连接OneNet平台 AT+CIPSEND="指令长度" //发送数据 "API Key\n" //API Key "POST /devices/产品ID/datapoints HTTP/1.1\n" //数据点请求路径 "Host:api.heclouds.com\n" //主机地址 "Content-Length:数据内容长度\n" //数据内容长度 "{\"datastream_id\":\"数据流名称\",\"datapoints\":[{\"value\":数值}]} //数据流名称和数值 AT+CIPCLOSE //关闭连接 通过Arduino库,我们可以使用OneNet库和ESP8266库将数据发送到OneNet平台。以下是一个示例程序: #include <SoftwareSerial.h> #include <ESP8266WiFi.h> #include <OneNet.h> SoftwareSerial ESPserial(2,3);//(rx,tx) OneNet mqtt("你的API Key"); WiFiClient wifiClient; void setup() { ESPserial.begin(115200); Serial.begin(9600); WiFi.begin("WiFi名称", "WiFi密码"); while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println("对接OneNet..."); mqtt.begin(&wifiClient); } void loop() { int value = analogRead(A0); mqtt.saveDataStream("数据流名称", value); delay(5000); } 在这个程序中,我们第一步是初始化ESP8266-01S串口和OneNet库,接着我们使用WiFi库连接到WiFi,然后使用OneNet库将数据发送到OneNet平台。我们可以根据需要自定义数据流的名称和数值。 3.在OneNet平台中查看数据 现在,我们的ESP8266-01S已经成功连接到OneNet平台了,我们可以在平台上查看设备发送的数据。我们可以在OneNet的数据流管理页面中查看数据流的名称和数值,还可以创建新的图表和报警规则来满足不同的需求。 总结: 以上就是ESP8266-01S连接移动OneNet的详细说明,我们需要在OneNet平台中创建一个新的产品,并生成API Key和产品ID,然后通过AT指令或使用OneNet库将设备数据发送到OneNet平台,最后在平台上查看数据并进行分析和处理。这个过程需要一定的编程和网络知识,但是通过这个过程,我们可以将我们的设备连接到移动OneNet平台,实现更加智能和高效的数据采集和管理。 ### 回答3: ESP8266-01S是一款带有WiFi功能的微控制器芯片,它可以通过WiFi无线网络连接到互联网。移动OneNET中国移动推出的一款物联网云平台,它可以接收和处理来自各种设备的数据,方便用户进行数据管理和应用开发。 下面是连接ESP8266-01S到移动OneNET的步骤: 1. 首先,需要申请一个OneNET账号,并创建一个设备。在OneNET的控制台中,选择“设备管理”并点击“添加设备”,填写设备的相关信息,如设备名称、设备标识符等。 2. 在ESP8266-01S上运行程序,将其与WiFi网络连接。通过AT指令发送“AT+CWJAP”和“AT+CIPSTART”指令,可以连接到WiFi网络,并建立TCP连接。 3. 编写与OneNET进行通信的程序。在ESP8266-01S上运行程序,通过TCP连接向OneNET发送HTTP POST请求,将设备数据上传到OneNET的云平台。此外,也可以通过HTTP GET请求,从OneNET平台上获取特定的数据。 4. 配置设备的数据流。在OneNET的控制台中,选择设备并点击“数据流管理”,可以创建各种数据流,将设备上传的数据存储在相应的数据流中。 5. 查看数据。在OneNET的控制台中,选择设备,并点击“数据记录”,可以查看设备上传的数据,并进行图表展示和数据分析。 总之,连接ESP8266-01S到移动OneNET需要完成以下步骤:注册OneNET账号,创建设备,连接WiFi网络并建立TCP连接,编写与OneNET通信的程序并上传数据,配置数据流,查看设备数据。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值