创客带师第四弹自制温湿度计(翻车)

上期:ARDUINO从入门到创客带师第三弹:用单片机开发板自制MIDI音乐盒(预算15)DHT11温湿度传感器模块装好驱动检测开发板信息试试PS:DHT22好贵啊……15块钱一个模块赶上开发板了,精度嘛确实高了些,湿度2%,温度±0.5℃,但是这个价格这个精度还真就不如加钱上小米那套东西了。

ARDUINO第四款自制温湿度计从初学者到创客领袖(翻车)

事实上,我们对此有自己的方法:这些解决方案的准确性低于我们这次所做的成本。 我们这次唯一的优势就是手工搓的成本很低

通过本教程,我们迈出了制作自己的自动气象站的第一步

上一期:ARDUINO从入门到创客。 第三部分:用微控制器开发板制作自己的MIDI音乐盒(预算15)

本期我们依然使用ARDUINO单片机开发板来制作我们自己的系列。 这次我们将使用以下内容:

ARDUINO开发板,如果只是想读取传感器模块的信息,可以使用基于AVR 8位单片机的14位UNO,免运费。 这里我们还提供先进的WIFI联网解决方案,需要使用D1 MINI或ARDUINO D1模块。 ,前者10元,后者更贵,16-18元。 NODEMCU也可以,因为我们的模块供电可以是3.3-5V范围内的任意电压,而且NODEMCU还有5V输出。

DHT11温湿度传感器模块

创客带师第四弹自制温湿度计(翻车)

单个模块的成本非常便宜

创客带师第四弹自制温湿度计(翻车)

运气好的话,买东西满5元就可以免运费,或者订单满9.9元就可以免运费。

创客带师第四弹自制温湿度计(翻车)

当然,准确率很一般。 湿度精度为5%,温度精度为±2℃。 加上开发板和杜邦线,这套的成本是20块。你想想,小米的温湿度计自带蓝牙5.0模块,还有相当大的电子墨水屏。 卖70便宜吗?这个教程可能给你的只是成就感。

在本教程中,我们将使用世界上最好的搜索引擎来实际解决我们需要解决的问题(尚未解决)

首先我们打开TB并搜索DHT11

然后我们就可以轻松找到相关结果

创客带师第四弹自制温湿度计(翻车)

默认搜索结果是第一个,点击进入

虽然这家店的产品价格昂贵,据说质量比华强北其他店里卖的便宜的要差,但这并不妨碍我们购买。

点击进入并向下滚动后,我们会看到该商店的产品信息中提供的信息。

创客带师第四弹自制温湿度计(翻车)

这就是我们想要的

创客带师第四弹自制温湿度计(翻车)

下载后解压DHT11数据

创客带师第四弹自制温湿度计(翻车)

其中之一是原理图、说明书、测试程序等信息。 这实际上有助于理解该模块,但不是该项目所需的文档。

创客带师第四弹自制温湿度计(翻车)

毕竟,知道该传感器包含电阻式湿度传感元件和 NTC 温度测量元件,并连接到高性能 8 位微控制器,并不能提高该模块令人印象深刻的精度……

创客带师第四弹自制温湿度计(翻车)

这里给出的测试程序实际上是针对51单片机的。 天哪,现在谁还在用这个东西? STM32直接使用ARDUINO环境。 真的需要从51开始学习单片机吗? 你是一个成熟的图片栏垃圾佬,是时候学习如何使用现成的开源项目和调用库了。

创客带师第四弹自制温湿度计(翻车)

有我们比较感兴趣的WIFI信息

创客带师第四弹自制温湿度计(翻车)

看了一下WORD文档,说明使用后可以直接上网,不错。

创客带师第四弹自制温湿度计(翻车)

有项目文件

创客带师第四弹自制温湿度计(翻车)

可以看到项目文件中的代码注释提到了引脚11,这应该就是我们的温度传感器模块这次需要连接的引脚。

