該回購包含用於家庭IoT項目的多功能ESP8266傳感器設備的構建說明。
板V5,部分人口組成。 Kicad產生的圖像。
該傳感器板滿足我的大部分家庭自動化硬件需求。它適合廉價,可廣泛的外殼(不需要3D打印),並且可以通過鋰離子電池(包括電壓監控,充電,反極性和包含的保護電路)或USB供電,如果USB和電池同時連接USB,則可以使用適當的電源共享。在軟件方面,我將事情盡可能高:用於大多數用法方案的Tasmota;在需要的地方。通信利用Wi-Fi或Lora上的MQTT協議(我將董事會用作遠程LORA傳感器,又用作Lora-MQTT橋)。
該板專為以下傳感器以及電動機/泵控制(用於自動植物澆水)而設計。 GPIO引腳仍然易於訪問,因此該板也可以用作許多其他傳感器的基礎。
ESP8266的使用有一些限制,特別是圍繞可用的GPIO,只有一個ADC端口。這意味著並非所有潛在功能都可以同時獲得。是的,可以通過端口分離器或使用其他微控制器(例如ESP32)來克服這些限制;但是,對我來說,一部分樂趣是看到我只能使用ESP8266做多少,最終結果適合我所有的用例。
![]() | ![]() |
|---|---|
| V4,具有BME280(溫度,壓力和濕度),BH1750(LUX)和水分(通過音頻插頭)傳感器。配備澆水泵(右下);當前未連接。 | V5,帶有BME280和MH-Z19C(CO 2 )傳感器 |
![]() |
|---|
| V5板的全新交付 |
您可以(應該?!)使用其他東西。我最初將其設計為了解物聯網傳感器和電路設計/製造的一種方式。我之所以堅持下去,是因為它在現成的板上提供了幾個優勢:
板可以直接從USB或鋰離子電池供電。董事會V4和更早使用的Micro-USB; V5使用USB-C。董事會左側的切口旨在容納這樣的1核18650爆炸案例(購買鏈接)。電池連接器是2針JST-PH(2mm螺距),但是如果您願意,只需將電線直接焊接到連接器即可。
如果同時連接電池和USB,則功率共享電路可確保只有USB為板供電。電池與常見的3芯片TP4056模塊的副本一起使用。如果您不使用電池並想繞過此電路(或者您不希望在USB連接時電池充電),則提供一個開關。該模塊包括保護過度充電,過度遞減,過電流和短路。請注意,在USB連接USB時,板的其餘部分(而非電池)繞開了過電流和短路保護,因此電源共享電路是有效的。標準充電模塊不包含電池極性保護,因此我還補充了它。
當跳線JP5(前)或JP6(背面)被橋接時,可以使用電池電壓監視。這將正電池端子(通過電壓分隔器)連接到ESP的唯一ADC引腳。該連接是可選的,因為水分傳感器(當然還有其他傳感器)也需要訪問ADC。因此,與V5板同時監測電池電壓和土壤水分傳感器。
筆記
有一系列可能的LDO IC可供選擇。由於其電流相對較高,掉落電壓較低,因此我在XC6203P332PR上安頓下來。 V4董事會有兩個替代監管機構的足跡,我打算測試穩定性,但不需要這些,並且在V5中被刪除。
在PCB版本4上,我根據數據表將兩個1μf觸覺電容器與XC6203配對。幾週後,我的兩個木板上有一個電容器失敗,導致了短路和大量煙霧(當時木板是在用USB驅動的)。在網上閱讀了塔塔勒姆(Tantalum)恐怖故事後,我決定嘗試將它們換成V5上的陶瓷,但沒有其他問題。後來我發現這兩個失敗是我的錯:我將零件相反!我敢肯定,有一個很好的理由是,塔塔勒姆斯(Tantalums)上的極性標記頻段表示積極,而在鋁製電容器和二極管上表示負面,表示負面,但它們卻絆倒了這個新手。
方便地,XC6203P332PR也與白色ESP-12F適配器板兼容。它比提供的足跡要小,但仍然可以焊接到它上,幾乎沒有麻煩。如果使用板安裝的調節器,請確保卸下板正面的中央零歐姆電阻。
我學會了關於ESP8266的電氣靈敏度的艱難方法:在板的V3上,每當激活澆水電動機時,它都會重新啟動。我在V4中使用組件重新定位(將電動機移至遠離微控制器),在電動機連接旁邊增加額外的電容器,增加功率痕跡寬度與信號跡線,並將地面平面上的循環降至最小,並將各組件的其餘部分分開。
該板是為ESP-12F設計的。在焊接之前,我傾向於將芯片刷在程序板上,只是為了檢查它的工作。
安裝後,可以通過將USB-UART接口板連接到適當的引腳來以正常方式閃爍。
| 別針# | 港口 | 板連接 | 電阻* |
|---|---|---|---|
| 1 | 第 | 重置按鈕 | |
| 2 | ADC | ADC(水分或電池) | |
| 3 | en | 芯片啟用 | 主管或E-PU |
| 4 | IO16 | 深腳 | |
| 5 | IO14 | I2C SCL或SPI SCK | |
| 6 | IO12 | 水分VCC或SPI SDO-MISO | |
| 7 | IO13 | I2C SDA或SPI MOSI | |
| 8 | VCC | ||
| 15 | gnd | ||
| 16 | IO15 | Lora NSS | E-PD |
| 17 | IO2 | 板載LED和SPI SS | |
| 18 | IO0 | 閃存按鈕 | e-pu |
| 19 | IO4 | 模式開關(GND:使用睡眠) | e-pu |
| 20 | IO5 | 水泵或Lora Dio | E-PD |
| 21 | rxd | CO 2 TX | |
| 22 | TXD | CO 2 rx |
*固定在引腳上的電阻:I:內部,E:外部,PU:上拉,PD:下拉
似乎有一些有關將RST連接到GPIO16的最佳方法的在線辯論,以便使用ESP8266的DeepSleep功能。我在謹慎的一邊犯了錯誤,並在兩者之間添加了二極管。
如果電壓太低,ESP8266容易受到褐色的影響(可以在此處找到該問題的很好的解釋)。首次應用功率時,調節器的電壓的非瞬時增加,這可能導致引導問題。為了防止這種情況,我包括了一個可選的電壓主管(TPS3839G33DBZ),該電壓僅在電壓高於適當的閾值時才將芯片啟用銷設置為高。但是,我還沒有註意到Brown-Outs是一個問題,因此我有時會跳過此組件。
圍欄中的一對配備洛拉的設備
在可用的GPIO方面,將ESP8266與Lora模塊結合在一起是一種延伸。該板旨在與SX1276 LORA模塊(示例鏈接)一起工作,並從這里大大依靠設計,通過將lora模塊的三個銷釘(Dio0、1和2)鏈接到ESP8266通過三個Diodes(分別是D9,D9,D10和D11),通過將所需端口鏈接到最小化所需端口。這種共享配置需要軟件中的特殊處理。但是,對於簡單的Lora通信,僅需要DIO0,因此對於迄今為止,我的Lora董事會已經橋接了D9,並且離開了D10和D11。
為了進行測試,您可以將普通的螺旋線天線(通常包括在模塊購買)直接焊接到模塊的天線銷。不過,範圍會很爛。為了獲得更好的範圍,請附上更高增益的天線(我使用此處購買的5DBI天線)。我在AE1上包括一個IPEX U.FL-R足跡。另外,SMA邊緣安裝的連接器非常適合板塊J5板的邊緣。這些可以如下連接(此示例使用板V4,但對於V5來說也是如此):頂部和底部。
筆記
ESP8266上可用一個ADC,測量範圍從0V到1V。為了測量較高的電壓,因此需要電壓分隔器。在V5上,ADC可以用於連接到音頻插孔的外圍設備,或者如果關閉JP11或JP5,則可以監視電池電壓。
通過音頻插孔的連接通過R1 =470kΩ(組件R7),R2 =200kΩ(組件R8)的分隔線。這允許測量高達3.3V的電壓(3.3V降低至約0.985V;校准信號以提高精度)。
電池連接與組件R7串聯增加了330kΩ(組件R10)電阻,從而導致R1 =800kΩ。這將測量範圍提高到5V。
我選擇使用4極音頻插孔(型號PJ313E)將水分傳感器連接到板上。目前,四極中只有三個連接;第四是備用未來功能的備用。從音頻插頭的底座到尖端開始,當前連接是:
| 極 | 聯繫 |
|---|---|
| 1 | gnd |
| 2 | 沒有連接 |
| 3 | 3.3V(來自GPIO12,通過JP3) |
| 4 | 通過3.3V電壓分隔器到達ADC |
我選擇的插座(或者可能是插座和使用的插頭的組合)遇到了一個問題:默認情況下,它無法與所有四個桿進行連接。這可以在此處的頂部圖像中看到,其中最深的接觸腳針(Pole 4)未偏轉。為了解決問題,我將插座的突出塑料前部剪斷/歸檔(底部圖像)
小型水泵和必要的柔性管道廣泛可用。如上所述,他們是電動的蟲子。因此,為什麼泵的連接器位於ESP的板的最遠角落,並屏蔽了兩個電容器。它通常由GPIO5供電,通過N通道MOSFET供電,也可以使用可選的按鈕SW5手動操作。
為了簡單起見,由於小泵似乎能夠在相當寬的電壓範圍內運行,因此泵當前正在為板提供任何電壓(由電源共享電路狀態定義)的任何電壓提供:如果連接了USB,則將為5V減去Diodes d2 and D8的向前電壓;如果電池供電,則電池電壓將減去D8滴。在實踐中,這確實沒有太大的不同:在USB與電池供電時,在給定時間內會抽更多的水。
對於泵的板連接,DC-002插座有一個足跡。我考慮使用USB插座,但認為這是誤導性的,因為輸出電壓並不總是對USB期望的5V。在上圖所示的板上,我跳過了動力傑克插座,然後簡單地連接了雙針頭插座。
我之所以選擇這個項目盒,是因為它便宜,廣泛可用,並且適合PCB和18650電池的尺寸合適。
需要8毫米M2.6螺釘將木板連接到盒子上。
| 財產 | 模塊 | 板連接 | 數據表 | 購買鏈接* |
|---|---|---|---|---|
| 溫度,壓力,濕度 | BME280 | 直接(2.54毫米標頭) | 關聯 | |
| 勒克斯 | BH1750 | 直接(2.00毫米標題) | 關聯 | aliexpress |
| CO 2 | MH-Z19C | 直接(2.54毫米標頭) | 關聯 | aliexpress |
| 水分 | “電容性土壤水分傳感器v1.2” | 音頻插頭 | 鏈接(較舊版本) | aliexpress |
*我過去從這些鏈接中購買了這些鏈接,但沒有保證。我也不打算在不可避免的情況下更新它們。
這是一個非常方便的溫度,濕度和壓力傳感器。使用傳感器的當前安裝點,它部分位於外殼的外部。我覺得這很方便,因為我不必擔心盒子內的氣流。如果當前的幾何形狀冒犯了您,或者您需要一個更健壯的設備,傳感器不會冒險損壞,請考慮在連接點上重新設計,或者選擇帶有內置籠子的替代傳感器。
您可能會發現,焊接銷釘妨礙了正確關閉外殼蓋的方式。如果是這種情況,您可以在焊接前修剪它們,就像我在這裡所做的那樣。
傳感器可以通過I2C或SPI進行通信;大多數人似乎都使用I2C,您不需要進行董事會更改。如果您想要SPI接口,請在後部關閉幾個焊接橋,以連接其他引腳。在V5上,其中一種連接也為水分傳感器提供動力,因此,如果您要同時同時運行BME280(帶有SPI接口)和水分傳感器,則需要進行更改。
筆記
這是一個簡單可靠的光電二極管,結合了I2C接口。您可以以各種形式的因子購買,而輕球版本對於我們的目的特別方便。修剪內置連接器的塑料部件,現在可以將其直接插入板V5中的標準的2mm-pitch引腳標頭中。輕球可以從傳感器上彈出,直接安裝在圍欄的頂部。
筆記
這是我使用的最昂貴的傳感器,但我認為與更便宜的VOC替代方案相比,這是值得的。它通過UART總線(SO ESP8266 PINS RX和TX)進行通信。因此,如果您試圖刷新ESP或使用其串行接口,則需要確保傳感器連接。
要在板V5上使用MH-Z19C,您需要在後部連接兩個焊接橋。事後看來,當您不想要那些橋接的橋接時,我想不出一個好的用例,所以我可能只將墊子換成以後的任何版本上的連續痕跡。
筆記
為了阻止水分傳感器不斷運行並排出電池,它直接由GPIO12供電。將JP3的右墊橋接到中心墊上以建立連接。它不會吸收太多電流,因此我沒有直接從GPIO PIN直接為傳感器供電的問題。如果事實證明將來是一個褐色/穩定性問題,則需要將這種連接替換為MOSFET。
該董事會是在KICAD設計的,由JLCPCB製造。 board_v*目錄中提供了KICAD文件和JLCPCB所需的信息。
請使用示意圖理解;我知道這是醜陋而迫切需要分為多個部分的醜陋。請記住,這是我的第一個PCB設計!

