ESP8266とESP-WROOM-02
Wikipediaでは、ESP8266は 「上海に拠点を置く中国企業Espressif Systemsによって製造されている完全なTCP/IPスタックとマイクロコントローラを備えた低コストの小型Wi-Fiモジュール」とにある。このように、ESP8266 WiFi付きの32ビットマイクロコントローラである。
これのすごいところは、高性能32ビットMPU(マイクロプロセッサー)でWiFiが付いているので、配線コストもかからず、しかも低価格であること。
このESP8266MPUを組み込んだモジュールをESP-WROOM-02と呼び、1個400円程度で購入できる。
STM32からESP-WROOM-02へチェンジ
STM32でソフト開発済みであった水道メーター用モニタープログラムをESP-WROOM-02へ移植した。
C言語からARDUINOと言うMPU用のSDK(SoftwareDevelopmentKit)を使用するため、少々移植に手間取ったが、約3日かけて安定した動きとなった。(これはかかり過ぎと思う)
なぜなら、ARDUINO用SDKでは非常に簡単にプログラミングが出来るようになっている反面、多くの関数等がカプセル化させており、サンプルプログラムや実績のあるプログラムから逸脱したプログラムを作ろうとすると、その特性を知るため、裏に隠されたハードウェアからソフトウェアの詳細な仕様を知る必要が出てくるから。
特に高速の割込を処理する水道メーターのローター検出には、この外部入力による割込とタイマー割込処理が必要で、プログラム設計から見直しが必要となったためだった。
写真は、プログラム開発を終え運用中だったSTM32マイコン(左)のプログラムを、今回中央のWROOM02に移植し、本日バグ取りを完了したつもりところ。(バグは無いと言い切れないが)
配線はブレッドボードと言う穴あきボードに部品を配置し、ワイヤーで回路を作っていくスタイル。この方が、ハンダ付けするより早いし失敗の時もすぐに直せる。
中央のブレッドボード上部にはみ出している小さいのが、WROOM02で、下方にあるのが、電源部(3.3Vと5Vを供給)。
写真右上の青く光るLED部はパソコンとUSBで接続した通信部。
プログラムの転送やモニターに使うが、サーバーへのデータ送信には、WiFiを使うため、通常は接続していない。(メンテ用)