ARDUINO从入门到创客带师第四弹 自制温湿度计(翻车)

咱想起以前实验室的墙上挂着的介绍说过法拉第之所谓伟大的原因是他不止把成功的经历写在科学日记里,也把翻车失败的经历写进去,因此咱对于咱翻车的经历也毫不避讳

其实关于这个我们自己有自己的方法:失传技术研究所小讲堂 篇七十三:在自家建立小型气象站 在自家建立小型气象站(后续) 小米米家电子墨水屏温湿度计PRO测评 这些方案的精度都比我们这次要做的成本要低,我们这次的唯一的优势是自己手搓的成本很低

通过本篇教程,我们开始迈向自制自动气象站的第一步

上期:ARDUINO从入门到创客带师第三弹:用单片机开发板自制MIDI音乐盒(预算15)

本期依然是利用ARDUINO单片机开发板自己做系列,这次咱要用到的有:

ARDUINO 开发板,如果仅仅是想要读取传感器模块的信息可以是14包邮的基于AVR 8位单片机的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号引脚,那应该就是我们这次的温度传感器模块需要连接的引脚了

接好线之后我们慢慢盘代码里面可能出BUG的地方

首先这个代码提到了一个叫DHT.h的东西,简单通过搜索找出来放到库里

关于ESP8266WiFi.h 报错的问题可以先通过加载库顶一下

其实这个代码的注释说了,不建议用基于AVR单片机的

如果这时候你用的是14包邮的UNO或者D1 D1MINI的话你还需要CH340 CH341的驱动,用上次我们在阿卡林那做CPU温度显示项目时候的驱动就行

装好驱动检测开发板信息试试

如果有返回就说明驱动安装成功了

然后在 文件 —— 首选项 附加开发版网址管理 添加 开发板网址如图

然后开发板的选项里面就有UNO WIFI了

我们常说的D1其实全名是WeMos D1,有ARDUINO兼容版和MINI版 D1 UNO版其实有个地方需要注意就是它没有完整的模拟输入,相比基于AVR单片机的UNO之类的不太一样。

这个位置是空脚

这是UNO到D1的映射,有些地方可以直接通过修改代码实现

然后还需要下载一个压缩包

解压到C:\Users\Administrator\AppData\Local\Arduino15\staging\packages

其中Administrator是用户名,如果你没有管理员权限那这个地方填的就是你实际用户名

或者在开发板管理器搜索8266就能找到要的支持文件了

个人觉得相比挂PANDOWNLOAD好像还是ARDUINO更快

上边还下着呢这边完事了

哪边快用哪个

就像之前看的那个本子说的,哪边钱多去哪边,人嘛,就是这么回事。

这下开发板可多了

再编译试试

emmmmm

上面那行代码的意思是让你输WIFI SSID和密码

至于下面嘛,哪里不对删哪里就行了

不能从常量型的char*转换成变量型的char*

那就把const char换成char

为开发板 WeMos D1 R1 编译时出错可还行,吓得我上这个资料的官网看了一眼,结果发现人家用的是这种方案:

?????

那就算了

咱现在手上有现成的8266开发板,不可能为了现成的资料的问题改掉现在的方案去拿面包板组什么简易8266电路,虽然我有这上面说的所有东西,但是拉倒吧,现在的开发都是用现成的开发板,没人用自己搭这种电路了,说实在的这种东西也就看实验室的大佬以前玩51单片机的时候用过,咱自己搞ARDUINO还真没见过这种情况还需要自己弄USB转串口模块接线的。

/* DHT Pro Shield - Simple

*

* Example testing sketch for various DHT humidity/temperature sensors

* Written by ladyada, public domain

*

* Depends on Adafruit DHT Arduino library

*/

#include "DHT.h"

#define DHTPIN D4 // what pin we're connected to

// Uncomment whatever type you're using!

#define DHTTYPE DHT11 // DHT 11

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

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

// Connect pin 1 (on the left) of the sensor to +5V

