vc 控制台添加托盘显示_开源:ESP8266读DHT11温湿度,小程序实时显示

第一、原理讲解

原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新建主题,然后esp8266往这个主题发送消息,第三步。小程序通过http API接口获取数据。小程序控制原理:esp8266订阅了一个主题,小程序往这个主题发消息,esp8266就可以收到消息,就可以执行相关控制指令了(开/关函数)

关于发布订阅:

订阅(订阅):订阅给定的一个主题/频道的信息。 发布(发布)将信息发送到指定的主题/频道。

只有订阅该主题的设备才可以收到发往该主题的消息。

通俗的来讲:就是像邮件订阅的场景,什么意思呢,也就是说100个人订阅了你的博客,如果博主发表了文章,那么100个人就会同时收到通知邮件,订阅/发布模式就是这样的原理。

如果还不理解的话再通俗讲一下,就像生活中听收音机,要想听收音机,肯定就是调频啦,只有在正确的频道上面,我们才能听得到好听的节目,所以说订阅首先要订阅一个频道/主题,只有订阅了该主题,我们才能收到发往该频道/主题的消息。

程序讲解:在本示例中,ESP8266 有两个角色,一个是temp(传感器数据)主题消息的发布者,esp8266往这个主题推送消息,小程序就可以收到传感器数据了。 esp8266联网后,订阅light002,手机往这个主题推送消息,esp8266就能收到手机的控制的指令了。

第二、ESP8266读取DHT11

003968aa09ce5f249ce21451a236d994.png

这里使用的是D4口。

本demo 是利用arduino IDE开发,关于arduino IDE 的ESP8266环境配置可参考:环境配置: 点击跳转

安装库 本案例使用一个非常简单易用且与ESP8266配合使用的是Simple DHT传感器库。可以通过Arduino IDE Library Manager轻松安装该库。


在 arduino IDE上方选项处----> 工具--->管理库,然后直接搜索dht11即可。点击安装库,如下图:

b9239a5a20a8101fe0f1463d9f97377c.png

测试程序:

#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() {// start working...Serial.println("=================================");Serial.println("Sample DHT11...");// read without samples.byte temperature = 0;byte humidity = 0;int err = SimpleDHTErrSuccess;if ((err = dht11.read(&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);
}

正常工作的话,串口会正常输出的,如下图所示:

9083e3fe64fd52fc2c94fe6b61ecef34.png

第三、温湿度推送到云端

如果上一步的温湿度可以读取输出,那么就可以在上版的基础上,把数据上传到云端。

增加了按钮控制,数据用#号包裹,以便app采用字符串切割,分割出来数据,&msg=#23#80#on#rn,即#温度#湿度#按钮状态#,app端会根据#号分割字符串进行取值,以便显示。

如果上传的数据不止温湿度,可在#号后面继续添加&msg=#23#80#data1#data2#data3#data4#rn,app字符串分割的时候,要根据上传的数据进行分割

升级版程序下载:

点击下载 http://www.cloud.bemfa.com/zip/dht11_LED.zip

需要修改的地方

///****************需要修改的地方*****************/////WIFI名称,区分大小写,不要写错
#define DEFAULT_STASSID  "newhtc"
//WIFI密码
#define DEFAULT_STAPSW "qq123456"
//用户私钥,可在控制台获取,修改为自己的UID
String UID = "7d54f85af42976ee3c2693e692a6bb59";
//主题名字,可在控制台新建
String TOPIC = "temp"; //用于传输温湿度的主题
//DHT11引脚值
int pinDHT11 = D4;  //连接dht11的引脚
//单片机LED引脚值
const int LED_Pin = D2;  //假设连接led的引脚
//主题名字,可在控制台新建
String TOPIC2  = "light002";  //用于led控制的主题///*********************************************///

巴法创客云控制台 新建一个主题,主题名字随意,例如temp,本实例用用temp,使用示例代码时应修改为自己的主题名字,字母或数字或字母加数字组合。UID为用户私钥,在 巴法创客云控制台 注册登陆后可获得。 登陆完成后,可在控制台看到自己的私钥UID,如图所示:

