ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统
来源:互联网 发布:网络推销授权员合同 编辑:程序博客网 时间:2024/05/16 14:37
ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统
1.关于ESP8266
安信可科技推出的ESP8266 WiFi 模块可以以极低的成本把传统单片机系统接入物联网。内置WiFi前端和高性能的32位ESP32MCU,内置无线网络协议IEEE802.11b/g/n 协议栈以及 TCP/IP 协议栈,能够实现用户串口或 TTL 电平数据到无线网络之间的转换,从而实现数据借助WiFi模块在局域网的无线传输和网络传输 。
2.现有单片机颗粒物传感器应用方案
原本基于cypress PSOC4单片机和攀藤科技的PMS6003 PM2.5传感器的已经OK。仅能通过LCD显示,无法接入internet。
具体实现过程不在详述,请自行参考PMS6003颗粒物传感器中文说明书V2.5及PSOC4 CY8CKIT-042 开发板。
2.PC端串口调试ESP8266 WiFi 模块
串口WiFi 模块嘛!所有的设置及操作命令都要通过串口命令来执行,以PC串口设置来说明。
首先通过PC串口设置ESP8266 WiFi 模块
接线方式:
打开串口工具,设置好波特率(115200), 通过AT command来设置。
/****AT command list*****/
AT+RST //reset
AT+CIPMODE=1 //STA mode
AT+CIPMUX=0 //单连接模式
AT+CWMODE=1 //透传模式
AT+CWJAP=”lemon p9”,”xxxxxxxx” //connect to a WIFI AP with SSID & password
AT+CIPSTART=”TCP”,”api.lewei50.com”,80 //setup TPC link with leiwei service
AT+CIPSEND //进入透传开始发送数据
/*
收到此命令后先换行返回”>”
然后就进入了透传模式,每包数据以20ms间隔区分,每包最大2048字节。
当输入单独一包”+++”返回指令模式。
该指令必须在开启透传模式以及单连接模式下使用
*/
+++ //透传模式下发送三个+++退出透传,不要勾选新行(\r\n),
AT+SAVETRANSLINK=1,”api.lewei50.com”,80,”TCP” //开机自动进入透传 并且连接到乐联网
AT+CIPCLOSE //Close TCP or UDP
通过PC设置好模式及AP SSID/Password之后,再把WIFI 模块与单片机UART 端口相连。需要提供一个稳定的3.3V给ESP8266. 此时模块上电后会自动连接WIFI 并与乐联网建立TCP连接, ESP8266是TCP Client, www.lewei50.com是TCP Server。
**
/*********AT command list**********/AT+RST //resetAT+CIPMODE=1 //STA modeAT+CIPMUX=0 //单连接模式AT+CWMODE=1 //透传模式AT+CWJAP="lemon p9","xxxxxxxx" //connect to a WIFI AP with SSID & passwordAT+CIPSTART="TCP","api.lewei50.com",80 //setup TPC link with leiwei serviceAT+CIPSEND //进入透传开始发送数据/*收到此命令后先换行返回”>”然后就进入了透传模式,每包数据以20ms间隔区分,每包最大2048字节。当输入单独一包”+++”返回指令模式。该指令必须在开启透传模式以及单连接模式下使用*/+++ //透传模式下发送三个+++退出透传,不要勾选新行(\r\n),AT+SAVETRANSLINK=1,"api.lewei50.com",80,"TCP" //开机自动进入透传 并且连接到乐联网AT+CIPCLOSE //Close TCP or UDP
[Remark]
** 为了方便说明,AP SSID/Password直接由电脑串口写死在WIFI 模组中,当然也可以通过单片机串口来写入。
3.乐为网API在线调试
乐为物联提供的是接受post请求,具体请至乐为网申请账号,并在线测试API接口。
具体请至 https://www.lewei50.com 了解
其实这一步还比较简单,按照要求写入自己的UserKey,稍微需要注意的两点就是
网关标识 这个根据自己的情况,根据你创建的设备的时候的标识,正常系统默认生成 01、02、03……,这里你想测试哪个设备,就写哪个标识。
数据格式 这里的数据格式是一个括号,里面也是一个或者几个JSON的数据形式。这里写入我们要上传这个设备哪一个传感器的当前值。
所以从这里我们也可以看到,要把数据上传到乐联网
使用的是POST请求
请求中应包含 UserKey、Host地址、JSON数据
JSON数据可以单独发一个传感器,也可以一次发好几个传感器数据。
模拟调试成功的返回的响应应该是 successful true 如果是false就要找原因了。
4 然后就是单片机通过串口命令与TCP server通讯了。
/***post command to lewei cloud***/POST /api/V1/gateway/Updatesensors/01 HTTP/1.1userkey: f93d25ae3a1d45c58416ccd4f26048eaHost: open.lewei50.comContent-Length: 32Connection: close[{"Name":"particle","Value":11}]//Remark:[1] Content-Length: 32 = total length of jason command([{"Name":"particle","Value":11}])[2] Please add a new empty line before json command
单片机代码
/***********WiFi Tx Buffer define***************/char8 PM2_5[]="0";char8 *WifitxBuffer1={"POST /api/V1/gateway/Updatesensors/01 HTTP/1.1\r\n\userkey: f93d25ae3a1d45c58416ccd4f26048ea\r\n\Host: open.lewei50.com\r\n\Content-Length: 32\r\n\Connection: close\r\n\\r\n\[{\"Name\":\"particle\",\"Value\":"};char8 *WifitxBufferend={"}]\r\n"};/************Send POST command to TCP Server*********************/void SendExhaustParticleSensorData(void){ WIFI_UART_UartPutString(WifitxBuffer1); WIFI_UART_UartPutString(PM2_5) WIFI_UART_UartPutString(WifitxBfferend);}
//Remark: 发送频率不能过高,服务器最高允许10S接受一次数据。
5 测试结果。
- ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统
- arduino与ESP8266 WIFI模块的连接测试
- arduino与ESP8266 WIFI模块的连接测试
- ESP8266 WIFI模块实现远程wifi控制
- 51单片机连接ESP8266串口WiFi模块
- Qt实现天气预报与PM2.5监测系统(3)PM2.5模块程序
- 基于stm32和ESP8266实现wifi模块smartlink功能以及TCP连接
- 【库和教程】ESP8266 WIFI模块实现远程wifi控制
- ESP8266 wifi模块使用
- ESP8266 WIFI 模块使用说明
- ESP8266串口WiFi模块
- 安卓wifi遥控源代码 ESP8266模块测试
- 无线WIFI模块 ESP8266 上手测试 AT指令
- 无线WIFI模块 ESP8266 上手测试 AT指令
- 如何直接为价廉的ESP8266 WiFi模块编写程序
- 如何直接为价廉的ESP8266 WiFi模块编写程序
- ESP8266的WIFI连接
- PM2.5+温湿度采集+Wifi上网模块设计方案
- opencv blur cvtColor split inRange bitwise_and blur clone
- #define int *PINT和typedef int*PINT
- 【Linux指令】yum
- 9.29(周四)
- 【Linux指令】压缩解压指令记录
- ESP8266 WiFi 模块连接乐为物联云实现PM2.5测试系统
- Linux安装pycharm
- URL中# ? &的作用
- 流缓冲区的特化版本(适用于通用tcp业务包)
- java 接口回调
- jQuery--5.筛选
- CodeForces
- namespace/重载/引用
- numpy的用法(二)