SSブログ

ESP8266を使った猿検知通報システム親機の製作

猿検知通報装置の製作」では試行錯誤が多かったので親機にプログラミングの安易なRaspberry Pi3 を使ってきましたが、ソフトウェア的コンセプト(必要機能)も固まったところで 安価なMPUであるESP8266を使った親機を製作しましたので紹介致します。
(2020.08.29)
オリジナルの親機は20文字x4行のLCD表示器を使っていますが、16文字x2行のLCDを使ったものを作りましたので「8.16x2文字LCD親機の製作」で追記しました。
(2021.05.21)
ESP32を使った親機についてはこちらをご覧ください。

--- 内容 ---
1. 機能概要
2. 回路図と説明
3. 装置の製作
4. TWELITEの設定
5. ソフトウェア
6. 使用・設定方法
7. 後記
8. 16x2文字LCD親機の製作


1. 機能概要

写真_検出時画面.png

基本的機能は 最大8個の子機から無線(MONO Wireless社 TWELITE DIP) で送られてくる検出信号に応じて親機では 赤LEDの点灯、アラーム音発報、検知ポイント情報のLCD表示をすることです。また、アラームをメールで送信することや検知記録をファイルに保存する事も可能です。
(2019.08.08記 現在ほとんどのメールサーバーはセキュリティが強化されていて、当ブログで提供しているプログラムではそれらのサーバーに直接メール送信できません。ここではRaspberry pi を仲介した方法で提供しています。「ESP8266 から raspberry pi 経由でメールを送る」を参照願います。)
(2019.10.04記 最近so-netサーバーは 以前のように非暗号化SMTPでも送れています。)

機能のより詳細については「ESP8266 猿検知通報システム親機 取り扱い説明」 p2 を参照ください。


2. 回路図と説明

親機システムの基本は「ワイヤレスセンサー端末の製作」で紹介したものですが、ESP8266を搭載する「ESP-WROOM-02開発ボード」(ESPr Developer) は 今回はArduino Uno同一形状品ではないタイプを使いました。また、「ワイヤレスセンサー端末」で作ったものはESP-WROOM-02 基板が他の基板で囲まれた内部にあり WiFi通信上あまり良い構造ではなかったので、今回は最上部に置くようにしました。
これらに伴い回路ならびに基板構成を変更しました。

ESPr タイプと位置.png

図1にブロック図を、図2~図4に回路図を?します。

図1 ブロックダイヤグラム
図1_ブロックダイヤグラム(Saru).jpg

図2 BOTTOM基板回路図
図2_BOT基板(Saru)(1).jpg

図3 MID基板回路図
図3_MID基板(Saru).jpg

図4 TOP基板&LED基板回路図
図4_TOP&LED基板(Saru).jpg

モジュール類回路図はこちらを参照願います。 => 参照

BOTTOM基板
・ESP8266の負荷変動で5Vにノイズが生じ LCDバックライトがフリッカーを起こしたりオーディオ回路のノイズがスピーカーから出て耳障りなので、4.5Vのレギュレータを入れてLCDバックライトとオーディオ回路の電源にしています。

・LCDバックライトが平常時明るいと目障りなこともあるので、ある時間経つと暗くするかOFFする機能を追加しました。BKL2は暗くするモードの制御ラインで、輝度はボリュームで調整できます。
また、LCDがOFFすると本体に電源が入っているかどうかわかりづらいので緑LED のPower indicatorをLCDに取り付けました。(「基板製作」に改造方法を記載)

・キャラクターLCDには5V系のものを使いI2C->パラレル変換は PCF8574を使ったモジュールを使っています。もしLCD I/FモジュールでI2C pull-upが5VになっていたらPull-up抵抗を外してください。ESP-WROOM-02は3.3V系なので傷めてしまいます。

・VO調整(コントラストらしい)は元々PCF8574のモジュールにありましたが、基板を組み合わせると調整できないのでBottom基板上に回路を作りました。

