时间函数
delay(ms) 延时函数(单位ms)。
delayMicroseconds(us) 延时函数(单位 us)。
数学函数
min(x,y) 求最小值
max(x,y) 求最大值
abs(x) 计算绝对值
map(value,fromLow,fromHigh,toLow,toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间[6]。
pow(base,exponent) 开方函数,base的exponent次方。
sq(x) 平方 文献综述
sqrt(x) 开根号
4。 总体设计方案
4。1 设计思路
首先就是设备硬件的搭建。然后就是根据硬件来编写它们所需要的程序。
本系统所包含的主要模块有:Arduino pro mini开发板,温度检测与控制模块,湿度检测与控制模块,光强度检测,LCD1602显示模块和电磁阀浇水模块。
4。1。1Arduino pro mini开发板
在应用arduino在自动浇花的场合中, 我们并不需要Arduino UNO 这种功能“太全”的板子,体积太大不说,成本也高,所以选用arduino pro mini,它功能很足,成本低,可以直接永久固定用于某些东西上。对于用惯arduino自带串口转USB板子的同学, arduino pro mini是不带串口转USB的。这时候,我们需要自己买一个USB转串口来实现arduino pro mini 和电脑之间的通讯。
4。1。2系统程序的功能定义
通过光强度传感器对外部环境的检测,当到适合花草生长浇水的温度时,通过土壤湿度传感器对花草土壤的检测实时数值的反馈来判断此时花草是否缺少水分,从而来决定浇水模块是否启动。环境的温度和土壤的湿度实时的在LCD1602显示模块显示出来。
4。1。3系统程序设计的根据
让控制器定时循环采集每一个湿度传感器实时数据和自己所设定的阀值比较,如果其中某个传感器低于我们所设定初值,那么就控制电磁阀打开对其所缺水的花草进行浇水灌溉。
程序代码:
引脚定义:
#define RELAY1 9 //继电器1,当系统处在节能模式时控制其他模块的电源
#define RELAY2 10 //继电器2,控制电磁水阀
#define DHT11_PIN 2 //温湿度检测模块
#define SOIL_HUMIDITY_PIN A1 //土壤湿度检测模块
用户自定义设置:来自~优尔、论文|网www.youerw.com +QQ752018766-
#define CHECK_INTERVAL 9600 //检查土壤湿度间隔的秒数(每3小时检测一次)
#define MAX_SOIL_HUMIDITY 600 //初始土壤的湿度阈值(可根据实际花草情况进行修改,大于这个值就会浇水)
#define WATER_TIME 5 //单次浇水的秒数(控制每次的浇水量,可根据实际情况修改)
#define IS_MINIMUN_POWER false //是否开启节能模式。用于太阳能电池供电的情况