美文网首页
利用Arduino Uno R3制作一个简单的孵蛋器

利用Arduino Uno R3制作一个简单的孵蛋器

作者: 司徒同学 | 来源:发表于2020-04-27 22:33 被阅读0次

前言

学习之余,太无聊了,在这个生机盎然的季节,我决定做点创造生命的事情。


一、准备过程

1.硬件部分

🥚Arduino Uno R1
  这里选择相对简单的Arduino Uno R3 作为控制板,当然, Arduino有各式各样的开发板,各位可以看看这篇文章。

🥚1602 LCD
 是一种字符型的液晶显示模块,显示容量为16*2个字节,有背光灯, LiquidCrystal库是Arduino IDE自带的。官网这里有详细的1602LCD介绍以及Arduino应用例子。

1602LCD引脚说明图.png

🥚 DHT22温湿度模块
 准确性还不错的一款温湿度传感。器(比DHT11简直不要好太多)


DHT22引脚说明图.jpg

🥚USB 5V风扇
  淘宝上9R一个,建议买带防夹网的,因为小鹌鹑长大会飞,避免绞肉机的出现。

🥚 USB雾化器
  淘宝15R一个,建议多备一个。

🥚继电器 5V低电平触发
 即是在接收到低电平信号时,继电器接通。


5V低电平触发继电器.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.硬件部分接线原理图如下


整个系统接线原理图.jpg

  值得注意的是,Arduino Uno R3的输出电压有限,所以雾化器、内循环风扇应选择独立5VUSB供电,而两个继电器的5V触发供电可用统一5V1A电源供电。

5.系统组装

 我在这里选择的是一个50x40x30cm 厚度为5cm的泡沫保温箱作为孵化箱,组装效果如下图所示 孵化器图片.jpg
 主要的固定方式为双面胶,内循环风扇使用铁丝栓紧

三、总结部分

 ·基于Arduino Uno R3的孵化器在DHT22的帮助下可以对孵化器里面的温湿度进行实时的测量,利用USB雾化器可以保持孵化器里的相对湿度:常亮的220V、25W灯泡可以满足这个尺寸孵化器的供暖需求:外循环风扇可以在温度较高的时候往孵化器内输送低温空气,维持温度:内循环风扇可以保证孵化器内温度、湿度的均一性。经过一次孵化过程,证明该方案可行。
 六日龄的小鹌鹑


小鹌鹑照片.jpg

四、未来版本迭代方向

 1.24小时视频监控。这是好友眯杰给与的建议,在实际应用中,泡沫箱保温性能好,但是仅限于不掀开盖子的情况下。在后期饲养孵化出来的小鹌鹑的时候,用视频监控的方式取缔‘掀盖查看’的方式可以保证育雏箱内温度相对恒定。由于Arduino Uno R3 先天不足,内存不够,FIFO可已将摄像头拍摄的数据暂时存在FIFO里,然后我们的Arduino UNO再慢慢的将拍摄的数据读出来,通过串口发送到串口上位机显示,实现视频监控。
 2.将孵化器联网,通过手机实时接收孵化器的温湿度数据。目前初步的想法是将Arduino Uno R3 通过ESP8266 WiFi模块接入机智云,通过机智云平台开发手机APP,实现温湿度数据的实时获取。

相关文章

网友评论

      本文标题:利用Arduino Uno R3制作一个简单的孵蛋器

      本文链接:https://www.haomeiwen.com/subject/bsppwhtx.html