MID基板
・コントローラーには「ESP-WROOM-02開発ボード」(ここでは以後 ESPr One と呼びます。スイッチサイエンス社製)を使っています。
(ESPr One にはArduino Uno同一形状のものとそうでないものがあります。今回はUno同一形状でないもの(2,000円程度)を使っていますので注意してください。)
ESPr Oneは、「"ESP8266 WiFiマイクロチップ"を搭載した "ESP-WROOM-02 WiFiモジュール"」 を搭載した開発ボードです。このESP8266チップはMPU機能も持っていますので、それをプログラムすることでDIO制御やUART通信などの処理を行っています。

・ESPr One上のESP-WROOM-02のUART RXDは FT231からのTXとTWELITEからのTXをスライドスイッチで切り替えできるようにしてあります。PCからプログラムを書き込むときは FT231側、通常使用するときはTWELITEからのデータ受信側にします。 改造方法については「 基板製作 」を参照してください。
ESP-WROOM-02のUART TXDラインは切り替えを行わず常時FT231とTWELITEにつなげておきます。これによってプログラム動作中のSerial出力(Serial.print)はPCのシリアルモニターで表示可能になります。

・PCA9622はESPr OneからI2CでLED点灯とMelody ICの電源を制御します。

・PCAL9555は押されたスイッチのコードをI2CでESPr Oneに送ります。

・Mute、Melody、Buzzer信号は夫々の出力トランジスタのコレクタを一つのコレクタ抵抗につないだOR構成にしてあり、Buzzer, Melodyの選択はソフトで行い、MuteするときはMute出力TransistorをONしてGNDに強制クランプします。

・AMP NJM386の許容入力範囲を超えないように、抵抗分割とボリューム範囲設定をしてあります。
出力側の回路定数はスピーカーによって異なりますので、NJM386の仕様書を参考に決めてください。

・Melody ICは2つ搭載して曲を選べるようになっています。

TOP基板
・スイッチの端子間に入れるコンデンサーはスイッチに近い場所に置いてください。PCAL9555のピン近くに置くとリンギング電圧がICの許容入力範囲を超え、ICを損傷する可能性があります


3. 装置の製作

基板の構造と組み立ての様子を写真でまとめたものを作りましたので参照ください。

基板製作 => 参照
組み立て => 参照


4. TWELITEの設定

センサーユニットの電源を親機から制御するために親機のTWELITEのプログラムは改造したものを使います。(「猿検知通報装置の製作(電池寿命改善品) 3.TWELITE DIPプログラム改造」参照。)
下記よりダウンロードしてTWELITEに書き込んでください。
(書き込みにはTWELITE R が必要です。)

=> ダウンロード

センサーユニットの電源制御を行わない場合は標準インストールされている標準アプリ(App_Twelite)がそのまま使えます。

基本的には親機の場合インタラクティブモードでの設定はしなくてもよいのですが、子機のチャンネル設定やアプリケーションIDなどが変更されている場合はそれに合わせて親機側でも変更が必要です。
インタラクティブモードの説明は下記にアクセスしてください。
https://mono-wireless.com/jp/products/TWE-APPS/App_Twelite/interactive.html


5. ソフトウェア

ESP8266のプログラムと書き込みはArduino IDE を使って行うことができます。 IDEインストールの手順を「ESP8266用にArduino IDEを使えるようにする」にまとめましたので、必要に応じて参照してください。

ソフトウェアは基本的には「ワイヤレスセンサー端末」を流用改造して作りました。
プログラムの変更・修正のために役立てられるようプログラムの構成を作りましたので参考にしてください。
プログラムの構成 => 参照

プログラム(設定ファイル含む)=> こちらから ダウンロード(2020.11.26 更新)
こちらの修正を適用願います。=> 参照 (2021.10.03更新)
こちらの修正も適用願います。=> 参照 (2021.10.03追加)

Raspberry Pi経由のメール送信を行うにはRaspberry pi側の設定が必要です。こちらを参照願います

