前言
学习之余,太无聊了,在这个生机盎然的季节,我决定做点创造生命的事情。
一、准备过程
1.硬件部分
🥚Arduino Uno R1
这里选择相对简单的Arduino Uno R3 作为控制板,当然, Arduino有各式各样的开发板,各位可以看看这篇文章。
🥚1602 LCD
是一种字符型的液晶显示模块,显示容量为16*2个字节,有背光灯, LiquidCrystal库是Arduino IDE自带的。官网这里有详细的1602LCD介绍以及Arduino应用例子。
![](https://img.haomeiwen.com/i7963331/225be5a036eab4be.png)
🥚 DHT22温湿度模块
准确性还不错的一款温湿度传感。器(比DHT11简直不要好太多)
![](https://img.haomeiwen.com/i7963331/c00681bcbe03ab80.jpg)
🥚USB 5V风扇
淘宝上9R一个,建议买带防夹网的,因为小鹌鹑长大会飞,避免绞肉机的出现。
🥚 USB雾化器
淘宝15R一个,建议多备一个。
🥚继电器 5V低电平触发
即是在接收到低电平信号时,继电器接通。
![](https://img.haomeiwen.com/i7963331/6e785cd2fa359036.jpg)
🥚220V 25W供暖灯泡+灯头
接线请注意,避免短路。
🥚面包板
🥚USB供电线
🥚杜邦线若干
2.软件部分
🥚Arduino IDE v1.8.12
基于c++的代码,小白用起来其实也不太难,有相关语言基础的同学上手不难。
二、制作步骤
1.准备步骤
准备好你的Arduino Uno R3,以及在电脑中下载好Arduino IDE也即是Arduino的集成开发环境(IDE,Integrated Development Environment )
2.·下载DHT22的库
什么是库,怎么样安装库请参考官网,这里不再赘述推荐的DHT22库是这个 下载压缩文件 按照上面官网教程添加入Arduino中即可,(尝试过几个DHT22的库,这个的使用体验不错)
3.代码如下
*名称:孵蛋器E1
*功能:温湿度显示+控制
*作者:Szeto
*时间:2020.3.24
*/
#include <LiquidCrystal.h> //导入1602LCD的库
#include "DHT.h" //导入DHT22的库
#define DHTPIN 2 //定义温湿度传感器DHT22的信号引脚连接
#define DHTTYPE DHT22
LiquidCrystal myLcd(12,11,10,9,8,7,6); //声明一个1602 LCD对象
DHT dht(DHTPIN, DHTTYPE); //声明一个DHT22对象
int outfan = 3; //初始化风扇继电器模块
int outhumiditymachine = 4; //初始化加湿器继电器模块
int temp = 0; //初始化温度变量
int humi = 0; //初始化湿度变量
void setup(){
myLcd.begin(16,2); //显示器分为2行,每行有16个字符
pinMode(outfan,OUTPUT); //声明继电器引脚的作用
pinMode(outhumiditymachine,OUTPUT); //声明加湿器继电器引脚的作用
dht.begin(); //启动温湿度计
}
void loop(){
float humi = dht.readHumidity(); //声明湿度值humi为一个浮点数
float temp = dht.readTemperature(); //声明温度值temp为一个浮点数
myLcd.setCursor(0, 0); //将1602 LCD光标移动到第一行第一列
myLcd.print(String("Temp: ") + String(String(temp) + String(" C"))); //显示温度
myLcd.setCursor(0, 1); //将1602 LCD光标移动到第二行第一列
myLcd.print(String("Humi: ") + String(String(humi) + String(" %"))); //显示湿度
delay(1000); //延迟1秒钟,即每秒钟更新一次
digitalWrite(outfan,HIGH); //关闭外循环风扇
digitalWrite(outhumiditymachine,HIGH); //关闭加湿器
if(temp>=36.50){ //如果温度大于某一个值
digitalWrite(outfan,LOW); //开启外循环风扇
delay(4000); //延迟一段时间
}
if(humi<58.00){ //如果湿度小于某一个值
digitalWrite(outhumiditymachine,LOW); //开启雾化器
delay(4000); //延迟一段时间
4.硬件部分接线原理图如下
![](https://img.haomeiwen.com/i7963331/e841e87be496d974.jpg)
值得注意的是,Arduino Uno R3的输出电压有限,所以雾化器、内循环风扇应选择独立5VUSB供电,而两个继电器的5V触发供电可用统一5V1A电源供电。
5.系统组装
![](https://img.haomeiwen.com/i7963331/137954438711a70d.jpg)
主要的固定方式为双面胶,内循环风扇使用铁丝栓紧
三、总结部分
·基于Arduino Uno R3的孵化器在DHT22的帮助下可以对孵化器里面的温湿度进行实时的测量,利用USB雾化器可以保持孵化器里的相对湿度:常亮的220V、25W灯泡可以满足这个尺寸孵化器的供暖需求:外循环风扇可以在温度较高的时候往孵化器内输送低温空气,维持温度:内循环风扇可以保证孵化器内温度、湿度的均一性。经过一次孵化过程,证明该方案可行。
六日龄的小鹌鹑
![](https://img.haomeiwen.com/i7963331/be75bb6db7bfb053.jpg)
四、未来版本迭代方向
1.24小时视频监控。这是好友眯杰给与的建议,在实际应用中,泡沫箱保温性能好,但是仅限于不掀开盖子的情况下。在后期饲养孵化出来的小鹌鹑的时候,用视频监控的方式取缔‘掀盖查看’的方式可以保证育雏箱内温度相对恒定。由于Arduino Uno R3 先天不足,内存不够,FIFO可已将摄像头拍摄的数据暂时存在FIFO里,然后我们的Arduino UNO再慢慢的将拍摄的数据读出来,通过串口发送到串口上位机显示,实现视频监控。
2.将孵化器联网,通过手机实时接收孵化器的温湿度数据。目前初步的想法是将Arduino Uno R3 通过ESP8266 WiFi模块接入机智云,通过机智云平台开发手机APP,实现温湿度数据的实时获取。
网友评论