智能家居应用教程4——环境监测-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1198|回复: 0

智能家居应用教程4——环境监测

[复制链接]
发表于 2022-1-21 11:56 | 显示全部楼层 |阅读模式
[md]## 简介

本节学会将wifiduino检测到的数据值传输给手机app中显示,例如添加一个温湿度传感器模块,即可将实际检测到的温湿度值,传输在手机app中显示,已达到实时的可远程监测环境温湿度的目的。

## 器材准备

+ wifiduino主板 * 1

+ wifiduino拓展板 * 1

+ DHT11模块 * 1

+ 3P连接线 * 1

+ 3.7V可充电电池 * 1

## 程序下载
本程序使用到DHT11温湿度传感器,在IDE中没有该传感器的库文件,所以首先下载库文件DHT-sensor-library.zip   将其解压后放在arduino的程序安装目录下的libraries里,如图:
01.jpg
打开例程 environment.ino  修改程序中的 auth[]值和要连接的wifi的ssid及密码
02.jpg
注意程序中的传感器连接的引脚为D8[/md]
  1. #define DHTPIN D8
复制代码
[md]程序中设定湿度的键名为humi ,温度的键名为temp (这将与blinker中对应的键名匹配)

BlinkerNumber HUMI(“humi”);
BlinkerNumber TEMP(“temp”);

下载程序到wifiduino板中。下载结束后,IDE提示栏中显示“上传成功”
03.jpg
## 完整程序[/md]
  1. #define BLINKER_WIFI

  2. #include <Blinker.h>
  3. #include <DHT.h>

  4. char auth[] = "d8bdba0f8f8d";
  5. char ssid[] = "mostfun";
  6. char pswd[] = "1803808xxxx";

  7. BlinkerNumber HUMI("humi");
  8. BlinkerNumber TEMP("temp");

  9. #define DHTPIN D8

  10. #define DHTTYPE DHT11   // DHT 11
  11. //#define DHTTYPE DHT22   // DHT 22  (AM2302), AM2321
  12. //#define DHTTYPE DHT21   // DHT 21 (AM2301)

  13. DHT dht(DHTPIN, DHTTYPE);

  14. float humi_read = 0, temp_read = 0;

  15. void heartbeat()
  16. {
  17.     HUMI.print(humi_read);
  18.     TEMP.print(temp_read);
  19. }

  20. void setup()
  21. {
  22.     Serial.begin(115200);
  23.     BLINKER_DEBUG.stream(Serial);
  24.     BLINKER_DEBUG.debugAll();
  25.     pinMode(LED_BUILTIN, OUTPUT);
  26.     digitalWrite(LED_BUILTIN, LOW);

  27.     Blinker.begin(auth, ssid, pswd);
  28.     Blinker.attachHeartbeat(heartbeat);
  29.     dht.begin();
  30. }

  31. void loop()
  32. {
  33.     Blinker.run();

  34.     float h = dht.readHumidity();
  35.     float t = dht.readTemperature();

  36.     if (isnan(h) || isnan(t))
  37.     {
  38.         BLINKER_LOG("Failed to read from DHT sensor!");
  39.     }
  40.     else
  41.     {
  42.         BLINKER_LOG("Humidity: ", h, " %");
  43.         BLINKER_LOG("Temperature: ", t, " *C");
  44.         humi_read = h;
  45.         temp_read = t;
  46.     }

  47.     Blinker.delay(2000);
  48. }
复制代码
[md]
## blinker制定软件界面

点击右上方解锁按键,进入编辑模式,添加一个为数据组件,将其作为温度数据显示接口,点击该数据组件,编辑数据的信息
04.jpg
将键名修改为程序里定义的“temp”,文本显示“温度”,数据单位为“℃”,最大值“100”
05.jpg
点击下“修改图标”,将图标修改为形状为温度计的图标,然后将图标颜色修改为红色。完成编辑,点击右上角的勾号。
06.jpg
将键名修改为程序里定义的“humi”,文本显示“湿度”,数据单位为“%”,最大值“100”, 点击下“修改图标”,将图标修改为形状为水滴的图标,然后将图标颜色修改为绿色。完成编辑,点击右上角的勾号。

## 连接硬件模块

将扩展板堆叠在wifiduino主板上,,DHT11温湿度传感器通过连接线连接在传感器扩展板上的D8 (程序中定义) 座子上。

连接完成后,插上电池,并将开关打开供电 ,使wifiduino能够连接上网。
07.jpg
## 观察现象

手机app观察传感器实时检测到的温度和湿度数据[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-27 14:08 , Processed in 0.077578 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表