ESP8266发送温湿度到物联网(1)

来源:互联网 发布:单仁网络 传销 编辑:程序博客网 时间:2024/04/30 02:04

首先介绍一下,我是使用的物联网是乐为物联,网址是:http://www.lewei50.com/,免费的,只需要申请一个账号,你还可以加这个物联网的微信公众号,在上面也可以远程查看你的温湿度(声明 ,我不是打广告哦),关于如何设置传感器和如何给物联网发送温湿度,都可以看下面这个网址:http://www.lewei50.com/dev/doc/176,尤其注意后面的通讯协议的格式,这个是使用ESP8266发送的重点,下面贴一个我的门户网站,在这个网页上就可以实时的看到我周围的温湿度,前提是我开起了这个模块(http://www.lewei50.com/u/g/16392)。

好了,言归正传,现在开始介绍如何使用esp8266向物联网发送温湿度的数据,首先你要有一个esp8266模块,这个模块有很多型号,我用过两种一种是esp826612-s,另外一种是淘宝上卖的最多的,如下图:

    

这个模块的PCB图如下

我们看到这个模块一共有8个引脚,CH_PD为开机,接高电平即可开机,也就是说这个引脚必须拉高,GPIO0为模式选择脚,高电平正常启动(FLASH),也就是接高,低电平刷固件(需要用到刷固件软件),GPIO16(也就是RST)为复位引脚,这里先不连 。GPIO2 为高,UTXD接单片机的RXD,URXD接单片机的TXD。另外就是VCC,GND接电源和地。

这里我们先简要介绍一下这个模块,这个模块一共有三种工作模式,AP模式,STA模式,AP+STA模式,每种模式的使用情况介绍如下图:

如果只是要实现将esp8266连入别的热点(手机热点,或者路由器)来通过互联网将数据发送到物联网上,就可以选择STA模式(关于AP模式和STA+AP模式,我以后会讲),即发送AT+CWMODE=1,来将他设置为STA模式,设置为STA模式之后,我们就需要将你的esp8266连入附近的热点,使用的指令是:AT+ CWJAP =<ssid>,< password> ,ssid是你的热点名,password是你的热点的密码。

然后我们先利用usb转ttl串口来调试一下这个模块,你需要一个串口线,一般都是四根线:TXD,RXD,5V,GND,连接的方法:usb转ttl的rxd接esp8266的txd,usb转ttl的txd接esp8266的rxd,然后5v接8266的vcc,gnd接8266的gnd,连接好了之后打开串口调试助手,一般来说每次上电复位之后,esp8266都会回复你很多乱码,这是正常的,你也可以输入AT+RST来让这个模块重启,注意发送的最后已经要发送\r\n,或者在串口调试助手里面勾选上发送新行。注意一下波特率有没有

选对,一般都是115200,关于esp8266的AT指令集你可以下载一个手册,常用的基本就那些。

下面开始介绍如何利用串口进行:

1.配置为模式1

在串口助手输入栏里面输入   AT+CWMODE=1\r\n(如果选择了发送新行,那么\r\n就可以不输入)

2.重启

输入AT+RST,这里注意,每当更改过模式和连接的热点之后,esp8266会自动保存,也就是说当你重启之后,它自动会默认相同的模式,也会连入同一个热点。

3.连接 入wifi

AT+CWJAP="xxx","xxxxxx"

4.进入单连接模式

AT+CIPMUX=0,为什么要单连接模式呢,因为接下来我们需要使用透传模式,注意:如果要使用透传模式,必须先进入单连接模式

透传模式主要的作用就是发送字符串的时候不需要添加字符串长度,因为接下来需要发送很多字符串,尤其是你如果看了我给你的那个网页里面的通讯协议,里面有非常多的符号和字符,如果不选择这个模式的话,就很烦,还需要数字符串长度,当然也是有别的方法的,以后有时间说说。

5.进入透传模式

AT+CIPMODE=1

6.连接到物联网的TCP服务器

AT+CIPSTART="TCP","tcp.lewei50.com",9960。说明:tcp.lewei50.com也可以写成IP:42.121.128.216,9960是端口号,连接成功之后会返回ok

7.开始发送字符串

输入AT+CIPSEND,由于之前开启了透传和单连接,所以不需要输入字符串的长度,输入完上面这句话之后,串口调试助手会回复:“>”这个符号,这个时候就可以输入字符串了

8.发送登陆信息

{"method": "update","gatewayNo": "02","userkey": "6f289b7f11084520bd2aad8e425ee9b4"}&^!,直接发送前面这个字符串,注意需要修改成实际的网关编号和userkey。

9.发送温湿度数据

{"method": "upload","data":[{"Name":"T1","Value":"33"},{"Name":"T2","Value":"96.2"}]}&^!,注意,我这里的T1,T2,就是实际的传感器的标识,发送的数据分别为33,96.2,

到这里一次的发送就算结束了,然后回到你的物联网的账户的页面,基本1s之后数据就会刷新了,没有刷新的时候页面如下:


当刷新成功之后,会变成彩色的。

关于调试的具体步骤,大家可以借鉴一下下面的网站:http://www.geek-workshop.com/thread-25582-1-1.html

当可以使用串口来让esp8266正常工作之后我们就要做到利用单片机来向esp8266发送这些指令,我使用的单片机是STC90c51RD+,准备利用TXD和RXD引脚和ESP8266进行通讯,注意:通讯之前一定要检查波特率是否一致,比如是否都是115200,当时我就是卡在这里卡了很久,明明利用串口调试助手就可以发送成功,物联网也可以刷新数据,但是利用单片机发送相同的指令就不可以,原因就是波特率不一致,之所以没设置,一部分也是因为我当时找了很多手册,有的手册说8266的默认的波特率是115200,但是我那个实际上是9600,所以,大家以后无论实用手册上看到什么默认配置是什么,都不要轻易相信,一定要自己重新初始化一遍。

如何利用单片机实现上面的操作,看下一张,利用51单片机实现的程序的源码我也会贴出来


0 0