e7bc80b9733ab08e4188328ca6e78ece.png

创建主题,在控制台,可创建主题。

  • 第一输入主题,字母或数字或字母+数字组合。
  • 点击创建主题,要创建两个主题,一个主题用来传递传感器数据,另一个主题用来进行LED灯的控制。在本例程中一个主题名字是:temp ,另一个主题名字是:light002,可自定义或修改,不过下方小程序里面的主题名字要和esp8266的主题保持一致,以便正常的往同一个主题发布订阅。

579591921e269caa831f76fd31aff07c.png

WIFI名称为自己的路由器WIFI名称,区分大小写,写错会导致连接不上网络的。

例程中,每两秒上传一次数据:

if(millis() - preHeartTick >= upDataTime){//上传数据preHeartTick = millis();/*****************获取DHT11 温湿度*****************/// read without samples.byte temperature = 0;byte humidity = 0;int err = SimpleDHTErrSuccess;if ((err = dht11.read(&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+"#rn";sendtoTCPServer(upstr);upstr = "";}

如果路由器有网络的话,数据会自动上传,可在巴法创客云控制台 刷新网页,即可看到上传的数据。如下图所示:

5ec68505d11a7f8d2ac9934399725b9b.png

数据上传时用#号进行了封装,27是温度,24是湿度,off是上传的灯的状态。

第四、小程序开发

在 公众平台注册小程序账号,拿到小程序 appid,长的大概是这样:34a2063de5cec04b,下面导入项目的时候会用到。

右侧点击 -开发--》开发设置--》下方服务器域名处,点击修改,在request合法域名处,添加域名https://api.bemfa.com/ 保存提交即可。如下图。

6b8965b726d9f82c2664503ab70f6e63.png

下载安装开发者工具。 下载demo示例程序。下载地址: 点击下载

打开开发者工具,小程序项目,导入项目。在目录处选择刚刚下载解压的demo示例程序,AppID处填入你的小程序AppID,然后点击下方导入即可。如下图。

3912d65871413940219ef0571a3041e1.png

本示例程序非常简单,各位大神可以继续开发添加各种功能,添加背景,优化色彩等等,如果只是简单使用,只需修改/pages/index/index.js 文件中uid 和topic 信息为自己的即可,这里的uid和topic需要和esp8266填入的uid和topic相同,这里有两个主题,一个用于传输温度和湿度,一个用于控制LED。如下图。

e490572616437716de8273f7a440a4e8.png

修改完毕后,ctrl+s 保存修改。可以点击左边屏幕上的按钮进行调试,如下图。

2d6714cab8394fc30e60c2551246a51c.png

console控制台可以查看小程序的调试信息。默认每2秒会自动请求一下服务器上的数据,以便查看esp8266的状态信息。点击打开或者关闭按钮,打开esp8266串口调试助手,可查看esp8266是否收到指令,如果第一步esp8266已联网,都是可以收到信息的。

如果界面和其他功能都开发完毕。可以点击开发者工具的上面的上传按钮,如下图。

abbf5785bffc610e894ec61994ec90a3.png

上传成功后,再登陆刚刚注册的公众平台,在版本管理处,可以看到自己刚刚上传的小程序,提交审核即可,等一天左右,一般都会通过,通过后登陆公众平台,提交发布即可。如果是自己使用的,做好加上登陆验证功能,比如验证匹配一下某个字符串是否正确等等,不然小程序上线后别人也可以随意控制了。

8ab5b3926edb473ff73889ef57330e5b.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/298502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python if elif else_python:通讯录(字典+while+if/else)

Hello,World.我是很久很久很久都没有更新的土土[看]但是即便如此呢我这个人也不喜欢拖拖拉拉的东扯西扯一上来咱们就来讲讲正题勿怪[笑哭]1.使用字典构建通讯录mydic{}//定义一个字典2.使用whlie循环判断是否继续进行while True://循环开始break//循环结束3.使用if/elif/else语…

有BUG!!!慎用default文本

前言下面这段代码&#xff0c;你能发现什么问题吗&#xff1f;public static int? Test1(string str) {return str switch{"A" > 1,"B" > 2,"C" > 3,_ > default,}; } public static int? Test2(string str) {switch (str){case &…

老师看完都吐血的五道题

全世界只有3.14 % 的人关注了 爆炸吧知识 老师看完都要吐血的五道题哈哈哈哈哈虽然小编觉得最后一答完全没问题哈哈哈图片来源于网络&#xff0c;如有侵权请联系删除。你点的每个在看&#xff0c;我都认真当成了喜欢

JDK5.0新特性--可变参数

2019独角兽企业重金招聘Python工程师标准>>> /*** 可变参数*/ public class VariableParamater {/*** 统计2个或多个数的和*/public static void main(String[] args) {//计算2个数的和sum(10,15);/** 问题&#xff1a;如果要计算3个数、4个数、5个数或n个数的和&am…

中职计算机教师考核工作总结,中职计算机教师工作总结.doc

中职计算机教师工作总结中职计算机教师工作总结一个学期以来&#xff0c;认真真学习贯彻党的教育方针政策策&#xff0c;落实上级领导的工作部署署&#xff0c;以重实际&#xff0c;抓实事&#xff0c;求实实效为教学工作的基本原则&#xff0c;&#xff0c;以培养学生创新精神…

爱情二十九课,驾驭爱情

每个人都期待驾驭爱情&#xff0c;都希望让恋人终生痴情于自己&#xff0c;也希望爱情保持新鲜&#xff0c;但爱情是一种非常飘渺的心理因素&#xff0c;能驾驭爱情的技巧是什么呢……大部分人常用的战术有3种&#xff1a; 第一种 用内疚感来驾驭 在发现爱情温度下降时&#xf…

欧几里得距离网络_使用Tensorflow对象检测模型和OpenCV的社交距离和遮罩检测器...

将深度学习和计算机视觉相结合的隔离项目社会距离化这个术语已席卷全球&#xff0c;正在改变着我们的生活方式。社交距离也称为“物理距离”&#xff0c;是指在您自己与其他并非来自家庭的人之间保持安全的空间。随着该国开始在激增的COVID-19案件中发挥作用&#xff0c;保持社…

python 实现点击右键用某个程序打开功能_工欲善其事,必先利其器(1)——Python开发环境安装与配置...

Life Is Short, You Need Python.近年来随着Python的火爆&#xff0c;很多人想要学习并使用Python&#xff0c;本文将详细介绍一套Python开发环境的安装与配置&#xff0c;相比Python自带的IDEL&#xff0c;在此环境下将极大的提高开发效率。下面就让我们一步步的开始安装&…

开源实体映射框架EmitMapper介绍

概述对象—对象映射的一种传统做法就是创建许多数据转换对象。这些对象负责在众多数据对象之间复制数据。对于拥有大量数据对象的程序而言&#xff0c;开发人员需要花费大量的时间精力编写大量的数据转换对象来支持数据对象映射。这一过程非常无聊沉闷&#xff0c;而且容易出现…

5分钟盗走你的隐私照片,这个全球性漏洞到底有多可怕

全世界只有3.14 % 的人关注了爆炸吧知识转自&#xff1a;好机友ID&#xff1a;goodjiyou这个时代&#xff0c;大家对电脑出现漏洞&#xff0c;可能已经习以为常。但如果机哥告诉大家&#xff0c;这个漏洞能够在 5 分钟内&#xff0c;破解并盗取你所有加密文件&#xff0c;而且还…

抄写经书的十大益处

抄写经书的十大益处一、从前所作种种罪过&#xff0c;轻者立即消灭&#xff0c;重者也得转经。二、常得吉神拥护&#xff0c;一切瘟疫、水火、盗贼、刀兵、牢狱之灾&#xff0c;悉皆不受。三、夙世怨对&#xff0c;咸蒙法益&#xff0c;而得解脱&#xff0c;永免寻仇报复之苦。…

我的世界命令计算机,我的世界有哪些指令?电脑版指令大全

在我的世界游戏中玩家可以依靠指令做很多现实生活中都可以做的事情&#xff0c;甚至有些现实中做不到的事情&#xff0c;比如上天堂&#xff0c;所以指令对于每个我的世界的玩家来说都非常重要&#xff0c;今天小编给大家介绍我的世界指令大全&#xff1a;我的世界指令大全&…

什么是 CAT?

“CAT” 是“Computer Aided Translation”的缩写&#xff0c;因为这三个单词长度较长&#xff0c;所以为了书写简便&#xff0c;业界人士通常缩写为“CAT”。单词“CAT”翻译成中文是“计算机辅助翻译”&#xff0c;是为了提高翻译的效率和质量开发的辅助翻译软件。主要运用翻…

存储过程学习笔记(一)

存储过程学习笔记&#xff08;一&#xff09; 存储过程是将具有规律并且经常使用的sql语句&#xff0c;写成可以接受参数的sql语句进行保存起来&#xff0c;给以后进行调用 一、存储过程的格式 ■■■■■■代码开始■■■■■■CREATE PROCEDURE [存储过程的名称][参数1],[参数…

道德经和译文_老子《道德经》第九章原文、注释、译文、导读及解析(收藏版)...

《道德经》被誉为“万经之王”&#xff0c;内容涵盖哲学、伦理学、政治学、军事学等诸多学科&#xff0c;曾被后人尊奉为治国、齐家、修身、为学的宝典。它对我国的哲学、科学、政治、宗教等都产生了深远的影响&#xff0c;体现了古人的一种世界观和人生观。《道德经》作为道教…

StackOverflow程序员推荐:每个程序员都应读的30本书

“如果能时光倒流&#xff0c;回到过去&#xff0c;作为一个开发人员&#xff0c;你可以告诉自己在职业生涯初期应该读一本&#xff0c;你会选择哪本书呢&#xff1f;我希望这个书单列表内容丰富&#xff0c;可以涵盖很多东西。” 很多程序员响应&#xff0c;他们在推荐时也写下…

超震撼!你没见过的24张震撼照片

全世界只有3.14 % 的人关注了爆炸吧知识话不多说&#xff0c;这些照片&#xff0c;每张都很有价值&#xff1a;艾菲尔铁塔&#xff0c;从底部往上看360度的彩虹高科技停车&#xff08;大众沃尔夫斯堡汽车厂&#xff09;被整理过的蜂窝沙特阿拉伯的农田两棵树共享一个枝干两位接…

使用 baget 搭建 nuget 私有服务

现在几乎所有语言都提供包管理工具&#xff0c;比如 JavaScript 的 npm &#xff0c;Java 的 Maven &#xff0c;Dart 的 pub 。.Net 程序当然是 NuGet 。NuGet 也出现很多年了&#xff0c;奇怪的是居然还有很多人不知道。现在软件结构越来越复杂&#xff0c;在多个项目中往往需…

xp计算机dns怎么设置,XP系统dns怎么设置?XP系统dns的设置方法

在使用XP系统浏览网页时&#xff0c;大家有没碰到网页打开很慢&#xff0c;而网速检测又显示正常的情况。为什么会出现这样的情况呢&#xff1f;一方面可能是你的电脑中毒了&#xff0c;另一方面可能是你的dns选择的不够好。那么dns要怎么设置才最好呢&#xff1f;下面小编以XP…

Office SharePoint Server 2007

http://tech.it168.com/zt/sharepoint/index.html 找了找感觉这个比较全,留个记录吧转载于:https://www.cnblogs.com/hliq/archive/2011/04/09/2087182.html