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