STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

这篇具有很好参考价值的文章主要介绍了STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

哎,上云很简单的,但是我花了好几天因为各种莫名其妙的错误耽误了大量时间。所有很有必要总结一下

咳咳。但是我也比新手好不了多少,以免误导新人,只教操作,理由核心不阐述,自己csdn找。

一、首先创建个HTTP协议onenet云平台(不会,就csdn里找,一堆堆)

对于初学者,最简单的第一步,看直接效果,就这几行代码,第一行系统初始化,后面初始化2个串口,我因为不能直接将esp8266与串口1(CH340)直接相连,所有转串口2。通过串口助手能看见直接效果。

STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

二、然后下载到单片机里,打开串口调式助手(能用就行,安信可有快捷AT指令,csdn找有免费的,但是后来发现安可信AT指令方便,但是发送消息不方便,不建议使用,也可能是我不会操作)

AT(准备好了吗?)

AT+CWMODE=1(有3种模式,区别csdn找)

AT+CWJAP="0606","12345678"(连接自己热点,名字,密码)

AT+CIPSTART="TCP","183.230.40.33",80(连接云平台,有好几种不同的)

AT+CIPMODE=1(开透传)开与不开有区别的,理由csdn里找,开了简单操作一些

AT+CIPSEND(准备发送)

STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南
STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

安信可发送消息地方好窄,粘贴代码过去还不行。我就换了一个正点原子的,csdn或者正点原子官网找,免费的。(如果发送没反应,看看点没点“换行发送”,一定要点)

最后发送下面代码就可以看见以下结果,succ成功

STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南
POST /devices/1021097154/datapoints?type=3 HTTP/1.1 
api-key:=uojX7FWUuWZ8cgj=mGRy47Ando=
Host:api.heclouds.com 
Content-Length:20

{"temp_data":19.8} 

模板,记住要改产品ID(1021097154)与api-key,发到我云平台上,你们可是看不见哦

长度一定要一致,20指{"temp_data":19.8}长度,不对会报错,符号也算长度

三、最后你就发现自己云平台有数据了

STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

是不是看完发现很简单。接下来就是将以上过程变为代码形式,就是stm32单片机作用。

四、代码部分来了,准备好了吗

1、首先你需要获取温湿度的代码,如果你是其他传感器,原理相通。(csdn找,一堆堆)

2、上云前初始化代码(是不是没看懂,因为只有部分代码,截图这一段理由是因为,有没有发现跟我们之前手动输入AT指令一样的。就是一样的,不过这是写在程序里的,不用在执行过程时候,我们手动再次敲写)。上云代码不多,但是简化(美化)过后就看着多。

STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

后续会提供代码,实在无法理解原理,最简单的就是一句一句发送

特别对于AT+CWJAP延时要充分,然后发送那6条AT指令,你就做到与上面一堆代码一样的事情简化(美化)好处,虽然看起来复杂,但安全性和抗干扰性会更强,但是为了方便学习理解,可以使用下面方法(看见busy(忙碌)就要重来过,后面就会直接报错,重新调大延时函数,简单但麻烦)正常全是ok,延时过低就看见busy,简化与优化的好处就体现出来了。

在主函数或者其他函数里依顺序编写

Usart_SendString(AT_AT,sizeof(AT_AT));//esp8266连接到那个串口就用那个串口发送
delay();//延时函数
Usart_SendString(AT+CWMODE,sizeof(AT+CWMODE));
delay();//延时函数
。。。。。。(还有4条AT指令)
STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

3、关键代码分析(最核心地方)

我们回想一下手动发送过程中,AT指令结束后做什么?

没错,就是发送你要传到云平台内容。

如何实现?构造json格式句式(原理和为什么,csdn找)

是不是感觉下面部分很相似,模板构造好了一半,但没有数据和长度

POST /devices/1021097154/datapoints?type=3 HTTP/1.1 
api-key:=uojX7FWUuWZ8cgj=mGRy47Ando=
Host:api.heclouds.com 
Content-Length:20

