文章目录

  • 一、准备工作
  • 二、实现流程
    • 1.AT指令
    • 2.接入乐联网平台
    • 3.代码实现
  • 三、数据可视化分析

一、准备工作

1.准备一块正点原子STM32f103ZE精英开发板


2.在某宝上购买好正点原子的ATK-ESP8266 WIFI串口模块


3.顺便买好DH11温湿度传感器


4.别忘了ATK-USB-UART模块


用于单片机烧录使用,电脑上需安装CH340驱动程序
·注意:烧录需要使用USB-UART模块与wifi模块连接;开始烧录的时候它会要求你给WIFI模块复位,如设备无自动复位,只需要使RST接一下低电平触发即可,IO-0需置低电平


5.烧录安信可固件

通过flash下载工具ESPFlashDownloadTool烧录固件


二、实现流程

1.AT指令


1.通过串口发送AT+CWMODE=1进入STA模式 2.通过串口发送AT+CWLAP查询可用热点(路由),并找到ssid(路由/热点名字) 3.串口答复: WIFI CONNECTEDWIFI GOT IP OK 表示成功

font >

具体操作流程:

一、设置8266工作模式
8266一共有三种工作模式,分别为AP、STA、AP+STA,我们通过AT+CWMODE=x(x=1,2,3)指令进行模式的选择。当x为1时为STA模式,为2时为AP模式,3为AP+STA模式
STA模式(Station):相当于终端,连接其他路由器,不能被其他是设备连接 (=没有热点功能的手机)
AP模式(Access Point):提供无线接入服务,允许其他无线设备接入,模块自己就不能连接其他的路由器。(=路由器)

二、连接WIFI热点
AT+CWJAP=“WIFI名”,“WIFI密码”
补充:查询ESP8266所连的路由器网络:AT+CWJAP?

三、建立TCP连接->透传
AT+CIPMUX=x,(x=0或1)
AT+CIPSTART=“TCP”,“这里输入ip地址”,这里输入端口号
前一个指令用来设置TCP的连接模式,0为单连接,1为多连接。
AT+CIPMODE=x(x=0或1),0为普通模式,1为透传模式

这里设置AT指令
AT+CIPMUX=0 , TCP为单连接
AT+CIPMODE=1 , 1为透传模式
AT+CIPSTART=“TCP”,“10.158.121.192”,8086 设置了8266为TCP单连接模式,并与ip地址为10.158.121.192,端口号为8086建立了TCP连接
AT+CIPSEND , 开始透传
退出透传模式的指令+++时,不发送回车换行(串口调试助手发送的话,不勾选“发送新行”)。
四、 通过网络调试助手查看TCP连接情况:


2.接入乐联网平台

1.基于以上操作,我们就开始接入乐联网平台吧
串口输入以下指令,等待回应ack:ok 即可


2.打开keil,在esp8266.c 中输入以下代码,实现http报文发送:

