原理讲解

原理简述:利用发布订阅模式。第一步,先读取DHT11温湿度数值,第二步,新建主题,然后esp8266往这个主题发送消息,第三步。app inventor 订阅这个主题,因为app inventor 制作的app 订阅了这个主题,就可收到来自这个主题的消息,也就是可以收到温湿度数值。

关于发布订阅:

订阅(订阅):订阅给定的一个主题/频道的信息。

发布(发布)将信息发送到指定的主题/频道。

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

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

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

ESP8266读取DHT11

这里使用的是D4口。

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

安装库

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

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

测试程序:

#include

// 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);

}

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

温湿度推送到云端

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

升级版程序下载:

点击下载 https://www.lanzous.com/i5p2b9c

需要修改的地方

///****************需要修改的地方*****************///

//WIFI名称,区分大小写,不要写错

#define DEFAULT_STASSID "PDCN"

//WIFI密码

#define DEFAULT_STAPSW "air123456"

//用户私钥,可在控制台获取,修改为自己的UID

String UID = "4d9ec352e0376f2110a0c601a2857225";

//主题名字,可在控制台新建

String TOPIC = "temp";

//DHT11引脚值

int pinDHT11 = D4;

///*********************************************///

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

登陆完成后,可在控制台看到自己的私钥UID,如图所示:

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

第一输入主题,字母或数字或字母+数字组合。

点击创建主题。

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+"#\r\n";

sendtoTCPServer(upstr);

upstr = "";

}

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

数据上传时用#号进行了封装,27是温度,24是湿度

app inventor 制作app 接收实时数据

在appInventor 点击跳转广州站创建账号,并登陆。

本操作只提供一个app的demo,界面过于丑陋,大家可自由发挥更改界面。

app inventor 程序下载 点击下载 https://www.lanzous.com/i5p35fi

顶部导航栏,依次点击(项目–>导入项目aia),选择上一步骤下载的aia文件导入即可。点击导入的项目,即可看到控制面板,面板主要分为在组建设计和逻辑设计,用户可在右上角进行模式切换。

(组建设计)面板可以向屏幕添加组建以进行二次开发。(逻辑面板)则进行相关逻辑编写。

导入aia文件后,如果只是简单使用,只需要修改两个地方,一个是主题名字,一个是UID,均需开发者置换成自己的topic(主题名字)和UID(用户私钥),均可在创客云控制台获取点击跳转。

此处的主题topic应该和ESP8266程序里面设定的主题修改为一样,不然会收不到消息。UID修改为自己的私钥。

界面还有功能之类的自己可以随意加,更改好,下载apk文件即可。

关键程序讲解

程序下载,修改关键参数后就可直接使用的,以下是关键程序讲解:

接收到带有温湿度的数据后,依照#号对字符串进行分割,分割后的数据里第二位是温度,第三位是湿度,如上图所示。

当屏幕初始化时,会先订阅主题,只有订阅了这个主题,就可以实时收到发到该主题的消息,cmd=1是订阅指令,关于具体指令格式,可以在接入文档了解:接入文档

效果展示

app可实时展示当前温湿度信息,可做远程监控,手机只要有网络就可以收到数据信息。

