功能介紹:此設(shè)備用于采集土壤濕度、空氣干濕度、氣溫、光照強度,通過SD卡存儲所采集的數(shù)據(jù),可將數(shù)據(jù)輸入excel、matlab進行數(shù)據(jù)分析,從而尋找最利于作物生長的生長環(huán)境。
后期計劃增加K離子傳感器、采用yeelink將數(shù)據(jù)采集至平臺形成實時監(jiān)控。
原件清單(某寶上全有):
1.arduino uno增強版(就是引腳旁邊可以自己焊接上排針的那種)*1,19.9元
2.dht11溫濕度傳感器(也可買精度更高的dht22)*1,8.8元
3.GY-30光照傳感器*1,9.9元
4.LCD1602屏幕*1,8.8元
5.10uF電容*1
6.100歐電阻*1
7.電位器*1,1元
8.SD卡模塊*1,4.9
9.公母線、杜邦線*圖片上那么多,5元吧
10.面包板*1,5.9
總價:64.2元
接線圖!
說明書:
一、總體概述
裝置分為6個部分,空氣濕度、空氣溫度、土壤濕度、光照強度、SD卡,LCD屏。
二、溫濕度檢測模塊
使用DHT11,相關(guān)參數(shù)如下:
由于添加了濾波電路,精度應(yīng)該會有所提高。
三、土壤濕度傳感器
未接觸測量之前的顯示應(yīng)該為1022或者1023,這個值代表的是工作正常,將傳感器插入土壤中即可使用,數(shù)字會變小。
需要特別注意的是傳感器的DO口不接線。
四、光照傳感器
光照傳感器的讀數(shù)在接電后前三秒是0,這是串口的初始化,三秒后可正常工作。傳感器已標定,顯示的數(shù)值代表國際單位制的光照強度流明(LX),其物理意義是:LX,照度的國際單位(SI),又稱米燭光。1流明的光通量均勻分布在1平方米面積上的照度,就是一勒克斯。可以標作勒[克斯],簡稱勒。英為lux,簡作lx 。
需要注意的是光照強度傳感器的采集器是在外端黑色六引腳的貼片上,正常使用時,貼片不可被遮擋。
五、LCD屏
LCD屏幕加上了變阻器來控制屏幕的亮度,如果顯示數(shù)字不清楚,可以通過調(diào)節(jié)變阻器來調(diào)節(jié)電壓使其顯示更清楚:
LCD屏幕顯示的數(shù)據(jù)如下:
下面對數(shù)值進行說明:
SH(soil humidity,土壤濕度)
TEMP(temperature,溫度),單位攝氏度
LX(illumination intensity,光照強度),這里直接用單位命名了。
AH(air humidity,空氣濕度)
六、SD卡模塊
SD卡模塊目前還沒有寫代碼,后期通過SD卡采集的數(shù)據(jù)可以導入excel進行處理。
接下來要做的事:
標定各個傳感器
加入事件模塊
編寫SD卡代碼
加入休眠功能,20分鐘采集一次數(shù)據(jù),6個小時存儲一次數(shù)據(jù)
加入yeelink
將監(jiān)測站進行封裝
上代碼(語言processing,平臺IDE):
#include 《LiquidCrystal.h》
#include 《Wire.h》
int ASignal = A0;
LiquidCrystal lcd(12,11,5,4,3,2);
#include 《dht11.h》
dht11 DHT11;
#define DHT11PIN 7
#define ADDR 0b0100011
void setup()
{
pinMode(ASignal, INPUT);
Serial.begin(9600);
lcd.begin(16,2);
Wire.begin();
pinMode(13, OUTPUT);
Wire.beginTransmission(ADDR);
Wire.write(0b00000001);
Wire.endTransmission();
}
Serial.println(“ ”);
int chk = DHT11.read(DHT11PIN);
Serial.print(“read sensor”);
switch(chk)
{
case DHTLIB_OK:
Serial.println(“OK”);
break;
case DHTLIB_ERROR_CHECKSUM:
Serial.println(“Checksum error”);
break;
case DHTLIB_ERROR_TIMEOUT:
Serial.println(“Time out error”);
break;
default:
Serial.println(“Unknown error”);
break;
}
Serial.print(“Humidity(%):”);
Serial.println(DHT11.humidity);
Serial.print(“Temperature(oC):”);
Serial.println(DHT11.temperature);int sensorValue = analogRead(ASignal);
Serial.print(“soil exploration=”);
Serial.println(sensorValue);
int val = 0;
// reset
Wire.beginTransmission(ADDR);
Wire.write(0b00000111);
Wire.endTransmission();
digitalWrite(13, LOW);
delay(100);
Wire.beginTransmission(ADDR);
Wire.write(0b00100000);
Wire.endTransmission();
// typical read delay 120ms
delay(120);
Wire.requestFrom(ADDR, 2); // 2byte every time
for (val=0; Wire.available()》=1; ) {
char c = Wire.read();
//Serial.println(c, HEX);
val = (val 《《 8) + (c & 0xFF);
}
val = val / 1.2;
Serial.print(“l(fā)x: ”);
Serial.println(val);
Serial.println(“OK”);
digitalWrite(13, HIGH);
delay(100);
lcd.print(“SH:”);
lcd.setCursor(3,0);
lcd.print(sensorValue);
lcd.setCursor(8,0);
lcd.print(“TEMP:”);
lcd.print(DHT11.temperature);
lcd.setCursor(0,1);
lcd.print(“LX:”);
lcd.print(val);
lcd.setCursor(8,1);
lcd.print(“AH:”);
lcd.print(DHT11.humidity);
delay(3000);
lcd.clear();
}
void loop()
{
-
傳感器
+關(guān)注
關(guān)注
2554文章
51582瀏覽量
757824 -
Arduino
+關(guān)注
關(guān)注
188文章
6478瀏覽量
188298
發(fā)布評論請先 登錄
相關(guān)推薦
基于SX1281芯片的醫(yī)療環(huán)境監(jiān)測方案
庫房溫濕度監(jiān)測系統(tǒng)
遠程溫濕度實時監(jiān)測系統(tǒng)應(yīng)用方案
XKCON祥控倉庫存儲環(huán)境溫濕度在線監(jiān)測系統(tǒng)能夠取代人工巡檢,實現(xiàn)遠程倉庫存儲環(huán)境溫濕度變化的實時

LORA無線溫濕度監(jiān)測系統(tǒng)
溫濕度監(jiān)測解決方案
冷庫環(huán)境溫濕度監(jiān)控系統(tǒng)
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環(huán)境溫濕度數(shù)據(jù)及 OLED顯示

評論