然后是硬件esp-8266,我用的是esp-12系列,10块包邮岂不美哉?

买的时候建议买个转接板方便接线
固件的源码工程我放在了github
https://github.com/zhangguanzhang/ESP8266_NONOS_SDK-mqtt-uart_set
求给个星星阿
从乐鑫官方的non_os的mqtt的demo修改,我用的是esp-12系列,12F和12S测试了都可以用
官方的自带的demo好像串口编译不通过,改了一些引用文件和增加了几个定义就能过了
具体信息可看github里的readme.md
下面是开发软件sdk链接,需要自己改的可以下载后导入我的工程来修改
链接:
http://pan.baidu.com/s/1eSIIAdG 密码:vy55
---烧录固件
ESP8266_NONOS_SDK-mqtt-uart_set/bin/里的就是固件
下面是文件名对应的烧写地址
eagle.flash.bin——–>0x00000
eagle.irom0text.bin—->0x10000
上面俩文件是任何时候都必须烧录的,下面俩文件是刚拿到模块初始化必须烧录的
esp_init_data_default.bin—->0x3fc000
blank.bin—->0x3ff000
烧写软件链接:
http://pan.baidu.com/s/1c1DgTwO 密码:z2dk
烧写的时候自己用串口电路或者usb转串口模块下载,我是直接接在原子mini板子上的串口电路下载的,GPIO0要拉低,然后点击start后reset引脚触碰下gnd就进入下载了

接线是VCC,GND,RX,TX 另外俩根是一个GND-GPIO0,那根杜邦针式接GND上的
点击了start后杜邦针触碰下reset就下载了
下载过程图如图所示

下载完后拔掉GPIO0的线,然后触碰下reset给个低电平重启下就行了,不拔掉GPIO的线的话不会进入工作模式并且会乱码
然后打开串口调试软件参数如图所示
初始的一些mqtt参数在app/include/mqtt_config.h里宏定义的

我改写了官方固件,通过串口即可设置参数,具体设置协议在我github的readme下拉就能看到
先设置wifi和mqtt的用户名密码和hid和你mqtt的server端的ip和端口,主机有域名也可以直接用域名,wifi名字不能是中文

设置好后发下show看看信息,无误后发送restart重启加载信息

上面的是连接不上的打印,我才意识到我手机开的wifi热点后我手机没打开数据流量,连接上了就是红框部分的下面
然后源码里默认订阅的主题是receive,推送主题名字是send,服务器上推送下一个ON的信息,
打印部份我的代码是判断云端的id部分是不是和自身一样,一样就打印,模块硬件id我设置成testid的上图可以看到
str_cut是我自定的函数,在uart.c里根据传入字符来分割字符串
也就是按照等号分割出第二部分的id写进temp后判断和自身id一致不,不一致就不打印,一致就打印信息


由此可见硬件可以和服务器通信了