udp服务器实时显示温湿度,(可远程)ESP8266读DHT11温湿度,APP inventor制作app实时显示...相关推荐

  1. (可远程)ESP8266读DHT11温湿度,APP inventor制作app实时显示

    ESP8266读DHT11温湿度传感器------APP inventor实时显示 原理讲解 ESP8266读取DHT11 温湿度推送到云端 app inventor 制作app 接收实时数据 关键程 ...

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

    第一.原理讲解 原理简述:利用发布订阅模式.第一步,先读取DHT11温湿度数值,第二步,新建主题,然后esp8266往这个主题发送消息,第三步.小程序通过http API接口获取数据.小程序控制原理: ...

  3. ESP8266读DHT11温湿度,开发微信小程序实时显示

    ESP8266读DHT11温湿度,开发微信小程序实时显示 第一.原理讲解 第二.ESP8266读取DHT11 第三.温湿度推送到云端 第四.微信小程序开发 个人可免费注册五个微信小程序账号. 第一.原 ...

  4. 利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示

    利用ESP8266制作环境监测系统+APP inventor制作手机App实时显示 原理讲解 ESP8266读取各种传感器数值 传感器数据推送到云端 app inventor 制作app 接收实时数据 ...

  5. (开源)STC89c51结合ESP8266制作物联网环境监测系统+APP inventor制作手机App实时显示

    STC89c51结合ESP8266制作物联网环境监测系统+APP inventor制作手机App实时显示 第一 .先上效果图 第二.原理讲解 第三.c51读取各种传感器数值 第四.传感器数据推送到云端 ...

  6. Arduio ESP8266将DHT11温湿度传感器数据在网页上显示

    Arduio ESP8266将DHT11温湿度传感器数据在网页上显示

  7. ⑦ ESP8266 开发学习笔记_By_GYC 【ESP8266 驱动 DHT11 温湿度传感器】

    目录 一.准备材料 二.硬件连接 三.软件编程 1.修改工程名 2.添加组件 3.编程 4.反馈结果 5.核心代码 四.总结 ⑦ ESP8266 开发学习笔记_By_GYC [ESP8266 驱动 D ...

  8. esp32-cam拍照上传,app inventor 制作安卓app实时显示

    esp32-cam拍照上传,app inventor 制作安卓app实时显示 1.ESP32-cam开发环境配置 2 .程序下载 连线 3. 控制台查看图片 第四.app 开发 1.ESP32-cam ...

  9. ESP8266笔记—DHT11温湿度传感器

    DHT11温湿度传感器 参考文档 产品概述 典型电路 标题串行通信说明(单线双向) 单总线传送数据位定义 校验位数据定义 外设读取步骤 参考文档 技小新:https://www.jixin.pro/b ...

最新文章

  1. mysql中tinyint(1)与tinyint(2)的区别
  2. 来自nativeGetEnabledTags的意外值:0
  3. web项目jsp中无法引入js问题
  4. 【转】1.1异步编程:线程概述及使用
  5. javaee 第五周作业
  6. Vs 2008 解决方案的目录结构设置和管理
  7. javascript执行机制
  8. windows命令行压缩解压缩
  9. java解压zip和rar并解决乱码问题
  10. 1299最长上升子序列
  11. 虚拟服务器钟楼古城微博,最无聊中外钟楼微博走红
  12. 爪哇国新游记之七----使用ArrayList统计水果出现次数
  13. 我蛮喜欢的几首 五月天 的励志歌曲
  14. 云服务器、VPS、虚拟主机三者的区别(详细)
  15. 多线程(一)线程和进程的区别
  16. 计算机无法启用媒体流,win7开启媒体流功能提示“媒体流已被管理员定义的组策略禁用”如何解决...
  17. dubbo 服务调用源码分析
  18. android和Mac共享文件,这可能是 Mac 共享文件最详细的教程了
  19. 远程桌面连接管理器RDCMan教程
  20. 华科计算机学院院长冯丹,华中科技大学

热门文章

  1. 人生苦短,我用vim
  2. Android MediaScanner MediaProvider流程以及性能优化,音视频扫描
  3. addslashes 和 stripslashes
  4. linux怎么用wifi笑话,笑话段子:这个WIFI信号不怎么好,你可以到我房间里来用...
  5. 截断亏损,让利润奔跑!
  6. 【​突发】小米用户物流信息在黑市疯传!米粉警惕诈骗风险
  7. HTML/CSS/Javascript在线代码运行工具(网站汇总)
  8. PS--人物黄金色调
  9. 写一个垃圾桶开关盖子的动画其实很简单
  10. PDF文档过期时间/自毁设置/到期打不开