なお、このソフトは検証が不十分でまだバグが出てくると思いますので、動作保証はいたしかねます。
今後のアップデートは私自身の都合にて(自分で使用する機能で不具合が見つかり修正が必要な時)行いますので、使用される方は機能のコンセプトをご理解いただき ご自身で修正していただけますようお願い致します。


6. 使用・設定方法

本機の使用方法と設定方法は下記を参照願います。

取り扱い説明 => 参照
設定(Config)ファイルの作り方(Saru4.0以降) => 参照
設定(Config)ファイルの作り方 =>参照

WiFiが繋がらないケース => 参照 <2020.07.25追記>


7. 後記

これまでコストを計算したことはなかったのですが、今回作ったESP8266を使った親機と以前作ったRaspberry Pi3を使った親機の凡そのコストを出してみました。(表1)

表1
表1_親機コスト(1).jpg

結論から言いますと両者にはあまり差がありませんでした。
ESP8266を使った場合には追加する構成部品にモジュールが数点あり、それがコストを上げたものと思います。(企業が商品化する場合にはモジュール内の部品レベルで使うのでコストはかなり違うと思いますが。)
製作の手間で見れば、 ESP8266を使った方はモジュール間をつなぐ配線の作業やケースのボタン穴加工など多く圧倒的に大変です。
しかしこの類の装置は電源を入れるとすぐに立ち上がり 操作も簡便なESP8266を使ったシステムの方が比較的誰にも使えてよさそうです。

(2020.08.29追記)
8. 16x2文字LCD親機の製作

16x2LCD親機.jpg

手元に使っていない ESPr One 、16x2文字LCD, プラスチックケース、Micro SD ドライブなどがあったので、何か作って片付けてしまおうと思い猿検知通報システムの親機を作ってみました。
手持ちのプラスチックケースに強引に収納したのでまさに切った貼ったの構造になってしまい、作るのが大変なのでとても他人にお奨めできるものではありませんが、ケースを変えたり回路の基板アロケーションを変えたりすれば製作も難しくないと思います。( ESPr One はArduino Uno同一形状品でないものを使えばスペースを結構有効に使えると思います。)
ソフトウェア的にはLCDの表示が20x4 から 16x2 になったので表示方法やメニュー構成などの変更が必要になり、これが結構手間でした。表示機能以外は20x4文字LCD版と同じ機能を持っています。
関連資料は以下で参照、ダウンロードできます。

回路図
製作写真
ソフトウェア ・・・ 修正適用願います。=> こちら1 と こちら2
使用方法
設定(Config)ファイルの作り方

<追記>
<2019.09.10>
ESP8266を使った親機をRaspberry pi を使った親機の代わりに数か月使用してもらったのですが不評でした。
1つ2つのセンサー数ならまだよいのですが、4つ以上あると ちょっと離れて親機を見た場合にどのLEDが発光しているのか視認しづらくて対応するセンサーの番号がすぐにわからない上に、LCDの文字表示も少し離れると見づらく、しかもカタカナ表記では読めないそうです。
一方、Raspberry pi の場合はグラフィック表示でセンサーの位置関係を示してあるので一目でセンサー場所がわかってよいということです。
こういう事で 結局親機はRaspberry pi を使ったものに戻すことにしましたが、ESP8266を使ったものも使い方によっては有用であると思いますので参考にしてください。


===== 関連記事 =====
猿検知通報装置の製作
猿検知通報装置の製作(電池寿命改善品)
猿検知装置用センサーの代替品
猿検知通報装置 新子機製作
太陽電池を使った動物センサー子機の製作
猿検知通報装置関連まとめ

---親機製作---
Raspi3&3.5"Monitor一体型ユニットの製作
Arduino Nano互換機を使った簡易型親機の製作
ESP32を使った猿検知通報システム親機の製作
ESP32 & 2.8" G_LCD一体型ユニットの製作(2)


>> ブログ記事一覧へ
nice!(0) 
共通テーマ:趣味・カルチャー

nice! 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。