#include "esp8266.h"
#include "sys.h"
#include "common.h"
#include "usart3.h"
void esp8266Init() {//检测wifi模块是否能回复指令printf("1.AT\r\n");while(atk_8266_send_cmd("AT","OK",20)) {}delay_ms(500);//关闭wifi自动连接printf("2. CWAUTOCONN\r\n");while(atk_8266_send_cmd("AT+CWAUTOCONN=0","OK",20)) {}delay_ms(500);//配置wifi模式 AT+CWMODE=1为sta模式printf("3. CWMODE\r\n");while(atk_8266_send_cmd("AT+CWMODE=1","OK",20)) {}delay_ms(500);printf("4. CWJAP\r\n");//连接网络while(atk_8266_send_cmd(ESP8266_WIFI_INFO,"OK",1000)) {}delay_ms(1000);//开启单连接模式,因为透传必须开启单连接模式printf("5. CIPMUX\r\n");while(atk_8266_send_cmd("AT+CIPMUX=0","OK",20)) {}delay_ms(500);//开启透传模式printf("6. CIPMODE\r\n");while(atk_8266_send_cmd("AT+CIPMODE=1","OK",20)) {}delay_ms(500);//建立TCP连接printf("7. CIPSTART\r\n");while(atk_8266_send_cmd(ESP8266_LLW_INFO,"OK",50)) {}delay_ms(500);//进入透传模式printf("7. CIPSEND\r\n");while(atk_8266_send_cmd("AT+CIPSEND","OK",20)) {}delay_ms(500);printf("ESP8266Init ok");}void LLW_send(u8 value1,u8 value2)
{//这里的temp和wet是自己在乐联网上设置的名称//下面是http协议的一些格式,一定要注意有些地方是有空格的char p[100]="";char p1[100]="";sprintf((char*)p,"[{\"Name\":\"temp\",\"Value\":%d}]\r\n",value1);u3_printf("POST /api/V1/gateway/Updatesensors/01 HTTP/1.1\r\n");u3_printf("userkey: 0d11f35a728e405ba72686ab3001c5ca\r\n");u3_printf("Host: open.lewei50.com\r\n");u3_printf("Content-Length: %d\r\n",strlen(p)-2);u3_printf("Connection: close\r\n");u3_printf("\r\n");atk_8266_send_data(p,"true",20);delay_ms(20);sprintf((char*)p1,"[{\"Name\":\"wet\",\"Value\":%d}]\r\n",value2);u3_printf("POST /api/V1/gateway/Updatesensors/01 HTTP/1.1\r\n");u3_printf("userkey: 0d11f35a728e405ba72686ab3001c5ca\r\n");u3_printf("Host: open.lewei50.com\r\n");u3_printf("Content-Length: %d\r\n",strlen(p)-2);u3_printf("Connection: close\r\n");u3_printf("\r\n");atk_8266_send_data(p1,"true",20);
}

3.创建一个乐联网账号,并且设置好所需要用的温湿度传感器

3.代码实现

main.c 如下:

/********************************************************************************                  * FileName   : main.c   * Version    : v1.0       * Author     : JackyFeng        * Date       : 2022-01-16         * Description:    ESP8266实现DHT11采集温湿度数据上传并显示在乐联网平台* Function List:  1. ....<version>:       <modify staff>:<data>:<description>:  开发板:正点原子STM32f103ZE精英开发板 2. ...*******************************************************************************/
#include "sys.h"
#include "delay.h"
#include "usart.h"
#include "led.h"
#include "lcd.h"
#include "key.h"
#include "usart3.h"
#include "common.h"
#include "dht11.h"
#include "esp8266.h"u8 temperature;
u8 humidity;/* -------------------------------- begin  -------------------------------- */
/*** @Name    main* @brief  * @param   None* @retval* @author  JackyFeng* @Data    2022-01-16* 1. ...* <modify staff>:* <data>        :* <description> : ESP8266实现DHT11采集温湿度数据上传并显示在乐联网平台* 2. ...**/
/* -------------------------------- end -------------------------------- */int main(void)
{u8 t=0;delay_init();           //延时函数初始化NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级uart_init(115200);     //串口初始化为115200LED_Init();               //初始化与LED连接的硬件接口LCD_Init();             //初始化LCDusart3_init(115200);        //初始化串口3KEY_Init();                 //初始化按键POINT_COLOR=RED;        //设置字体为红色esp8266Init();while(DHT11_Init())  //DHT11初始化{LCD_ShowString(30,130,200,16,16,"DHT11 Error");delay_ms(200);LCD_Fill(30,130,239,130+16,WHITE);delay_ms(200);}LCD_ShowString(30,130,200,16,16,"DHT11 OK");POINT_COLOR=BLUE;//设置字体为蓝色LCD_ShowString(30,150,200,16,16,"Temp:  C");LCD_ShowString(30,170,200,16,16,"Humi:  %");while(1){if(t%10==0)         //每100ms读取一次{DHT11_Read_Data(&temperature,&humidity);   //读取温湿度值LCD_ShowNum(30+40,150,temperature,2,16);   //显示温度LCD_ShowNum(30+40,170,humidity,2,16);        //显示湿度}delay_ms(10);t++;if(t==20){t=0;}delay_ms(10000);//上传时间间隔10秒LLW_send(temperature,humidity);//温湿度数据上传乐联网平台}
}

keil编译后,乐联网平台显示如下:
传感器状态为蓝色即为开启成功


三、数据可视化分析

1.温度可视化折线图


2.温度可视化历史统计


3.温度可视化柱状图


4.设备监控


正点原子STM32f103ZE精英开发板实现基于ESP8266 WIFI模块温湿度数据上传至乐联网平台相关推荐

  1. 【毕设项目】基于STM32F103ZET6的土壤温湿度数据采集和存储系统

    目录导航 一.前言 二.准备工作 三.实现流程 1.keil编程 2.机智云台开发 3.Android开发 四.数据可视化分析 五.小结 一.前言 上一篇博客提到<正点原子STM32f103ZE ...

  2. 大数据上传-GB/T 32960测试开发实践

    文章目录 前言 GB/T 32960介绍 GB/T 32960测试开发 总结 参考文献 前言 数据时代,数据为王.车辆网联化为汽车数据时代提供技术支撑,更多的数据可被收集,但是哪些数据需要被收集,又如 ...

  3. 新大陆物联网-Android实现网关功能-连接云平台并上传传感器数据-获取执行器指令并执行-Android网关开发-通信-数据上传云平台-JAVA原理讲解-免费云平台使用-竞赛2022国赛真题

    目录 一.任务要求 二.开发环境 三.网关上线 四.数据上传与命令下发 五.JSON命令解析思路 六.总结 一.任务要求 我们将要实现的效果是:Android开发平板与Lora板进行有线串口通信,解析 ...

  4. 【Verilog】基于Nexys4DDR开发板实现数字钟

    功能: 基于Nexys4DDR开发板实现的数字钟,六位数码管显示时分秒,可切换24时制/12时制,有整点报时功能(led灯闪烁). Verilog代码: `timescale 1ns / 1ps//数 ...

  5. fpga驱动rgb液晶屏_正点原子开拓者FPGA开发板资料连载第五十四章基于的数字识别实验...

    1)实验平台:正点原子开拓者FPGA 开发板 2)摘自<开拓者FPGA开发指南>关注官方微信号公众号,获取更多资料:正点原子 3)全套实验源码+手册+视频下载地址:http://www.o ...

  6. 基于PYNQ-Z2开发板实现矩阵乘法加速详细流程

    基于PYNQ-Z2开发板实现矩阵乘法加速 主要内容 1.在Vivado HLS中生成矩阵乘法加速的IP核. 2.在Vivado中完成Block Design. 3.在Jupyter Notebook上 ...

  7. 基于正点原子STM32F103精英板IIC实验的MS5611气压计的使用

    MS5611是一款气压计,能够提供高精度的气压值与温度值,这次做项目正好需要用到这款传感器,包括之前也没好好学习用过IIC,所以写下博客记录一下. 如果有需要使用的朋友可以去https://downl ...

  8. 基于正点原子STM32F1精英版秒表(库函数版)

    基于正点原子STM32F1精英版秒表(库函数版) 一.前期准备 二.代码实现: 1.独立按键与触摸按键 2.TFTLCD 3.定时器 4.蜂鸣器与LED灯 5.主函数设计 三. 结束语: 一.前期准备 ...

  9. Mixly(米思齐)的安装以及基于Arduino开发板实现电容触摸控制灯

    Mixly(米思齐)的安装以及基于Arduino开发板实现电容触摸控制灯 1.Mixly下载 http://mixly.org/bnu-maker/mixly-arduino-win Mixly软件安 ...

最新文章

  1. DSAPI多功能组件编程应用-DS提示气泡
  2. python基于水色图像的水质评价_基于Python和遥感图像的膨胀与腐蚀操作
  3. python 简易 http server
  4. # 睡眠3秒_【for fun】睡眠排序算法
  5. php格式化输出字_PHP 输出格式化字符串
  6. CentOS 7的安装
  7. Asp.Net客户端触发服务器端事件及_dopostback
  8. 读书笔记 - 简约之美:软件设计之道
  9. 中原建业在港上市首日破发,基石投资者祥来及楼公望亏780万港元
  10. Layui Table格式化日期(表格)
  11. 子曰:中庸之为德也,其至矣乎!民鲜久矣。
  12. addClass()与removeClass
  13. RIGHT-BICEP测试第二次
  14. 【侠客行】Lombok深度解析
  15. ERP在企业财务管理中的应用
  16. Windows11/10 使用RDP远程桌面时提示 您的凭据不工作/登录没有成功可能的一种原因
  17. 图象恢复——(逆滤波,维纳滤波)
  18. 括号匹配问题(数据结构)
  19. 该不该抛弃那匹马呢?
  20. 什么是(抽象方法,普通方法,抽象类、接口),区别又是什么?

热门文章

  1. 华三交换机升级的ipe文件_H3C交换机版本升级
  2. 事务隔离级别浅析---一致和原子的区别
  3. 青龙羊毛——微笑微泡(搬运)
  4. turbine 集群聚合监控
  5. 网吧随机三行代码蓝屏解决方案
  6. 祛斑大行动推荐食疗食谱
  7. 解决 Docker 容器时间与本地时间不一致的问题
  8. jquery图片查看插件,支持旋转、放大、缩小、拖拽、缩略图(仿qq图片查看)
  9. Object-C中SEL方法介绍
  10. matlab函数grid,matlab中griddata函数怎么用