创客带师第四弹自制温湿度计(翻车)

连接好电线后,我​​们将慢慢检查代码中可能存在的错误。

首先,这段代码提到了一个叫做 DHT.h 的东西。 只需通过搜索找到它并将其放入库中即可。

创客带师第四弹自制温湿度计(翻车)

创客带师第四弹自制温湿度计(翻车)

关于ESP8266WiFi.h报错,可以先通过加载库的方式解决。

创客带师第四弹自制温湿度计(翻车)

事实上,这段代码的注释说不推荐使用AVR单片机。

如果此时您使用的是14包邮UNO或者D1 D1MINI,还需要CH340 CH341的驱动。 只需使用我们上次在 Akalina 中进行 CPU 温度显示项目时使用的驱动程序即可。

创客带师第四弹自制温湿度计(翻车)

安装驱动并查看开发板信息。

创客带师第四弹自制温湿度计(翻车)

如果有响应,则说明驱动安装成功。

然后在文件-首选项附加开发版本URL管理中添加开发板URL如图

创客带师第四弹自制温湿度计(翻车)

然后开发板的选项中有UNO WIFI。

我们常说的D1的全称其实是WeMos D1。 D1 UNO 版本有 ARDUINO 兼容版本和 MINI 版本。 事实上,需要注意的一点是,它没有完整的模拟输入,这与基于AVR单片机的UNO不同。

创客带师第四弹自制温湿度计(翻车)

该职位为空

创客带师第四弹自制温湿度计(翻车)

这是从 UNO 到 D1 的映射。 有些地方直接修改代码就可以实现。

创客带师第四弹自制温湿度计(翻车)

然后需要下载一个压缩包

创客带师第四弹自制温湿度计(翻车)

解压到C:UsersAdministratorAppDataLocalArduino15stagingpackages

管理员是用户名。 如果您没有管理员权限,那么这里填写的是您的实际用户名。

或者在开发板管理器中搜索8266,找到需要的支持文件。

创客带师第四弹自制温湿度计(翻车)

个人感觉ARDUINO比挂PANDOWNLOAD要快。

创客带师第四弹自制温湿度计(翻车)

那里还在下雨。 就在这里完成了。

创客带师第四弹自制温湿度计(翻车)

使用哪一侧更快?

正如我之前读过的书所说,钱流向哪里,人民就流向哪里。

创客带师第四弹自制温湿度计(翻车)

现在开发板多了

再次尝试编译

嗯嗯

上面这行代码的意思是输入WIFI SSID和密码

至于下面的内容,有问题的删掉即可。

无法从常量类型 char* 转换为变量类型 char*

然后将 const char 替换为 char

Arduino语法详解

给开发板WeMos D1 R1编译的时候没问题。 没关系。 我吓坏了,就看了一下官网的这个信息,发现别人也在用这个解决方案:

创客带师第四弹自制温湿度计(翻车)

? ? ? ? ?

忘掉它

现在我们已经有了一块现成的8266开发板。 由于现成数据的问题,不可能改变目前的计划,用面包板搭建一个简单的8266电路。 虽然上面说的东西我都有了,但是还是扔掉吧。 所有开发均使用现成的开发板。 没有人自己构建这种电路。 说实话,只有实验室的大佬们玩51单片机的时候才用过这种东西。 我从来没有见过有人自己搭建ARDUINO。 这种情况下,您还是需要自己接线USB转串口模块。

/* DHT Pro Shield – 简单

* 各种 DHT 湿度/温度传感器的测试草图示例

* 由 ladyada 撰写,公共领域

* 取决于 Adafruit DHT Arduino 库

*adafruit/DHT 传感器库

*/

#include“DHT.h”

#define DHTPIN D4//我们连接到哪个引脚

// 取消注释您正在使用的任何类型!

#define DHTTYPE DHT11 // DHT 11

