電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示
創(chuàng)作
電子發(fā)燒友網>電子資料下載>電子資料>溫室監(jiān)控系統(tǒng)開源分享

溫室監(jiān)控系統(tǒng)開源分享

2022-10-26 | zip | 0.16 MB | 次下載 | 2積分

資料介紹

描述

描述:

這個項目可以幫助你看看你的溫室。它由傳感器組成:

  • DHT11(溫度和濕度),
  • MQ-135(空氣質量),
  • 土壤水分。
?

- 接下來的幾個步驟將解釋如何制作系統(tǒng)。

第 1 步:方案

?
?
?
?
pYYBAGNYhZGAZZUFAAFr2zhZkpk345.png
?
1 / 2 ?方案:連接NodeMCU和傳感器
?
  • DHT11傳感器數據引腳通過D0 引腳連接到NodeMCU 。
  • 土壤濕度傳感器數據引腳通過 D1 引腳連接到NodeMCU 。
  • MQ-135傳感器數據引腳通過A0 引腳連接到NodeMCU
  • 傳感器上的VCC 引腳連接到NodeMCU上的VIN 引腳,GND 引腳連接到NodeMCU上的GND 引腳。

第 2 步:Arduino IDE 庫

- 所需的庫是:

第 3 步:谷歌火力基地

Google Firebase用于存儲在NodeMCU上收集的數據。這些數據可以進一步用于網站、移動應用程序以及他們可以訪問互聯(lián)網的任何地方。使用您的 Google 帳戶登錄并按照以下步驟操作。

登錄后執(zhí)行以下步驟:

  • 點擊“+ 添加項目”
  • 填寫信息并點擊“創(chuàng)建”
  • 加載后,點擊左側導航欄中的“開發(fā)”。然后點擊“數據庫”
  • 單擊“創(chuàng)建數據庫”,然后選中“以測試模式啟動”并單擊“啟用”
  • 在下拉菜單中的“數據庫”標題旁邊,選擇“實時數據庫”
  • 單擊“角色”選項卡。在代碼中刪除“false”并添加“true”。
  • 返回“數據”選項卡。復制數據庫的鏈接并插入 Arduino 代碼。
  • 單擊圖標齒輪(左側導航欄)選擇“項目設置”,然后單擊“服務帳戶”選擇“數據庫機密”。
  • 在右側復制“秘密”代碼并插入 Arduino 代碼。

現(xiàn)在我們已經連接了NodeMCUGoogle Firebase。

第 4 步:NodeMCU

  • NodeMCU是一個可以連接到Internet的板子。此外,還有幾個數字引腳和一個模擬引腳。它非常適合需要連接到 Internet 的項目。
  • 連接到互聯(lián)網和連接到 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庫和傳感器數據引腳所連接的引腳:

int dhtPin = 0;
DHTNEW dhtsensor(dhtPin);

- 使用以下命令讀取溫度和濕度:

dhtsensor.read();
float t = dhtsensor.temperature;
float h = dhtsensor.humidity; 

- 最后使用以下命令向Google Firebase發(fā)送數據:

Firebase.setFloat("t", t);
Firebase.setFloat("h", h);

第 6 步:土壤濕度傳感器

?
土壤濕度傳感器
?

- 使用以下命令完成用于讀取土壤水分數據值的引腳的初始化:

int soilPin = 1;

使用以下命令讀取數據并發(fā)送到 Google Firebase:

int soilData = digitalRead(soilPin);
Firebase.setInt("soilData", soilData);

第 7 步:MQ-135 傳感器

?

- 使用以下命令完成用于讀取空氣質量數據值的引腳的初始化:

int airPin = A0;

- 使用以下命令讀取數據并發(fā)送到 Google Firebase:

int airData = analogRead(airPin);
Firebase.setInt("airData", airData);

第 8 步:Android 應用程序

?

?
?
?
?
pYYBAGNYhaCALeStAAC49WZB4TQ066.png
?
1 / 2 ?溫室應用
?
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(顯示在應用程序中)和 Google Firebase 中的文本的部分代碼位于名為MainActivity.java的附件中。xml文件也在附件中。

我的溫室監(jiān)控系統(tǒng)

?
?
?
?
pYYBAGNYhaWAaQXPAAa-_5jvxaM268.jpg
?
1 / 3 ?電子設備的盒子
?

我的系統(tǒng)的電源是移動電源移動電源+連接到NodeMCU上的VIN ,-連接到NodeMCU上的GND 。


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數據手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關電源設計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數字電路基礎pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅動電路設計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費