資料介紹
描述
描述:
這個項目可以幫助你看看你的溫室。它由傳感器組成:
- DHT11(溫度和濕度),
- MQ-135(空氣質(zhì)量),
- 土壤水分。
- 接下來的幾個步驟將解釋如何制作系統(tǒng)。
第 1 步:方案
![pYYBAGNYhZGAZZUFAAFr2zhZkpk345.png](https://file.elecfans.com/web2/M00/73/E2/pYYBAGNYhZGAZZUFAAFr2zhZkpk345.png)
- DHT11傳感器數(shù)據(jù)引腳通過D0 引腳連接到NodeMCU 。
- 土壤濕度傳感器數(shù)據(jù)引腳通過 D1 引腳連接到NodeMCU 。
- MQ-135傳感器數(shù)據(jù)引腳通過A0 引腳連接到NodeMCU 。
- 傳感器上的VCC 引腳連接到NodeMCU上的VIN 引腳,GND 引腳連接到NodeMCU上的GND 引腳。
第 2 步:Arduino IDE 庫
- 所需的庫是:
第 3 步:谷歌火力基地
Google Firebase用于存儲在NodeMCU上收集的數(shù)據(jù)。這些數(shù)據(jù)可以進一步用于網(wǎng)站、移動應(yīng)用程序以及他們可以訪問互聯(lián)網(wǎng)的任何地方。使用您的 Google 帳戶登錄并按照以下步驟操作。
登錄后執(zhí)行以下步驟:
- 點擊“+ 添加項目”
- 填寫信息并點擊“創(chuàng)建”
- 加載后,點擊左側(cè)導(dǎo)航欄中的“開發(fā)”。然后點擊“數(shù)據(jù)庫”
- 單擊“創(chuàng)建數(shù)據(jù)庫”,然后選中“以測試模式啟動”并單擊“啟用”
- 在下拉菜單中的“數(shù)據(jù)庫”標題旁邊,選擇“實時數(shù)據(jù)庫”
- 單擊“角色”選項卡。在代碼中刪除“false”并添加“true”。
- 返回“數(shù)據(jù)”選項卡。復(fù)制數(shù)據(jù)庫的鏈接并插入 Arduino 代碼。
- 單擊圖標齒輪(左側(cè)導(dǎo)航欄)選擇“項目設(shè)置”,然后單擊“服務(wù)帳戶”選擇“數(shù)據(jù)庫機密”。
- 在右側(cè)復(fù)制“秘密”代碼并插入 Arduino 代碼。
現(xiàn)在,我們已經(jīng)連接了NodeMCU和Google Firebase。
第 4 步:NodeMCU
- NodeMCU是一個可以連接到Internet的板子。此外,還有幾個數(shù)字引腳和一個模擬引腳。它非常適合需要連接到 Internet 的項目。
- 連接到互聯(lián)網(wǎng)和連接到 Google Firebase 所需的代碼如下所示:
#include
#include
#include
#include
#define FIREBASE_HOST "firebase_link"
#define FIREBASE_AUTH "firebase_secretcode"
#define WIFI_SSID "wifi_name"
#define WIFI_PASSWORD "wifi_password"
void setup() {
Serial.begin(9600);
WiFi.begin (WIFI_SSID, WIFI_PASSWORD);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println ("");
Serial.println ("WiFi Connected!");
Serial.println(WiFi.localIP());
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH);
}
void loop() {
}
第 5 步:DHT11 傳感器
- 使用以下命令連接dhtnew.h庫和傳感器數(shù)據(jù)引腳所連接的引腳:
int dhtPin = 0;
DHTNEW dhtsensor(dhtPin);
- 使用以下命令讀取溫度和濕度:
dhtsensor.read();
float t = dhtsensor.temperature;
float h = dhtsensor.humidity;
- 最后使用以下命令向Google Firebase發(fā)送數(shù)據(jù):
Firebase.setFloat("t", t);
Firebase.setFloat("h", h);
第 6 步:土壤濕度傳感器
- 使用以下命令完成用于讀取土壤水分數(shù)據(jù)值的引腳的初始化:
int soilPin = 1;
使用以下命令讀取數(shù)據(jù)并發(fā)送到 Google Firebase:
int soilData = digitalRead(soilPin);
Firebase.setInt("soilData", soilData);
第 7 步:MQ-135 傳感器
- 使用以下命令完成用于讀取空氣質(zhì)量數(shù)據(jù)值的引腳的初始化:
int airPin = A0;
- 使用以下命令讀取數(shù)據(jù)并發(fā)送到 Google Firebase:
int airData = analogRead(airPin);
Firebase.setInt("airData", airData);
第 8 步:Android 應(yīng)用程序
?
![pYYBAGNYhaCALeStAAC49WZB4TQ066.png](https://file.elecfans.com/web2/M00/73/E2/pYYBAGNYhaCALeStAAC49WZB4TQ066.png)
- 該應(yīng)用程序是在 android studio 中創(chuàng)建的。連接來自Google Firebase的應(yīng)用程序的部分,從其中獲取傳感器數(shù)據(jù)如下所示。
- 對于溫度、濕度和空氣質(zhì)量:
dref = FirebaseDatabase.getInstance().getReference();
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
temp = dataSnapshot.child("t").getValue().toString();
text_temperature.setText(temp + "°C");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
dref = FirebaseDatabase.getInstance().getReference();
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
hum = dataSnapshot.child("h").getValue().toString();
text_humidity.setText(hum + "%");
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
dref = FirebaseDatabase.getInstance().getReference();
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
air = dataSnapshot.child("airData").getValue().toString();
text_airquality.setText(air);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
- 對于土壤水分(if-else 用于決定是否需要澆水):
dref = FirebaseDatabase.getInstance().getReference();
dref.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
soilmoisture = dataSnapshot.child("soilData").getValue().toString();
int soilData = Integer.parseInt(soilmoisture);
if (soilData == 0) {
text_soilmoisture.setText("No watering required.");
text_soilmoisture.setTextColor(col2);
}
else {
text_soilmoisture.setText("Watering required!");
text_soilmoisture.setTextColor(col1);
}
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
- 用于鏈接在activity_main.xml(顯示在應(yīng)用程序中)和 Google Firebase 中的文本的部分代碼位于名為MainActivity.java的附件中。xml文件也在附件中。
我的溫室監(jiān)控系統(tǒng)
![pYYBAGNYhaWAaQXPAAa-_5jvxaM268.jpg](https://file.elecfans.com/web2/M00/73/E2/pYYBAGNYhaWAaQXPAAa-_5jvxaM268.jpg)
我的系統(tǒng)的電源是移動電源。移動電源+連接到NodeMCU上的VIN ,-連接到NodeMCU上的GND 。
- STING溫室光照管理系統(tǒng)開源分享
- 家庭溫室監(jiān)測系統(tǒng)開源
- 更智能的溫室開源
- 基于ARM11和WinCE的溫室大棚嵌入式監(jiān)控系統(tǒng)設(shè)計
- 使用單片機實現(xiàn)溫室監(jiān)控系統(tǒng)仿真設(shè)計的C語言實例程序免費下載 10次下載
- 面向溫室集群的環(huán)境無線監(jiān)控系統(tǒng)設(shè)計_張勇軍 1次下載
- 基于ZigBee和Internet的溫室群環(huán)境遠程監(jiān)控系統(tǒng)設(shè)計_ 2次下載
- 基于ZigBee和PLC的溫室監(jiān)控系統(tǒng)的設(shè)計 16次下載
- 基于MPI網(wǎng)絡(luò)的溫室監(jiān)控系統(tǒng) 13次下載
- 低功耗無線溫室監(jiān)控系統(tǒng)的研制 47次下載
- 基于WIFI的智能溫室監(jiān)控系統(tǒng)設(shè)計 122次下載
- 無線溫室信息監(jiān)測系統(tǒng)設(shè)計
- 智能溫室遠程監(jiān)控系統(tǒng)的研究與實現(xiàn)
- 溫室無線遠程監(jiān)控技術(shù)的研究與應(yīng)用
- zigBee在溫室監(jiān)控系統(tǒng)中的應(yīng)用
- 什么是動力環(huán)境監(jiān)控系統(tǒng) 1068次閱讀
- 監(jiān)控系統(tǒng)負載記錄系統(tǒng)狀態(tài) 1013次閱讀
- 圖像傳感器為視頻監(jiān)控帶來了新趨勢 8.3w次閱讀
- 基于LM3S102處理器和以太網(wǎng)實現(xiàn)溫室監(jiān)控系統(tǒng)的設(shè)計 854次閱讀
- 基于Web服務(wù)器和S3C2410處理器實現(xiàn)溫室茶樹培養(yǎng)監(jiān)測系統(tǒng)的設(shè)計 914次閱讀
- 監(jiān)控系統(tǒng)的存儲方法 8777次閱讀
- 農(nóng)業(yè)溫室大棚中所應(yīng)用的幾種傳感器介紹 7572次閱讀
- 基于GSM的太陽能農(nóng)業(yè)大棚多功能智能監(jiān)控系統(tǒng)模塊設(shè)計 3459次閱讀
- 一種基于STM32的溫室遠程監(jiān)測和控制系統(tǒng)的設(shè)計 1.2w次閱讀
- 什么是結(jié)晶器監(jiān)控系統(tǒng)?結(jié)晶器監(jiān)控系統(tǒng)組成原理 1203次閱讀
- 基于CC2530的溫室無線采集與控制系統(tǒng)設(shè)計與實現(xiàn) 4280次閱讀
- 基于ZigBee溫室環(huán)境監(jiān)測系統(tǒng)電路設(shè)計 9243次閱讀
- 基于XMEGA的溫室環(huán)境檢測系統(tǒng)的方案 3159次閱讀
- 基于51單片機的溫室測試系統(tǒng)設(shè)計 4949次閱讀
- 基于Zigbee技術(shù)的溫室大棚監(jiān)控系統(tǒng) 3461次閱讀
下載排行
本周
- 1A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 2PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 3PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 4dsPIC33EDV64MC205電機控制開發(fā)板用戶指南
- 5.78MB | 8次下載 | 免費
- 5STC15系列常用寄存器匯總免費下載
- 1.60 MB | 7次下載 | 5 積分
- 6模擬電路仿真實現(xiàn)
- 2.94MB | 4次下載 | 免費
- 7PCB圖繪制實例操作
- 2.92MB | 2次下載 | 免費
- 8零死角玩轉(zhuǎn)STM32F103—指南者
- 26.78 MB | 1次下載 | 1 積分
本月
- 1ADI高性能電源管理解決方案
- 2.43 MB | 452次下載 | 免費
- 2免費開源CC3D飛控資料(電路圖&PCB源文件、BOM、
- 5.67 MB | 141次下載 | 1 積分
- 3基于STM32單片機智能手環(huán)心率計步器體溫顯示設(shè)計
- 0.10 MB | 137次下載 | 免費
- 4A7159和A7139射頻芯片的資料免費下載
- 0.20 MB | 55次下載 | 5 積分
- 5PIC12F629/675 數(shù)據(jù)手冊免費下載
- 2.38 MB | 36次下載 | 5 積分
- 6如何正確測試電源的紋波
- 0.36 MB | 19次下載 | 免費
- 7PIC16F716 數(shù)據(jù)手冊免費下載
- 2.35 MB | 18次下載 | 5 積分
- 8Q/SQR E8-4-2024乘用車電子電器零部件及子系統(tǒng)EMC試驗方法及要求
- 1.97 MB | 8次下載 | 10 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935121次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計
- 1.48MB | 420062次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233088次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費下載
- 340992 | 191367次下載 | 10 積分
- 5十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183335次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81581次下載 | 10 積分
- 7Keil工具MDK-Arm免費下載
- 0.02 MB | 73810次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65988次下載 | 10 積分
評論