小程序显示ESP8266上传的实时显示温湿度数据

程序显⽰ESP8266上传的实时显⽰温湿度数据
第⼀、原理讲解
原理简述:利⽤发布订阅模式。第⼀步,先读取DHT11温湿度数值,第⼆步,新建主题,然后esp8266往这个主题发送消息,第三步。⼩程序通过http API接⼝获取数据。⼩程序控制原理:esp8266订阅了⼀个主题,⼩程序往这个主题发消息,esp8266就可以收到消息,就可以执⾏相关控制指令了(开/关函数)
关于发布订阅:
订阅(订阅):订阅给定的⼀个主题/频道的信息。
发布(发布)将信息发送到指定的主题/频道。
只有订阅该主题的设备才可以收到发往该主题的消息。
通俗的来讲:就是像邮件订阅的场景,什么意思呢,也就是说100个⼈订阅了你的博客,如果博主发表了⽂章,那么100个⼈就会同时收到通知邮件,订阅/发布模式就是这样的原理。
如果还不理解的话再通俗讲⼀下,就像⽣活中听收⾳机,要想听收⾳机,肯定就是调频啦,只有在正确的频道上⾯,我们才能听得到好听的节⽬,所以说订阅⾸先要订阅⼀个频道/主题,只有订阅了该主题,我们才能收到发往该频道/主题的消息。
程序讲解:在本⽰例中,ESP8266 有两个⾓⾊,⼀个是temp(传感器数据)主题消息的发布者,esp8266往这个主题推送消息,⼩程序就可以收到传感器数据了。
esp8266联⽹后,订阅light002,⼿机往这个主题推送消息,esp8266就能收到⼿机的控制的指令了。
第⼆、ESP8266读取DHT11
这⾥使⽤的是D4⼝。
本demo 是利⽤arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转
安装库
本案例使⽤⼀个⾮常简单易⽤且与ESP8266配合使⽤的是Simple DHT传感器库。可以通过Arduino IDE Library Manager轻松安装该库。
在 arduino IDE上⽅选项处——> ⼯具—->管理库,然后直接搜索dht11即可。点击安装库,如下图:
测试程序:
#include <SimpleDHT.h>
// for DHT11,
/
/      VCC: 5V or 3V
//      GND: GND
//      DATA: 2
int pinDHT11 = D4;
SimpleDHT11 dht11(pinDHT11);
void setup() {
Serial.begin(115200);
}
void loop() {
//
Serial.println("=================================");
Serial.println("");
// read without samples.
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
if ((err = ad(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {        Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
Serial.print("Sample OK: ");
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" H");
// DHT11 sampling rate is 1HZ.
delay(1500);
}
正常⼯作的话,串⼝会正常输出的,如下图所⽰:
第三、温湿度推送到云端
如果上⼀步的温湿度可以读取输出,那么就可以在上版的基础上,把数据上传到云端。
多媒体教学平台
增加了按钮控制,数据⽤#号包裹,以便app采⽤字符串切割,分割出来数据,&msg=#23#80#on#\r\n,即#温度#湿度#按钮状态
#,app端会根据#号分割字符串进⾏取值,以便显⽰。
如果上传的数据不⽌温湿度,可在#号后⾯继续添加&msg=#23#80#data1#data2#data3#data4#\r\n,app字符串分割的时候,要根
据上传的数据进⾏分割
升级版程序下载:
需要修改的地⽅
///@@****************需要修改的地⽅*****************///
笔式摄像机//WIFI名称,区分⼤⼩写,不要写错
#define DEFAULT_STASSID  "newhtc"
//WIFI密码
#define DEFAULT_STAPSW "qq123456"
//⽤户私钥,可在控制台获取,修改为⾃⼰的UID
String UID = "7d54f85af42976ee3c2693e692a6bb59";
//主题名字,可在控制台新建
String TOPIC = "temp"; //⽤于传输温湿度的主题
//DHT11引脚值
int pinDHT11 = D4;  //连接dht11的引脚
//<a class="decoration-color" href="/?ctl=Product&met=lists&key_type=1&keywords=%E5%8D%95%E7%89%87%E6%9C%BA" target="_bl    const int LED_Pin = D2;  //假设连接led的引脚
//主题名字,可在控制台新建
String TOPIC2  = "light002";  //⽤于led控制的主题
///@@*********************************************///
在巴法创客云控制台 新建⼀个主题,主题名字随意,例如temp,本实例⽤⽤temp,使⽤⽰例代码时应修改为⾃⼰的主题名字,字母或数字
或字母加数字组合。UID为⽤户私钥,在 巴法创客云控制台 注册登陆后可获得。
纸币识别器
登陆完成后,可在控制台看到⾃⼰的私钥UID,如图所⽰:
创建主题,在控制台,可创建主题。
第⼀输⼊主题,字母或数字或字母+数字组合。
点击创建主题,要创建两个主题,⼀个主题⽤来传递传感器数据,另⼀个主题⽤来进⾏LED灯的控制。
在本例程中⼀个主题名字是:temp ,另⼀个主题名字是:light002,可⾃定义或修改,不过下⽅⼩程序⾥⾯的主题名字要和esp8266的主题保持⼀致,以便正常的往同⼀个主题发布订阅。
WIFI名称为⾃⼰的路由器WIFI名称,区分⼤⼩写,写错会导致连接不上⽹络的。
例程中,每两秒上传⼀次数据:
if(millis() - preHeartTick >= upDataTime){//上传数据
preHeartTick = millis();
/@@*****************获取DHT11 温湿度*****************/
// read without samples.
byte temperature = 0;
byte humidity = 0;
int err = SimpleDHTErrSuccess;
楼层呼叫器
if ((err = ad(&temperature, &humidity, NULL)) != SimpleDHTErrSuccess) {
小型生物反应器Serial.print("Read DHT11 failed, err="); Serial.println(err);delay(1000);
return;
}
/@@*********************数据上传*******************/
String upstr = "";
upstr = "cmd=2&uid="+UID+"&topic="+TOPIC+"&msg=#"+temperature+"#"+humidity+"#"+bt_status+"#\r\n";
sendtoTCPServer(upstr);
upstr = "";
}
如果路由器有⽹络的话,数据会⾃动上传,可在巴法创客云控制台 刷新⽹页,即可看到上传的数据。如下图所⽰:
数据上传时⽤#号进⾏了封装,27是温度,24是湿度,off是上传的灯的状态。
第四、⼩程序开发
在 公众平台注册⼩程序账号,拿到⼩程序 appid,长的⼤概是这样:wx34a2063de5cec04b,下⾯导⼊项⽬的时候会⽤到。
下载安装开发者⼯具。
下载demo⽰例程序。下载地址:点击下载
打开开发者⼯具,⼩程序项⽬,导⼊项⽬。在⽬录处选择刚刚下载解压的demo⽰例程序,AppID
处填⼊你的⼩程序AppID,然后点击下⽅导⼊即可。如下图。
本⽰例程序⾮常简单,各位⼤神可以继续开发添加各种功能,添加背景,优化⾊彩等等,如果只是简单使⽤,只需修超低温制冷机
改/pages/index/index.js ⽂件中uid 和topic 信息为⾃⼰的即可,这⾥的uid和topic需要和esp8266填⼊的uid和topic相同,这⾥有两个主题,⼀个⽤于传输温度和湿度,⼀个⽤于控制LED。如下图。

本文发布于:2024-09-25 02:27:22,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/3/116084.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:主题   数据   订阅   程序   控制台   消息   下载
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议