智能家居之室内环境监测-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1656|回复: 0

智能家居之室内环境监测

[复制链接]
发表于 2022-1-25 10:11 | 显示全部楼层 |阅读模式
本帖最后由 OpenJumper 于 2022-1-25 10:15 编辑

[md]## 简介

大家有没有遇到这种情况?晚上睡觉有点热 ,准备打开空调睡觉,在开空调之前打开手机天气软件看了看温度才25度,而这个温度理论上是不需要开空调的。是什么原因呢?

这是因为我们手机的软件检测的是室外的宽范围的一个温度情况,不能反映出当下局部小范围内的温度情况。

所以本节我们制作室内环境监测仪,通过案例安装测试,我们可以远程监测室内的实际温湿度情况,这样就可以做到事时的监控室内的温湿度,同时还可以远程监控查看室内的温湿度情况。

## 器材准备

+ wifiduino主板 \* 1

+ wifiduino拓展板 \* 1

+ LM35温湿度传感器 \* 1

+ M3 \* 8mm螺丝 \* 8

+ M3螺母 \* 8

## 安装步骤

一、首先我们取出环境监测项目的木板B
01.jpg
二、将各组件从木板B上全部取下来
02.jpg
三、将wifiduino与DHT11温湿度传感器分别安装到带有安装孔的木板的两侧

扩展板堆叠在wifiduino主板之上,DHT11传感器通过3P数据线连接在D7接口(此接口可根据程序设定)中
03.jpg

四、接着将屋顶与两侧进行连接固定,如下图所示
04.jpg

五、接着用如图的方法,将wifiduino与DHT11进行安装与固定
05.jpg

六、最后将底板进行安装固定,我们这次的组装就完成了

06.jpg
## 示例程序

本程序使用到DHT11库文件,首先下载库文件DHT-sensor-library.zip 将其解压后放在arduino的程序安装目录下的libraries里,如图
07.jpg
打开例程 environment.ino  修改程序中的 auth[]值和要连接的wifi的ssid及密码
08.jpg
注意:

1、程序中的传感器连接的引脚为D7

2、程序中设定湿度的键名为humi ,温度的键名为temp,这与手机端的blinker添加的设备名称一一对应。

### 完整程序[/md]
  1. #define BLINKER_WIFI

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

  4. char auth[] = "d8bdba0f8f8d";  //设备key
  5. char ssid[] = "mostfun";      //连接路由器ssid
  6. char pswd[] = "18038083899";  //wifi 密码

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

  9. #define DHTPIN D7    //连接DHT11传感器的引脚

  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]
下载程序到wifiduino板中。下载结束后,IDE提示栏中显示“上传成功”
09.jpg

### 通电:

将充电电池插入扩展板上的电池接口,打开电源开关,wifiduino在经过几分钟时间,会自动连接在程序里设定的wifi账号中,并通过此wifi进行联网。

### blinker手机App中添加数据组件

点击右上方解锁按键,进入编辑模式,添加一个为数据组件,将其作为温度数据显示接口,点击该数据组件,编辑数据的信息
10.jpg
将键名修改为程序设定的“temp”,文本显示“温度”,数据单位为“℃”,最大值为100。

点击下“修改图标”,将图标修改为形状为温度计的图标,然后将图标颜色修改为红色。完成编辑,点击右上角的勾号。
11.jpg
将键名修改为程序里定义的“humi”,文本显示“湿度”,数据单位为“%”,最大值“100” 点击下“修改图标”,将图标修改为形状为水滴的图标,然后将图标颜色修改为绿色。完成编辑,点击右上角的勾号 。

### 观察结果

手机app观察传感器实时检测到的温度和湿度数据。

## 常见问题

1、程序下载不进常见原因[/md]
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-12-27 14:27 , Processed in 0.075521 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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