このレポは、ホームIoTプロジェクト用の多目的ESP8266センサーデバイスのビルド命令が含まれています。
ボードV5、部分的に人口存在します。 KICADで生成された画像。
このセンサーボードは、私のホーム自動ハードウェアのニーズのほとんどを満たしています。安価で広く利用可能なエンクロージャー(3D印刷は不要)に収まり、LIイオンバッテリー(電圧モニタリング、充電、逆極性、保護回路が含まれている)またはUSBで駆動できます。ソフトウェア側では、私はできるだけ高レベルを保持しています。ほとんどの使用シナリオのためにTasmota。必要に応じてマイクロパイソン。通信は、Wi-FiまたはLoraを介したMQTTプロトコルを利用します(リモートLoraセンサーとして、およびLora-MQTTブリッジの両方としてボードを使用します)。
ボードは、次のセンサーとモーター/ポンプ制御(自動植物の散水用)のために設計されています。 GPIOピンは簡単にアクセス可能なままであるため、このボードは他の多くのセンサーの基礎としても使用できます。
ESP8266の使用には、特に利用可能なGPIOにはいくつかの制限があり、ADCポートは1つだけです。これは、すべての潜在的な機能が同時に利用できるわけではないことを意味します。はい、これらの制限は、ポートスプリッターで、またはESP32などの異なるマイクロコントローラーを使用することにより、克服できます。しかし、私にとっての楽しみの一部は、ESP8266だけでどれだけできるかを見ることでした。最終結果は私のすべてのユースケースに適合します。
![]() | ![]() |
|---|---|
| V4、BME280(温度、圧力、湿度)、BH1750(LUX)および湿気(オーディオプラグを介して)センサー。散水ポンプ用の装備(右下);現在接続されていません。 | V5、BME280およびMH-Z19C(CO 2 )センサー |
![]() |
|---|
| V5ボードの新鮮な配達 |
あなたは何か他のものを使うことができます(?!)。私は最初、IoTセンサーと回路の設計/製造について学ぶ方法としてこれを設計しました。既製のボードよりもいくつかの利点を提供するので、私はそれに固執しました:
ボードは、USBから直接、またはLiイオンバッテリーから電力を供給できます。ボードV4および以前にMicro-USBを使用しました。 V5はUSB-Cを使用します。ボードの左側にある切り抜きは、このような1セルの18650バッテリーケースに対応するように設計されています(購入リンク)。バッテリーコネクタは2ピンJST-PH(2mmピッチ)ですが、必要に応じて、ワイヤを直接コネクタにはんだ付けしてください。
バッテリーとUSBの両方が同時に接続されている場合、電力共有回路は、USBのみがボードに電力を供給することを保証します。バッテリーは、充電用の一般的な3チップTP4056ベースのモジュールのコピーと組み合わせて使用されます。バッテリーを使用しておらず、この回路をバイパスしたい場合(またはUSBが接続されている間にバッテリーを充電したくない場合)、スイッチが提供されています。このモジュールには、過充電、過剰充電、過電流、短絡のための保護が含まれています。 USBが接続されている場合、過電流と短絡保護は、ボードの残りの部分(バッテリーではなく)にバイパスされ、したがってパワー共有回路がアクティブであることに注意してください。標準の充電モジュールにはバッテリー極性保護が含まれていないため、それも追加しました。
ジャンパーJP5(フロント)またはJP6(背面)のいずれかが橋渡しされている場合、バッテリー電圧の監視が利用可能です。これにより、電圧仕切りを介してESPの唯一のADCピンに正のバッテリー端子を接続します。この接続はオプションです。これは、水分センサー(そしてもちろん他のセンサー)もADCにアクセスする必要があるためです。このため、V5ボードで同時にバッテリー電圧と土壌水分センサーの両方を監視することは明らかに不可能です。
メモ
選択する可能性のあるLDO ICの目を見張るような範囲があります。 XC6203P332PRに落ち着き、電流が比較的高く、ドロップアウト電圧が低いためです。ボードV4には、2つの代替レギュレーターのフットプリントがありましたが、安定性をテストすることを計画していましたが、これらは必要ではなく、V5で削除されました。
PCBバージョン4では、データシートに従って、2つの1μFタンタルコンデンサとXC6203をペアリングしました。数週間使用した後、これらのボードのうち2つでコンデンサが故障し、短絡と多くの煙が発生しました(当時ボードがUSBを搭載していました)。 Tantal Horror-Storiesをオンラインで読んだ後、私はそれらをV5のセラミックに交換することを実験することにしましたが、それ以上の問題は発生しませんでした。後で、2つの障害が私のせいであることを発見しました。私は部品を逆に装着しました!タンタルムの極性マーカーバンドがポジティブを示す正当な理由があると確信していますが、アルミニウムコンデンサとダイオードではネガティブを意味しますが、この初心者をつまずかせました。
便利なことに、XC6203P332PRは、白いESP-12Fアダプターボードとも互換性があります。提供されたフットプリントよりも小さいですが、まだほとんど問題なくはんだ付けすることができます。ボードに取り付けられたレギュレーターを使用している場合は、ボードの前面にある中央ゼロOHM抵抗器を取り外してください。
ESP8266の電気的な感度についての難しい方法を学びました。ボードのV3では、散水モーターが活性化されるたびに再起動します。コンポーネントの再配置でV4でこれを克服し(モーターをマイクロコントローラーから遠い端に移動する)、モーター接続の隣に追加のコンデンサを追加し、電力トレース幅とシグナルトレースを増加させ、地上平面上のループを最小限に抑え、モーターグラウンドプレーンリターンパスを残りのコンポーネントから分離します。
ボードはESP-12F向けに設計されています。はんだ付けする前に、プログラマーボードでチップをフラッシュする傾向があります。
インストールすると、USB-UARTインターフェイスボードを適切なピンに接続することにより、通常の方法でフラッシュできます。
| ピン# | ポート | ボード接続 | 抵抗* |
|---|---|---|---|
| 1 | RST | リセットボタン | |
| 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 | ウォーターポンプ、またはロラディオ | e-pd |
| 21 | RXD | CO 2 TX | |
| 22 | TXD | CO 2 RX |
*ピンに取り付けられた抵抗:I:内部、E:外部、PU:プルアップ、PD:プルダウン
ESP8266のDeepsleep機能を使用するために、RSTをGPIO16に接続する最適な方法についてのオンライン議論がいくつかあるようです。私は注意を払って誤りを犯し、2つの間にダイオードを追加しました。
ESP8266は、電圧が低すぎる場合、茶色の外出の影響を受けやすいです(この問題の良い説明はここにあります)。電源が最初に適用されたときに、レギュレータからの電圧の非内部的な増加と併せて、これは起動の問題につながる可能性があります。これを保護するために、電圧が適切なしきい値を上回っている場合にのみチップに有効なピンを高く設定するオプションの電圧スーパーバイザー(TPS3839G33DBZ)を含めました。しかし、私はブラウンアウトが問題であることにまだ気づいていないので、このコンポーネントをスキップすることもあります。
エンクロージャーにロラ装備されたデバイスのペア
ESP8266とLORAモジュールを組み合わせることは、利用可能なGPIOに関してはストレッチです。このボードは、SX1276 LORAモジュール(リンクの例)を使用するように設計されており、ここからデザインに大きく傾いています。これにより、3つのLORAモジュールのピン(DIO0、1、および2)を3つのDiodes(Board Footprints D9、D10、D11)を介して1つのESP8266ピンにリンクすることにより、必要なポートを最小限に抑えます。このDio-Sharing構成には、ソフトウェアで特別な取り扱いが必要です。ただし、単純なLORA通信にはDio0のみが必要なため、LORAボードにはこれまでのところ、D9をブリッジし、D10とD11を切断しました。
テストのために、モジュールのアンテナピンに直接、一般的ならせんワイヤアンテナ(多くの場合、モジュールの購入に含まれる)を直接はんだ付けできます。ただし、範囲は吸うでしょう。より良い範囲のために、より高いゲインアンテナを取り付けます(ここで購入した5DBIアンテナを使用します)。 AE1にIPEX U.FL-Rフットプリントを含めます。あるいは、SMAエッジマウントコネクタは、フットプリントJ5を介してボードの端にうまくフィットします。これらは次のように配線することができます(この例はボードV4を使用していますが、同じものがV5で機能します):上部と下部。
メモ
ESP8266では、0Vから1Vの測定範囲の単一のADCが利用可能です。したがって、より高い電圧を測定するには、電圧分割が必要です。ボードV5では、ADCはオーディオジャックに接続された周辺機器に使用するか、JP11またはJP5のいずれかが閉じている場合はバッテリー電圧を監視できます。
オーディオジャックを介した接続は、R1 =470kΩ(コンポーネントR7)、R2 =200kΩ(コンポーネントR8)を使用して仕切りを通過します。これにより、最大3.3Vの電圧の測定が可能になります(3.3Vは約0.985Vに下げられます。信号をより高い精度で校正します)。
バッテリー接続により、コンポーネントR7と直列に330kΩ(コンポーネントR10)抵抗が追加され、R1 =800kΩになります。これにより、測定範囲が最大5Vに増加します。
4極オーディオジャック(モデルPJ313E)を使用して、水分センサーをボードに接続することにしました。今のところ、4つの極のうち3つだけが接続されています。 4番目は、将来の機能に目を向けた予備です。ベースからオーディオプラグの先端まで、現在の接続は次のとおりです。
| ポール | 繋がり |
|---|---|
| 1 | GND |
| 2 | 接続なし |
| 3 | 3.3V(GPIO12から、JP3経由) |
| 4 | 3.3V電圧分割を介してADCに |
選択したソケット(または、ソケットと使用するプラグの組み合わせ)で1つの問題が発生しました。デフォルトでは、4つのポールすべてに接続できません。これは、ここで最も深いコンタクトピン(ポール4)が偏向していない上の画像で見ることができます。問題を修正するために、私はソケットの突出したプラスチックの前部部分を切り取った/ファイルしました(下画像)
小さなウォーターポンプと必要な柔軟なチューブは広く利用可能です。上記で説明したように、それらは電気的にノイズの多い盗聴者です。したがって、なぜポンプのコネクタがESPからボードの隅にあり、独自の2つのコンデンサの後ろに保護されています。通常、GPIO5はNチャンネルMOSFETを介して搭載されているか、オプションのボタンSW5で手動で操作できます。
簡単にするために、そして小さなポンプは非常に広い電圧範囲で機能できるように見えるため、ポンプは現在ボードに電力を供給している電圧で供給されます(電力共有回路の状態で定義されています):USBが接続されている場合、ダイオードD2およびD8を横切る5Vから前方電圧を差し引いてください。バッテリーを搭載した場合、バッテリー電圧を差し引いてD8ドロップを引いたものになります。実際には、実際には大きな違いはありません。USB対バッテリー駆動の特定の期間中に、わずかに多くの水が汲み上げられます。
ポンプのボード接続には、DC-002ソケットのフットプリントがあります。私はUSBソケットの使用を検討しましたが、出力電圧が必ずしもUSBに予想される5Vではないので、それは誤解を招くことにしました。上の写真のボードでは、Power-Jackソケットをスキップし、代わりにダブルピンヘッダーソケットを単に接続しました。
このプロジェクトボックスは、安価で広く利用可能で、PCBと18650のバッテリーに適したサイズであるため、私は選択しました。
これらのようなボードをボックスに取り付けるには、8mm M2.6ネジが必要です。
| 財産 | モジュール | ボード接続 | データシート | 購入リンク* |
|---|---|---|---|---|
| 温度、圧力、湿度 | BME280 | 直接(2.54mmヘッダー) | リンク | |
| ルクス | BH1750 | 直接(2.00mmヘッダー) | リンク | aliexpress |
| CO 2 | MH-Z19C | 直接(2.54mmヘッダー) | リンク | aliexpress |
| 水分 | 「容量性土壌水分センサーv1.2」 | オーディオプラグ | リンク(古いバージョン) | aliexpress |
*私は過去にこれらのリンクから購入しましたが、保証なしで提供されています。また、必然的に期限切れになったときに更新する予定はありません。
これは非常に便利な温度、湿度、圧力センサーです。センサーの現在のマウントポイントを使用すると、エンクロージャーの一部の外側にあります。箱の中の空気の流れを心配する必要がないので、これは便利です。現在のジオメトリがあなたを怒らせる場合、またはセンサーが損傷を受けるリスクがない、より堅牢なデバイスが必要な場合は、接続ポイントの再設計を検討するか、組み込みケージのある代替センサーを選択します。
はんだ付けされたピンは、エンクロージャーの蓋を適切に閉じる邪魔になることがわかります。この場合、私がここでやったように、はんだ付けの前にそれらをトリミングすることができます。
センサーはI2CまたはSPIによって通信できます。ほとんどの人はI2Cを使用しているようで、ボードの変更を行わない必要があります。 SPIインターフェイスが必要な場合は、後部のいくつかのはんだブリッジを閉じて、追加のピンを接続します。搭乗v5では、これらの接続の1つも水分センサーに駆動するため、BME280(SPIインターフェイスを使用)と水分センサーの両方を同時に実行する場合は、変更が必要になります。
メモ
これは、I2Cインターフェイスと組み合わせたシンプルで信頼性の高いフォトダイオードです。さまざまなフォームファクターで購入できます。ライトボールバージョンは、私たちの目的に特に便利です。内蔵コネクタのプラスチック部品をトリムダウンすると、これにより、ボードV5に含まれるように、標準の2mmピッチピッチピンヘッダーに直接差し込むことができます。ライトボールはセンサーから飛び出し、エンクロージャーの上部に直接取り付けることができます。
メモ
これは私が使用する最も高価なセンサーですが、それはそれだけで、より安いVOCの代替品に値すると思います。 UARTバスで通信します(したがって、ESP8266ピンRXとTX)。したがって、ESPをフラッシュしようとしている場合、またはそのシリアルインターフェイスを使用しようとしている場合、センサーが接続されないようにします。
ボードV5でMH-Z19Cを使用するには、背面に2つのはんだブリッジを接続する必要があります。後知恵では、それらを橋渡ししたくないときは、良いユースケースを考えることができないので、おそらく将来のバージョンで連続したトレースのためにパッドを交換するだけです。
メモ
湿気センサーが絶えず動作し、バッテリーを排出するのを止めるために、GPIO12によって直接搭載されています。 JP3の右パッドを中央パッドに橋渡しして、その接続を作成します。それはあまり電流を描いていないので、GPIOピンから直接センサーに直接電源を入れるのに問題はありませんでした。将来的に茶色の/安定性の問題であることが判明した場合、この接続をMOSFETに置き換える必要があります。
理事会はKICADで設計され、JLCPCBによって製造されました。 KICADファイルとJLCPCBが必要とする情報は、Board_V*ディレクトリに提供されます。
概略図で理解してください。私はそれが醜く、必死に複数の部分に分割する必要があることを知っています。覚えておいてください、これは私の最初のPCBデザインです!