//#define DHTTYPE DHT22 // DHT 22 (AM2302)

//#define DHTTYPE DHT21 // DHT 21 (AM2301)

// 将传感器的引脚 1(左侧)连接至 +5V

// 注意:如果使用具有 3.3V 逻辑的板(例如 Arduino Due),则连接引脚 1

// 改为 3.3V,而不是 5V!

// 将传感器的引脚 2 连接到您的 DHTPIN

// 将传感器的引脚 4(右侧)接地

// 从传感器的引脚 2(数据)到引脚 1(电源)连接一个 10K 电阻

//初始化DHT传感器。

// 请注意,该库的旧版本采用了可选的第三个参数

// 调整更快处理器的时序。 不再需要此参数

// 当前的 DHT 读取算法会自我调整以适应更快的过程。

DHT dht(DHTPIN, DHTTYPE);

无效设置(){

串行.开始(9600);

Serial.println("DHTxx 测试!");

dht.begin();

无效循环(){

// 在测量之间等待几秒钟。

延迟(2000);

// 读取温度或湿度大约需要250毫秒!

// 传感器读数也可能长达 2 秒“旧”(这是一个非常慢的传感器)

浮动 h = dht.readHumidity();

// 以摄氏度读取温度(默认)

浮动t = dht.readTemperature();

// 将温度读取为华氏度 (isFahrenheit = true)

浮动 f = dht.readTemperature(true);

// 检查是否有任何读取失败并提前退出(重试)。

if (isnan(h) || isnan(t) || isnan(f)) {

Serial.println("从 DHT 传感器读取失败!");

返回;

// 计算华氏度热指数(默认值)

浮动 hif = puteHeatIndex(f, h);

// 计算摄氏温度指数 (isFahreheit = false)

浮动 hic = puteHeatIndex(t, h, false);

Serial.print("湿度:");

串行打印(h);

串行打印(“%t”);

Serial.print("温度:");

串行打印(t);

串行打印(“*C”);

串行打印(f);

Serial.print(" *Ft");

Serial.print("热度指数:");

串行打印(hic);

串行打印(“*C”);

串口.print(hif);

Serial.println(" *F");

这串代码比较简单。 使用D1开发板读取DHT温湿度模块的数据,然后直接通过串口输出。 这样一来,还是和上期的超声波模块一样。 您可以使用串口监视器来读取它。 没有WIFI,没有物联网,但简单可靠。

创客带师第四弹自制温湿度计(翻车)

这里我发现我的模块好像爆炸了,快递也停了。 就算想买也没法发货,所以就直接进入下一章了。

PS:DHT22好贵啊……15元一个模块和开发板一样好。 精度确实更高,湿度2%,温度±0.5℃。 不过这个价格和精度,确实比不上价格更高的小米套装。 某物。

我还是觉得WIFI比蓝牙好。 毕竟,现在如果没有必要,谁会打开手机上的蓝牙呢? 小米的温湿度计之所以使用蓝牙,是因为需要省电。 毕竟连屏幕都采用了电子墨水屏。 两个CR2032+蓝牙5.0可以使用半年。 现在WIFI其实比蓝牙好用多了,可惜功耗低。 物联网中从来没有像蓝牙这样便宜的解决方案,所以小米的套装使用了蓝牙而不是WIFI。 相比之下,小米的台灯是ESP8266模块的经典应用方案,是非常常见的应用,成本不到10元。 该模块从事物联网解决方案。

ESP8266的性能不错。 它也是一个32位MCU并且有WIFI。 相对来说,它比蓝牙使用起来方便很多。 也许下一期我们真的可以利用这个模块的WIFI功能来搞物联网呢?

单片机

MSP430系列单片机实用C语言程序设计随书光盘立即下载

2024-5-12 1:03:47

单片机

家乡,你让我觉得陌生了!新乡农业大摸底

2024-5-12 2:02:08

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索