資料介紹
本指南最終有點冗長,還包括將我帶到這一點的旅程的詳細信息,而不是一套簡短的說明。這樣做的原因是,在這段旅程中,我遇到了很多選擇,我相信在這里和那里提供更多的細節可能會幫助任何人——像我一樣——開始成為一名制造商、室內園丁或程序員。
我在這個項目中使用的每一項知識都是自學的,并且是從互聯網上免費提供的資料中獲取的。我希望這會鼓勵您學習、試驗,讓您和您的社區的生活更美好,并在途中獲得很多樂趣。我當然會:)
花園
這一切都始于大約 2 年前,當時我收到一小籃子羅勒和歐芹作為喬遷禮物,我很快就迷上了用新鮮香草烹飪的想法,即使是在隆冬。由于這些年來我也在休假,所以事情注定會失控——以一種好的方式
首先,我開始從當地超市特意購買新的羅勒植物,很快我的櫥窗里就有 6 到 7 株,腦子里有無數的新計劃和想法。因此,唯一合乎邏輯的下一步是購買一些生長燈,并最終將該項目發展成一個半自動化的氣培花園,只需要不時手動更換營養液。
這也是我對 Maker 世界的介紹。
種植容器和氣培法
我最終選擇了氣培法而不是其他方法,因為它似乎是最有效的資源利用方式,而且想到擁有一大桶根莖,在我家中間懸掛在蒸發的營養液中也具有奇怪的吸引力。
因為它計劃是一個實驗性的構建,我使用了一個宜家盒子(可能不是食品級的,所以我不推薦它)在頂部為網杯切幾個洞,就是這樣。
單一容器方法效果很好,但也有缺點:一旦根部接觸到營養液,就很難控制根腐病,因為造霧器不能使水充分充氧。我經常需要使用過氧化氫 (H2O2) 對其進行消毒。還有其他更好的變體(參見:高壓氣培法),但這個是最容易建造的。
在為 netcups 鉆孔之前找到正確的安排
到目前為止,使用超聲波霧化器并不是最好的解決方案,但它是氣培法的簡單介紹,效果好且維護成本低。
一定要買一個帶有“漂浮物”的,因為它們只能在理想的深度下工作。如果造霧機有一個浸沒傳感器,它也有幫助,這樣它就不會在離開水時打開并損壞自身(例如,當容器在炎熱的夏天排水得更快時)。
當您更換營養物時,還要確保清潔裝置和漂浮物,因為它可能是細菌的培養箱。
外殼:
幾個月來,我一直在看著我客廳中央的一個相當丑陋的帳篷,它是用反光救生毯、錫箔和電線搭起來的,讓它看起來更像是一個廢棄的臨時***實驗室,而不是羅勒花園。所以我決定使用木框和雙面反光板來升級外殼。它便宜、易于制造,最終大大提高了生長燈的效率。
使用專為該任務打造的材料:耐熱、表面不平整的反光材料(以避免形成熱點)、耐用、不透明、一側顏色適合您的環境。通常一個簡單的熱屏就足夠了。
正在制作中的新外殼
控制器單元
帶DS18B20溫度傳感器的控制器
原理圖
免責聲明
在這一點上,我必須補充一點,我只是一個愛好者,而不是工程師,所以挑戰我的解決方案總是一個好主意。也就是說,當前的設置是對無數項目和指南進行數月研究的結果,旨在尋找最佳實踐來構建負擔得起但安全的解決方案。
它經歷了多次迭代,并且總是有很大的改進空間,但目前的原型已經在我的花園里全天候服務了一年多,并被證明是可靠的。
電源連接:
請注意,輸入和輸出電源連接器均為IEC_60320 C14,可輕松更換,并且也是許多生長燈和計算機制造商的標準。
我使用 PC 電源線作為輸入,并使用組裝好的自定義連接器作為輸出。
電源輸入通過電線連接器分配,我使用的是 wago 221s。微控制器(3V3)和繼電器模塊(5V)有一個 5V 直流電源,其余通過繼電器模塊路由到生長燈和灌溉。
安全注意事項:
繼電器缺點:對于輸出電源連接器,接地是直接連接的,但火線和中性線只有一根由繼電器切換,因為這在這類家庭項目中很常見。因此,即使繼電器處于關閉狀態,也應將末端的任何東西視為帶電。在進行任何手動交互之前,將它們與設備完全斷開。
入口和出口:對于像我這樣的新手來說,區分相同連接器標準的入口和出口可能也不是很明顯(我只熟悉 PC 電源的入口),但是有非常明顯和合乎邏輯的安全原因使用插座作為輸出連接器,否則您最終會在設備側面的裸露金屬針腳上獲得電源電壓。這是次優的:)
傳感器:
經過幾次嘗試,我發現將我的傳感器連接到設備的最簡單方法是通過 3.5 毫米音頻連接器(具有 3 個或更多極)和音頻電纜(至少具有相同數量的電線)。端口、連接器和電纜均易于采購、易于組裝并符合 3V3-5V 標準。
在這個項目中,我只使用了 DS18B20 溫度傳感器的防水變體來監測營養液的溫度。但在房間的另一邊,有一個類似的單元負責照看土壤種植的羅勒,它使用電容式土壤濕度傳感器、DHT11 溫濕度傳感器,這些也可以在 MCU 側項目的模塊中找到模板:: https://github.com/tlvlp/iot-mcu-modules/tree/master/modules
繼電器模塊:
我使用的是 5V 電源和 3V3 控制,非常適合 ESP32。
確保它額定切換電源電壓并且它可以承受灌溉和植物生長燈的負載。請注意“電源連接”部分中的安全警告!
生長燈:
網上有很多關于為你的花園選擇合適的燈的材料,它本身就是一門藝術,這取決于你的植物的要求和主要的書呆子水平:)
由于控制器可以處理任何由電源電壓供電的生長燈,您只需考慮繼電器模塊的額定值或選擇適合您選擇的照明的繼電器。
?
組件清單:
ESP32 WROOM 或 WROVER 開發板
固態繼電器模塊
交直流5V電源
3.5 毫米音頻連接器
3+線音頻線
信號線
DS18B20水溫傳感器
生長燈
PC電源線插頭
輸入的電源兼容開關
電源插座
3 個額定電源線連接器https://www.wago.com/221/us/
項目箱 - 最好是防水的
MCU、固件和軟件:
選擇微控制器 - ESP32
首先,我在 Arduino Nanos 上碰了碰運氣,它非常適合學習,但幾乎無法用于物聯網目的。我最終選擇了 ESP32 WROVER 和 WROOM 開發板,因為即使它們是市場上的新產品,對于內置 WiFi 且具有良好性能和存儲容量的 MCU 來說,它們也相對便宜。
我為 ESP 構建了一個小型對接平臺,并將所有傳感器、繼電器控制和電源連接到該平臺,使開發板可從設置中移除。
選擇語言 - MicroPython
在使用 C++ 和 PlatformIO 大約一個月后,一旦我想對項目進行模塊化,我很快就不知所措,最終在不得不調試一些晦澀的 mqtt 連接問題時放棄了。
那是我找到 MicroPython 并最終在項目中使用它的時候。
它在性能方面當然有其缺點,但使用相對強大的 ESP 芯片,我很樂意用一些性能損失來換取可讀性、開發和調試的便利性。
與編譯后的 C++ 不同,MP 還必須在內存中有其解釋器,占用更多空間。但它的優點是不必每次更改都重新編譯和上傳整個項目,而只需上傳已修改的腳本。
通過串行連接的 REPL 也是加速編寫和測試代碼的一個很好的特性。
為您的硬件編寫自定義模塊
由于硬件模塊種類繁多,您很有可能會為它們編寫自定義軟件模塊。
最好的開始方式是決定您的硬件設置,從下面克隆模塊存儲庫,實施您的解決方案。另請參閱上面的傳感器部分以獲取更多信息。
UAsyncIO 和協作式多任務處理:
在自定義 MCU 模塊和設置時,確保使用與現有實現類似的 uasyncio(Python 的 asyncio 的微型版本)庫,尤其是對于較慢的模塊,以保持單元響應 - 否則,例如。等待較慢的傳感器會阻止設備接收 MQTT 調用。
代碼庫:
https://github.com/tlvlp/iot-mcu-modules - MCU 端 API 詳細信息和啟動您自己的項目的通用模板
https://github.com/tlvlp/iot-mcu-modules - MCU 端 API 詳細信息和啟動您自己的項目的通用模板
https://github.com/tlvlp/iot-mcu-bazsalikon-aero - 在這里您可以找到我的花園中當前使用的上述模板的實現
更新固件并將項目上傳到 MCU:
https://github.com/tlvlp/micropython-upload - 我用來更新固件、上傳項目文件、訪問 REPL 等的腳本集合。
https://micropython.org/ - 官方 MicroPython 資源,包括開發板特定的固件和一個非常有用的社區
ESP32 - Lolin32 v1.0.0 開發板
服務器端
因為在做這個項目的時候,我也正在轉行成為一名軟件開發人員,所以我發現用這個項目作為學習新技術的動力是一個好主意。
因此,服務器端并不像您對類似規模的創客項目所期望的那樣輕巧,它不需要在 MCU 或 Raspberry Pi 上運行,它需要一個中等大小的家用服務器或計算機,但作為回報,它可以擴展以處理更多的 MCU :)
可以在此處找到項目摘要存儲庫,其中包含部署所需的所有詳細信息和材料:https ://github.com/tlvlp/iot-project-summary
特點:
機組監控
每個單元中的模塊電平控制(例如繼電器)
以計劃任務的形式實現自動化
報告:使用原始數據和每小時、每天、每周、每月和每年的平均值為單元動態生成模塊級報告。
安全——所有公開的端點都使用 TLS、身份驗證和授權規則。所有密碼均在安裝期間生成并存儲在 Docker 機密中。
Dockerized 服務堆棧提供安全可靠性并與服務器的其余部分分離
大多數服務都可以通過 Docker Swarm 進行擴展(詳情在部署倉庫中)
部分:
Linux服務器
網絡連接
TLS 證書(最好使用域加密)
下圖顯示了服務之間可能的 API 調用的概覽。除了 MQTT 代理之外的所有服務都使用數據庫,因此為了清楚起見,我省略了這些連接。
API 網關控制大部分流程,但 MQTT 客戶端和調度程序也可以通過專用的內部用戶帳戶調用網關。
服務器后端+前端服務圖
后端部署:
我已經為幾種情況編寫了安裝、部署和卸載腳本。
在獲得 TLS 證書和簡短配置后,安裝是完全自動的。
所有詳細信息都可以在https://github.com/tlvlp/iot-server-deployment repo 中找到。
網絡門戶:
https://github.com/tlvlp/iot-api-gateway是與服務交互的最穩定方式,您可以制作自己的前端實現。
在撰寫此摘要時,我對前端世界還比較陌生,因此在當前狀態下,該項目附帶的門戶充其量是粗糙的,尤其是在涉及 UX 時,但它是安全且功能齊全的。
特征:
完全實現后端 API
由 TLS 保護
桌面和移動兼容
PWA(漸進式 Web 應用程序),您可以將其作為應用程序安裝到桌面和手機以方便訪問
單元詳細信息部分包含從單元列表視圖中選擇的單個單元的所有詳細信息和可用操作,例如:
開關繼電器模塊
添加、編輯預定事件
查看單元活動日志
為單元的給定模塊生成報告
單位詳情查看
報告部分顯示單個單元模塊的可自定義報告。
可以同時顯示不同的平均范圍,這將在當前基于文本的報告被可視化圖表取代時更有用。
如果從“單元詳細信息”視圖打開,報告參數會預先填充單元和模塊特定詳細信息。
報告視圖
Admin 部分僅供具有 ADMIN 角色的用戶訪問,目前是注冊新用戶的唯一途徑。
用戶管理員視圖
構建您自己的自定義輕量級后端的技巧:
您可以將項目的后端部分替換為您自己的解決方案。
只要滿足以下條件,您就可以使用您熟悉的任何語言和庫:
它需要包括一個 MQTT 服務器和客戶端
它必須實現https://github.com/tlvlp/iot-mcu-modules的 README 中詳述的 MCU 端 API
如果您了解一點 java 和 SpringBoot,快速構建在 RaspberryPi 上運行的輕量級單體后端的一種方法是:
安裝和配置 MQTT 代理(例如 Mosquitto 或 VerneMQ)
克隆https://github.com/tlvlp/iot-mqtt-client存儲庫
在 /mqtt/MessagingService.java 中,將您的自定義邏輯添加到這些方法:handleIncomingMessage() 和 handleOutgoingMessage()
使用 Spring security 添加身份驗證和 TLS。示例可以在https://github.com/tlvlp/iot-api-gateway/ repo 的 src/.../config 包中找到
您還可以在各自的 repos 中找到調度、報告和單元處理相關邏輯,所有這些都在https://github.com/tlvlp/iot-project-summary中引用
?
- 使用ESP32 Web服務器進行家庭自動化設置
- 自動化城市花園控制器
- 制作BMP280 ESP32天氣預報器
- 使用Blynk IR Remote和ESP32實現家庭自動化
- 使用ESP32和IR Remote的Alexa家庭自動化
- ESP32帶紅外遙控繼電器的藍牙家庭自動化
- ESP32家庭自動化開源分享
- 使用ESP32制作ESP RainMaker IoT項目
- 樂鑫ESP32_藍牙配網用戶指南
- 樂鑫ESP32_藍牙架構用戶指南
- 樂鑫ESP32_ECO_V3_使用指南
- 樂鑫ESP32-MeshKit-Light_使用指南
- ESP32 Flash加密指南
- 基于ESP32的12通道IOT家庭自動化
- ESP32開發指南的詳細教程免費下載 623次下載
- ESP32能取代STM32嗎?哪個更好? 1.3w次閱讀
- 自動化設備的伺服電機選型指南 940次閱讀
- 工業自動化和自動化區別是什么 1840次閱讀
- ESP32-C3開發板設計指南 6663次閱讀
- 過程自動化控制和運動自動化控制的原理詳解 1737次閱讀
- 什么是ESP32-CAM攝像頭? 2.4w次閱讀
- 基于ESP32的簡易web服務器設計 3990次閱讀
- 使用ESP32實現UDP通信的方法 6519次閱讀
- ESP32使用MiroPython編程環境搭建 3047次閱讀
- 基于ESP32制造有趣的超級馬里奧主題時鐘 4783次閱讀
- ESP8266/ESP32自動下載原理 4742次閱讀
- esp32物聯網的應用實例 LoRa網關制作、觸屏DIY電視、Sygic導航HUD 6041次閱讀
- ESP32的數字遙測實現 1779次閱讀
- 基于PlatformIO IDE的家庭自動化系統設計方案實現 2489次閱讀
- dfrobotBeetle-ESP32控制器簡介 2974次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多