板V5佈局
為了方便起見,我在可能的情況下將Tasmota用於所有設備。 tasmota無法處理Lora,因此對於這些設備,我使用Micropython。
Web安裝鏈接
確保安裝Tasmota圖像的“傳感器”版本。
這是來自此讀數頂部的V4設備的一些tasmota屏幕截圖。
| 
這是我從控制接口中的默認設置更改的主要設置。在此處閱讀有關這些和其他設置的信息。
筆記
POWER2 ONOutput Hi而不是Relay 2 。然後,它將在Tasmota的啟動過程中較早設置,並在微控制器進入深度睡眠時仍關閉。在這裡查找我的Lora Micropython軟件和說明:https://github.com/brev-dev/lora_esp8266_sensor_mqtt_bridge。
儘管不受此存儲庫的覆蓋,但這裡有一些快速筆記,內容涉及這些設備在我完整的家庭設置中的位置。
我的家庭設置旨在實現這些目標:
為了在每個房間內進行溫度控制,將輻射器插入了Tasmotizatized ESP8285智能插頭中。
“集線器”是配備蚊子,肉眼,膨脹dB和Grafana的Raspberry Pi 4。我的鼻子流可以通過替換大部分(例如,鄉親耐心)來簡化我的鼻子流,但我沒有研究過。 InfluxDB和Grafana的組合用於存儲和可視化歷史數據(下面的示例),以及我們手機上的“ MQTT DASH”應用程序,以監視當前狀態,更改溫度和水分觸發水平。 RPI軟件堆棧利用Docker和IotStack來易於配置和維護。 Andreas Spiess在該主題上有一些很棒的視頻,包括:#255,#295和#352。