{"temp_data":19.8} 


#define MASSAGE   "POST /devices/1021097154/datapoints?type=3 HTTP/1.1  \
                      \napi-key:=uojX7FWUuWZ8cgj=mGRy47Ando=\
                       \nHost:api.heclouds.com\
                        \nContent-Length:%d\
                        \n\r\n "

数据构造

void OneNet_SendData(void)
{
    
    char buf[256];//申明一个char类型数组
    
    memset(buf, 0, sizeof(buf));//清空数组
    
    OneNet_FillBuf(buf);//核心,构建后半块的数据                               
    
    Usart2_SendString(buf,strlen(buf)); //这就是最后我们发送那一步  
    
}

strcpy,sprintf使用效果,csdn找很简单

#define DEVID    "1021097154"
#define APIKEY    "=uojX7FWUuWZ8cgj=mGRy47Ando="

void OneNet_FillBuf(char *buf)
{
    char text[24];
    char buf1[128];
    
    memset(text, 0, sizeof(text));
    memset(buf1, 0, sizeof(buf1));
    
    strcpy(buf1, "{");
    
    memset(text, 0, sizeof(text));
    sprintf(text, "\"Temperature\":%d,",(int)dht_data[2]);
    strcat(buf1, text);
    
    memset(text, 0, sizeof(text));
    sprintf(text, "\"Humidity\":%d",(int)dht_data[0]);
    strcat(buf1, text);

    strcat(buf1, "}");
    
    sprintf(buf, "POST /devices/%s/datapoints?type=3 HTTP/1.1\r\napi-key:%s\r\nHost:api.heclouds.com\r\n"
                    "Content-Length:%d\r\n\r\n",
    
                    DEVID, APIKEY, strlen(buf1));
                    
    strcat(buf, buf1);

}

然后就结束了,结果就是将上面最开始手动敲代码过程转化为事先写好,单片机自己执行过程。使用以上代码就可以实现stm32温湿度上云。

主函数代码,我延时函数不正常所有看起来多,除去延时函数,主函数只有6行代码。

STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南

可以代码参考,看看优化后的逻辑。新手看不懂。需要耐心一行一行读。

链接:https://pan.baidu.com/s/1iK41x2e_0_Gnkm9IKKc0KQ

提取码:1234文章来源地址https://www.toymoban.com/news/detail-451231.html

