功能介紹:此設備用于采集土壤濕度、空氣干濕度、氣溫、光照強度,通過SD卡存儲所采集的數據,可將數據輸入excel、matlab進行數據分析,從而尋找最利于作物生長的生長環境。
后期計劃增加K離子傳感器、采用yeelink將數據采集至平臺形成實時監控。
原件清單(某寶上全有):
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,相關參數如下:
由于添加了濾波電路,精度應該會有所提高。
三、土壤濕度傳感器
未接觸測量之前的顯示應該為1022或者1023,這個值代表的是工作正常,將傳感器插入土壤中即可使用,數字會變小。
需要特別注意的是傳感器的DO口不接線。
四、光照傳感器
光照傳感器的讀數在接電后前三秒是0,這是串口的初始化,三秒后可正常工作。傳感器已標定,顯示的數值代表國際單位制的光照強度流明(LX),其物理意義是:LX,照度的國際單位(SI),又稱米燭光。1流明的光通量均勻分布在1平方米面積上的照度,就是一勒克斯。可以標作勒[克斯],簡稱勒。英為lux,簡作lx 。
需要注意的是光照強度傳感器的采集器是在外端黑色六引腳的貼片上,正常使用時,貼片不可被遮擋。
五、LCD屏
LCD屏幕加上了變阻器來控制屏幕的亮度,如果顯示數字不清楚,可以通過調節變阻器來調節電壓使其顯示更清楚:
LCD屏幕顯示的數據如下:
下面對數值進行說明:
SH(soil humidity,土壤濕度)
TEMP(temperature,溫度),單位攝氏度
LX(illumination intensity,光照強度),這里直接用單位命名了。
AH(air humidity,空氣濕度)
六、SD卡模塊
SD卡模塊目前還沒有寫代碼,后期通過SD卡采集的數據可以導入excel進行處理。
接下來要做的事:
標定各個傳感器
加入事件模塊
編寫SD卡代碼
加入休眠功能,20分鐘采集一次數據,6個小時存儲一次數據
加入yeelink
將監測站進行封裝
上代碼(語言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(“lx: ”);
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()
{
-
傳感器
+關注
關注
2564文章
52724瀏覽量
764778 -
Arduino
+關注
關注
189文章
6494瀏覽量
190334
發布評論請先 登錄
制藥車間溫濕度數據采集監控管理方案

基于SX1281芯片的醫療環境監測方案
庫房溫濕度監測系統
LORA無線溫濕度監測系統
溫濕度監測解決方案
冷庫環境溫濕度監控系統
Arduino Nano 和 NodeMCU ESP8266 讀取 DHT11 環境溫濕度數據及 OLED顯示

評論