基于esp01s的室内智能温湿度监测利用

摘要:
所需组件:esp01s模块、dht11温度和湿度传感器、两个5号电池和几条杜邦线。

要实现的效果:实时将室内温度上报到手机APP,可远程查看信息。

需要的元器件:esp01s模块、dht11温湿度传感器、两节5号电池,杜邦线若干。

实现思路:利用esp模块的联网和端口能力,将温湿度传感器的数据通过mqtt协议转发到手机APP。

详细操作:

1.esp模块串口调试

程序烧录需要通过esp模块的串口,这里使用USB转TTL模块,模块电路图和接线如下图所示,

基于esp01s的室内智能温湿度监测利用第1张基于esp01s的室内智能温湿度监测利用第2张

esp01s是安信可公司根据乐鑫esp8266模块开发的,其中CH_PD引脚对应01s的en模块,引脚说明如下:

基于esp01s的室内智能温湿度监测利用第3张

需要注意的是,mac平台需要安装usbttl驱动,根据自己的转接设备下载驱动,这里使用的驱动是CH340系列,驱动安装成功后,系统报告会有usb_serial

基于esp01s的室内智能温湿度监测利用第4张

2.程序烧录

这里使用的是arduino ide,需要添加扩展板支持:http://arduino.esp8266.com/stable/package_esp8266com_index.json

基于esp01s的室内智能温湿度监测利用第5张

然后下载esp8266的扩展板支持:

基于esp01s的室内智能温湿度监测利用第6张

需要注意的是我这里没有使用esp的nodemcu,所以扩展板选择:

基于esp01s的室内智能温湿度监测利用第7张

做完这些后就可以愉快的烧录程序了~

3.程序编写

arduino ide需要下载两个支持库:

基于esp01s的室内智能温湿度监测利用第8张基于esp01s的室内智能温湿度监测利用第9张

SimpleDHT库提供了读取dht11传感器数据的简单接口,PubSubClient提供了mqtt功能。

主要代码

voidsetup() {
// 设定串口波特率 Serial.begin(
115200);
// 设置WiFi setup_wifi();
// 配置mqtt代理服务和信息接收 client.setServer(mqtt_server,
1883); client.setCallback(callback); } voidloop() { if (!client.connected()) {
// 重新连接网络 reconnect(); } client.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"); // 构建mqtt发布信息 String payload = "{"; payload += ""temp":"; payload += temperature; payload += ","; payload += ""humidity":"; payload +=humidity; payload += "}"; //Send payload char attributes[100]; payload.toCharArray( attributes, 100);
// 将信息发布到相应的主题
client.publish(TOPIC, attributes );
//DHT11 sampling rate is 1HZ.
  delay(1500);
}

完整程序代码:esp_dhtt

App和运行效果:

基于esp01s的室内智能温湿度监测利用第10张

免责声明:文章转载自《基于esp01s的室内智能温湿度监测利用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇ubuntu vmware kernel module updaterspan 如何移除点击事件下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

微服务用户状态保持(JWT与Session公共服务)

2017.3.1   微服务 在做微服务中 做单点登录的时候,需要记住用户的状态,而记住用户状态大致有两种思路:一是把用户状态放在客户端(浏览器)叫做JWT( JSON Web Token);另一种就是放在服务端,做成一个公共的服务,每个服务组件通过内部网关都可以访问用户的数据,这种相当于把session持久化,通常的做法是放在redis数据库中,当然其...

传感器介绍之DHT11

一.DHT11介绍      DHT11 数字温湿度传感器,如图所示,是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC 测温元件,并与一个高性能8 位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点...

【雕爷学编程】Arduino动手做(55)--DHT11温湿度传感器

37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和模块,依照实践(动手试试)出真知的理念,以学习和交流为目的,这里准备逐一做做实验,不管能否成功,都会记录下来---小小的进步或是搞不掂的问题,希望能够抛砖引玉。  【Arduino】168种传感器模块系列实验(资料+代码+图形...

一步一步实现iOS应用PUSH功能

1. push原理 iOS push 工作机制可以用下图简要概括 Provider:应用自己的服务器; APNS:Apple Push Notification Service的简称,苹果的PUSH服务器; push的主要工作流程是: iOS设备连接网络后,会自动与APNS保持类似TCP的长链接,等待APNS推送消息的到来; 应用启动时注册消息...

攻防世界-web-i-got-id-200(perl文件上传+ARGV造成任意文件读取和任意命令执行)

题目来源:csaw-ctf-2016-quals 题目描述:嗯。。我刚建好了一个网站 进入场景后有3个链接,点进去都是.pl文件,.pl文件都是用perl编写的网页文件。 尝试后发现,Files链接可以上传文件并把文件内容打印出来。猜想后台应该用了param()函数。 param()函数会返回一个列表的文件但是只有第一个文件会被放入到下面的接收变量中。如...

Kibana插件sentinl使用教程

简介 对于Kibana的一些数据我们有时候是想要对某些字段进行持续关注的,这时候通过报警的手段就可以大幅提升对这些信息状态了解的及时性及可靠性。使用sentinl插件就可以帮助我们实现这个功能。 此教程基于sentinl 6.2.3版本, sentinl版本最好与kibana的版本保持一致。 sentinl插件下载地址:https://github.com...