到了这里,关于STM32+ESP8266上传温湿度到onenet(HTTP)新手易懂指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32+ESP8266+APP连接阿里云监测环境温湿度系列笔记1:阿里云物联网平台配置及数据上传

            在数据传递过程中阿里云物联网平台相当于服务器,ESP8266为客户端,通过路由器连接服务器时需要在物联网平台创建设备,具体过程如下: 1. 首先 在物联网平台创建公共实例,并点击进入, 图1 2.可见设备接入物联网平台的整体流程如图2中红色方框所示, 接下

    2024年02月04日
    浏览(41)
  • 【课设】/【毕设】ESP32上传温湿度至新版Onenet云平台并由新版Onenet云平台下发命令控制LED灯和其他外设+uni-APP控制2(STM32-ESP32通用){持续更新ing}

    1.打开上次制作的token获取文件,如下删除登录界面: 2.在删除的地方输入下面代码,点击运行到内置浏览器,效果如下:  3.创建温度,湿度,LED三个变量并进行绑定:  4.通过http协议向OneNet云平台获取温湿度数据: 先去OneNet云平台文档中心获取接口地址:    将下面代码替

    2024年04月16日
    浏览(33)
  • 【STM32】ESP8266 WiFi模块实时上报温湿度及控制LED灯项目笔记

    本项目无线通讯模块使用的是WiFi模块ESP8266,乐鑫公司推出的高性能、低功耗串口WiFi模块ESP8266应该是使用最广泛的一种WIFI模块之一了,它自身带有高性能的MCU(Microcontroller Unit),因此它既可以通过串口连接为外部MCU提供 WiFi通信功能,也就是我们本项目所用到的功能;当然

    2024年01月21日
    浏览(48)
  • STM32+ESP8266+QT客户端上位机显示DHT11温湿度与点灯

    目录 1、简介 2、硬件连接 3、上位机源码 3.1 widget.h 3.2 widget.c  3.3 显示图  4、下位机源码 4.1 cubemax配置  4.2 keil源码 本文使用STM32F103C8T6单片机使用单片机通过ESP8266WIFI模块与QT设计的上位机进行通讯,ESP8266设置AP模式。实现DHT11传感器温湿度的显示与远程控制LED小灯的亮灭

    2024年02月06日
    浏览(39)
  • ESP8266+dht11 连接阿里云 上传温湿度

    ESP8266+dht11 连接阿里云 上传温湿度 ①在刚开始研究的时候也是一头雾水,在看了几天各路大神写的博客和视频之后,最终得以实现。 ②接下来让我详述一下整个过程 需要编写代码,云端创建产品和设备,还有阿里云的库文件需要用到 下面让我们开始吧! 一、创建云端设备

    2024年01月17日
    浏览(43)
  • 2-STM32+ESP8266连接onenet并上传数据(HTTP)

    上一篇文章内容链接为下 1-ESP8266-AT指令初试化及部分基础知识 2-STM32+ESP8266连接onenet并上传数据(HTTP) ESP8266,onenet云平台,STM32三部分在结合使用前最好还是分别学习了解一下,效率更高,在开发过程中哪里有问题就有针对性了。 1、了解8266的基础知识(模式、初始化、操作

    2023年04月08日
    浏览(32)
  • 微信小程序可自定义单片机温湿度阈值(基于esp32c3+onenet+微信小程序)

    ​ 前段时间有个粉丝问我能不能出一个微信小程序调节阈值的教程,我就下班之余在原来的基础上改进一下,因为是修改阈值,这里我就用继电器控制风扇、温度达到一定阈值控制风扇启动来做例子。这个成功了,其他阈值修改都是依样画葫芦啦。 ​ 之前博客 :基于物联网

    2024年02月07日
    浏览(27)
  • ESP32连接巴法云上传温湿度,手机APP控制开关灯

    首先我先用 进行编写esp32代码   #include WiFi.h #include SimpleDHT.h   //巴法云服务器地址默认即可 #define TCP_SERVER_ADDR \\\"bemfa.com\\\" //服务器端口//TCP创客云端口8344//TCP设备云端口8340 #define TCP_SERVER_PORT \\\"8344\\\" ///****************需要修改的地方*****************/// //WIFI名称,区分大小写,不要写错

    2024年02月15日
    浏览(36)
  • (Onenet)STM32L+BC20+MQTT协议传输温湿度,ADC,电压,GPS数据到Onenet物联网平台

    1、材料准备 准备以下材料 2、设备连接 2.1 插入物联网卡 首先把BC20核心板从开发板上拆下来 然后将物联卡放置在BC20核心板内 物联卡放置完成将BC20核心板重新插入到开发板内(注意不要弄错方向) 同时接入天线 2.2 连接ST-Link仿真器 用3条杜邦线接入STM32L的 DIO、GND、CLK中 另

    2024年02月15日
    浏览(27)
  • ESP32上实现环境温湿度检测上传数据并通过微信小程序显示

    共包含三个步骤 Arduino端代码  onenet云平台产品准备  微信小程序代码 1. Arduino端代码如下: #include WiFi.h #include \\\"DHT.h\\\" #include \\\"PubSubClient.h\\\" #include \\\"Ticker.h\\\" #define DHTPIN 17      #define DHTTYPE DHT11    DHT dht(DHTPIN, DHTTYPE); int god=0; const char *ssid     = \\\"FAST_CAED9A\\\"; const char *password = \\\"13837

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包