// NOTE: If using a board with 3.3V logic like an Arduino Due connect pin 1

// to 3.3V instead of 5V!

// Connect pin 2 of the sensor to whatever your DHTPIN is

// Connect pin 4 (on the right) of the sensor to GROUND

// Connect a 10K resistor from pin 2 (data) to pin 1 (power) of the sensor

// Initialize DHT sensor.

// Note that older versions of this library took an optional third parameter to

// tweak the timings for faster processors. This parameter is no longer needed

// as the current DHT reading algorithm adjusts itself to work on faster procs.

DHT dht(DHTPIN, DHTTYPE);

void setup() {

Serial.begin(9600);

Serial.println("DHTxx test!");

dht.begin();

}

void loop() {

// Wait a few seconds between measurements.

delay(2000);

// Reading temperature or humidity takes about 250 milliseconds!

// Sensor readings may also be up to 2 seconds 'old' (its a very slow sensor)

float h = dht.readHumidity();

// Read temperature as Celsius (the default)

float t = dht.readTemperature();

// Read temperature as Fahrenheit (isFahrenheit = true)

float f = dht.readTemperature(true);

// Check if any reads failed and exit early (to try again).

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

Serial.println("Failed to read from DHT sensor!");

return;

}

// Compute heat index in Fahrenheit (the default)

float hif = dht.computeHeatIndex(f, h);

// Compute heat index in Celsius (isFahreheit = false)

float hic = dht.computeHeatIndex(t, h, false);

Serial.print("Humidity: ");

Serial.print(h);

Serial.print(" %\t");

Serial.print("Temperature: ");

Serial.print(t);

Serial.print(" *C ");

Serial.print(f);

Serial.print(" *F\t");

Serial.print("Heat index: ");

Serial.print(hic);

Serial.print(" *C ");

Serial.print(hif);

Serial.println(" *F");

}

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

这里我发现自己的模块好像是炸了,快递已经停运就是想买也发不了货所以直接上下一章了。

PS:DHT22好贵啊……15块钱一个模块赶上开发板了,精度嘛确实高了些,湿度2%,温度±0.5℃,但是这个价格这个精度还真就不如加钱上小米那套东西了。

我还是觉得WIFI比蓝牙好,毕竟这年头如果不是必要,谁没事手机开蓝牙呢?小米的温湿度计用蓝牙是因为它需要省电,毕竟连屏幕都用电子墨水屏了,两节CR2032+蓝牙5.0都可以苟半年,WIFI现在说实在的比蓝牙好用多了,可惜低功耗IOT方面一直没有蓝牙那种便宜的解决方案,所以小米那套才会用蓝牙而不是WIFI吧,相比之下小米的台灯就是ESP8266模块的经典应用方案,是非常常见的利用成本不到10元的模块搞物联网的方案。

ESP8266的性能不错,好歹也是32位MCU,还带WIFI,相对来说真的比蓝牙好用多了,也许下期我们可以真的利用这个模块的WIFI功能搞搞物联网?