ボードV5レイアウト
便利なため、可能な限りすべてのデバイスにTasmotaを使用します。 TasmotaはLoraを処理できないため、これらのデバイスではMicropythonを使用しています。
Webインストールリンク
Tasmota画像の「センサー」バージョンをインストールしてください。
このREADMEの上部にあるV4デバイスのTasmotaスクリーンショットをいくつか紹介します。
| 
以下は、コントロールインターフェイスのデフォルトから変更した主な設定です。これらおよびその他の設定については、こちらをご覧ください。
メモ
POWER2 ONを追加しますRelay 2ではなくOutput Hiように設定します。その後、Tasmotaのブートプロセスの早い段階で高く設定され、マイクロコントローラーが深い眠りにつくと、オフになります。私のLora Micropythonソフトウェアと手順をご覧ください:https://github.com/brev-dev/lora_esp8266_sensor_mqtt_bridge。
このリポジトリではカバーされていませんが、これらのデバイスが私の完全なホームセットアップにある場所に関する簡単なメモを以下に示します。
私のホームセットアップは、これらの目標を達成するように設計されています。
各部屋で温度制御を可能にするために、ラジエーターはTasmotized ESP8285スマートプラグにプラグインされます。
「ハブ」は、蚊、ノデル、流入dB、およびグラファナを備えたラズベリーPI 4です。たとえば、Homeassistantなどの多くを置き換えることで、私の節点のフローはおそらく単純化される可能性がありますが、私はそれを検討していません。 InfluxDBとGrafanaの組み合わせは、携帯電話の「MQTT Dash」アプリとともに、履歴データを保存および視覚化するために使用され、現在のステータスを監視し、温度と湿気のトリガーレベルを変更します。 RPIソフトウェアスタックは、構成とメンテナンスを容易にするためにDockerとIoTStackを使用します。 Andreas Spiessには、#255、#295、#352など、このトピックに関する素晴らしいビデオがいくつかあります。


