arduino
arduino-微型智慧农业项目一、项目介绍通过各种传感器,实时监测植物的生长环境,通过arduino网络拓展板连接网线,把传感器监测到的数据实时发送到乐维网(物联网平台),在PC端或是手机端可以实时监测数据。当温度过大时,会开启风扇模块,给植物降温,当土壤湿度过低时,会开启继电器开关,进而打开水泵,自动抽水来灌溉植物。
二、仪器介绍序号仪器1arduinoUno板2arduino网络扩展板3温湿度传感器4土壤传感器5光敏传感器6继电器7微型水泵8电池盒9硅胶软管10杜邦线若干11面包板三、仪器连接光敏传感器:
VCC接arduino的3.3或5V
GND接arduino的GND
DO接arduino的Digital5
AO接arduino的Analog0
风扇:
VCC接arduino的3.3或5VGND接arduino的GNDINA接arduino的Digital9INB接arduino的Digital8土壤湿度传感器:
VCC接arduino的3.3或5VGND接arduino的GNDDO接arduino的Digital4AO接arduino的Analog2继电器:
VCC接arduino的3.3或5VGND接arduino的GNDIN接arduino的Digital7温湿度传感器:
+接arduino的3.3或5V-接arduino的GNDS接arduino的Digital6注:各个模块用到的数字接口或模拟接口,并不是唯一固定,只要不重复且和要上传到arduino板上的代码中定义的引脚能一一对应即可。
四、核心功能介绍——水泵+继电器模块继电器工作原理:
信号输入端有信号时(继电器开),公共端与常开端会导通,水泵正常工作;
信号输入端无信号时(继电器关),公共端与常开端会断开,水泵不工作;
五、数据上传到乐联网(物联网平台)step1:在乐联网上注册一个账号,用来接收、统计传感器数据
step2:获取有关乐联网相关的arduino代码
乐联网的相关Arduino代码托管在Github上,地址https://github.com/lewei50/leweiclient,打开链接,点击Zip下载按钮,将名称为master.zip的文件下载到本地。
下载后解压,打开你电脑里的ArduinoIDE所在文件夹里的libraries文件夹,在里面新建一个leweiclient的文件夹,将master压缩包解压缩后LeweiClient-master文件夹里的文件全部拷贝到这个文件夹里。
打开示例代码step3:修改userkey
Userkey代表每个账号的的唯一标识,arduino联上网之后可以通过Userkey正确的找到你的账户,并上传数据。step3:添加新设备并修改设备标识号
添加新设备后,请记住你的设备号标识step4:添加传感器,并修改传感器标识step5:实时监测传感器数据
六、代码及注释//需要自己手动导入LeweiClient库和DHT库#include#include#include#include"DHT.h"//温湿度传感器引脚及类型#defineDHTPIN6//连接温湿度传感器的数字引脚接口#defineDHTTYPEDHT11//定义温湿度传感器类型DHT11DHTdht(DHTPIN,DHTTYPE);//定义检测温湿度的对象,同时传入接口和类型的的参数//光敏传感器引脚#defineLLU_PIN_A0#defineLLU_PIN_D5//土壤湿度传感器引脚#defineSOIL_PIN_AO2#defineSOIL_PIN_DO4//风扇引脚intFAN_INA=9;intFAN_INB=8;//继电器引脚intjidianqi=7;//乐维物联#defineLW_USERKEY"09b46be890ee4ffbbac6ff4f3cd70841"//乐维网账号的userKey#defineLW_GATEWAY"02"//设备标识号(根据自己所定义的的设备标识号而改变)LeWeiClient*lwc;//上传到乐维网所需到的LeWeiClient对象//数据上传的的时间间隔1秒#definePOST_INTERVAL1000voidsetup(){//初始化对象和引脚pinMode(SOIL_PIN_AO,INPUT);pinMode(SOIL_PIN_DO,INPUT);pinMode(FAN_INA,OUTPUT);pinMode(FAN_INB,OUTPUT);pinMode(jidianqi,OUTPUT);Serial.begin(9600);Serial.println(F("DHT11test!"));dht.begin();//打开温湿度传感器lwc=newLeWeiClient(LW_USERKEY,LW_GATEWAY);}voidloop(){if(lwc){Serial.println("readdata");//读取空气中的湿度值floath=dht.readHumidity();//读取空气中的温度值floatt=dht.readTemperature();//将空气中的温湿度值上传到到乐维网上定义好的tem传感器和hum传感器上lwc->append("tem",t);lwc->append("hum",h);//温度大于29度则开启小风扇if(t>29){digitalWrite(FAN_INA,LOW);digitalWrite(FAN_INB,HIGH);}else{digitalWrite(FAN_INA,LOW);digitalWrite(FAN_INB,LOW);}//光敏传感器intval;val=analogRead(LLU_PIN_A);Serial.print("a:");Serial.print(val);lwc->append("light",val);//上传光照强度数值到乐维网上Serial.print(",d:");val=digitalRead(LLU_PIN_D);Serial.println(val);//土壤湿度传感器Serial.print("AO=");Serial.print(analogRead(SOIL_PIN_AO));Serial.print(",DO=");Serial.println(digitalRead(SOIL_PIN_DO));lwc->append("soilHum",analogRead(SOIL_PIN_AO));//当测量的湿度值大于500单位时,开启继电器,否则关掉。if(analogRead(SOIL_PIN_AO)>500){digitalWrite(jidianqi,LOW);//继电器开}else{digitalWrite(jidianqi,HIGH);//继电器关//delay(2000);}lwc->send();//发送所有的传感器的数据到乐维网上Serial.println("***sendcompleted***");//delay(POST_INTERVAL);}}七、资源和文件链接:https://pan.baidu.com/s/179Pp0LJ8bk7EdwnQxLOO_Q提取码:gjkv