arduino温湿度计库文件_用ARDUINO开发板自制温湿度计(含WEMOS D1开发板环境安装)...相关推荐

  1. arduino下载库出错_【arduino】DIY音乐播放器,arduino播放wav音乐,TRMpcm库测试及使用...

    微信关注 "DLGG创客DIY"设为"星标",重磅干货,第一时间送达. arduino特点库超多,想必大家都领教了,今天来分享一下之前玩过的TRMpcm库. 这 ...

  2. arduino温湿度计库文件_手把手教你DIY最便宜的 arduino 温湿度计,详细图文视频教程...

    原标题:手把手教你DIY最便宜的 arduino 温湿度计,详细图文视频教程 冬天人们经常关注家里的温湿度,南方没有暖气更关注温度,北方因为天气干燥,有暖气,所以更关注湿度.下边介绍一个非常简单,并且 ...

  3. Arduino IDE环境下WeMos D1开发板引脚定义和映射

    Arduino IDE环境下WeMos D1开发板引脚定义和映射

  4. arduino 土壤温湿度传感器_嫌arduino太贵?太大?试试ATTINY85!DIY温湿度计入门级教程...

    ATTINY85做主控,OLED显示的温湿度计. 简介: 通过Arduino开发环境,对ATTINY85进行编程,利用DH11温湿度传感器,在SSD1306(128*64)OLED显示屏上显示温度和湿 ...

  5. vscode里面如何配置库_怎么为vscode添加库文件_编程开发工具

    vscode怎么运行出结果_编程开发工具 vscode运行出结果的方法:首先打开vscode软件:然后在vscode插件中搜索"Code Runner"进行安装:接着用鼠标进行右键 ...

  6. arduino 嗡鸣器 音乐_【arduino】继续蜂鸣器音乐播放,arduinoIDE里调用音乐播放库...

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 昨天简单的介绍了一下蜂鸣器硬件和米思齐上如何演奏音乐(一种非常简单的用arduino控 ...

  7. arduino小车前进代码_基于Arduino操纵杆扩展板Funduino制作机器人小车

    在本篇文章中,我们将制作一款两轮遥控机器人小车,使用的组件包含nRF24L01模块.Arduino UNO和Funduino操纵杆扩展板组成的控制部分,Arduino nano开发板以及和一个用于控制 ...

  8. automake生成静态库文件_动手 | 奶奶级的动态库入门

    程序编译过程 库文件 静态链接和动态链接的区别? 从0开始 - 创建和使用静态链接库 创建静态库项目 向静态库中添加文件 编译静态库 创建引用静态库的C++控制台应用 在应用中使用静态库功能 从0开始 ...

  9. automake生成静态库文件_基于CocoaPods的组件化原理及私有库实践

    轮子为什么会存在 智人能在残酷的进化大战中存活下来,原因之一就是智人懂得将知识沉淀成外物,辅助彼此之间的合作,从而使得整个群体产生了规模效应,即1+1>2的效果. 从一个角度上说,石器时代是基于 ...

最新文章

  1. 敏捷团队如何通过Leangoo领歌做迭代管理、迭代规划及任务协同
  2. Linux下root密码忘记的解决办法
  3. Smart Form中打印图标或符号
  4. 最强的Attention函数诞生啦,带给你意想不到的巨大提升!
  5. 基于神经网络模型的文本语义通顺度计算研究-全文复现(还没弄完)
  6. frameset 后台管理_易达CMS下载-易达CMS(免费开源网站管理系统)v3.0.0.1103免费版
  7. GDB 调试程序 详解 使用实例
  8. 初始化中断按键(2440)
  9. .NET Core部署到linux(CentOS)最全解决方案,进阶篇(Supervisor+Nginx)
  10. css权威指南学习笔记
  11. 使用commons-lang3实现Unicode码转中文
  12. 域名防红直连防封怎么布置?
  13. PADS(10)——添加过孔技巧
  14. 【P5850】calc 加强版(生成函数)(多项式)
  15. 强制打印方法,输出重定向解决
  16. Linux磁盘分区(fdisk)及磁盘限额(quota)
  17. scala类的介绍与操作02
  18. 如何实现Odoo兼容Citus实现更多数据储存
  19. 浅析企业网络准入控制系统的部署方式
  20. labview学习笔记--3D模型(3)

热门文章

  1. win7打不开计算机网络连接,win7打不开本地连接一直转圈的解决方法
  2. 产业高地、价值洼地,雨花一流营商环境是如何炼成的?
  3. Linux面试指令---nl指令
  4. Revit-常见问题汇总
  5. VMware虚拟机Host-Only(仅主机模式)
  6. 从Python小白到第一个小游戏发布
  7. 金蝶Apusic应用服务器
  8. 数字IC前端笔试常见大题整理(简答+手撕)
  9. Oracle同步数据到MySQL
  10. 如何使同组 pod 被分配到不同节点上