IToTの覚え書き

マイクロビット、アルドゥイーノ、ラズベリーパイなどで楽しい道具を作る趣味のサイトです。 基本的に自分用の覚え書きです。

2019年02月

WINGONEER UNO R3 D1 R32 ESP32 ESP-32 CH340G開発ボードDual-Mode WiFi Bluetooth Arduino用マイクロUSB搭載の4VDC DC 5V-12V
https://www.amazon.co.jp/gp/product/B07HC4X6Y8/
価格: ¥ 1,699

1.Arduino IDE環境設定で以下を追加。
https://dl.espressif.com/dl/package_esp32_index.json

2.ボードマネージャで以下を追加。
est32 by espressif Systems

3.ボード選択
ESP32 Dev Module

4.ボード設定(デフォルトのまま)
ボード: "ESP32 Dev Module"
Flash Mode: "QIO"
Flash Size: "4MB (32Mb)"
Partition Scheme: "初期値"
Flash Frequency: "80MHz"
PSRAM: “Disabled”
Upload Speed: "921600"
Core Debug Level: なし
シリアルポート: ご自分のUSB(COM)ポート
書込み装置: USBasp

DHCPサーバー機能を使用し、特定の端末に常に同じIPアドレスを割り当てる方法
https://www.buffalo.jp/support/faq/detail/15917.html

Google homeなどはDHCPしかIPを受け取れず、固定アドレス取れない。
固定したほうがいろいろ便利なのでルータの方で設定する。
うちでは192.168.11.101から64台のDHCP割り振り設定になっている。
IPアドレスをMACアドレスとひも付けするリース情報を設定すればいい。
AIrStation画面から「LAN-DHCPサーバ-リース情報」から「手動設定に割り当て」とするか、192.168.11.101をGoogle homeのMACアドレスとするリース情報を「新規追加」する。

このやり方だと、あとでAmazon echoなど追加するときにも使えそう。

ガスセンサーのアナログ値をD1のWiFi機能を使って自宅のWebSeverにリアルタイムで書き込む。
自宅サーバにはファイルメーカーWebコンパニオンでデータベースを用意した。とくにHTMLファイルは用意せず、直接ファイルメーカーにデータを書き込む。

スケッチはスケッチの例のESP8266ClientのBasicTHHPClientを参考にして改造した。
センサーが暖まるまで10秒待って、計測開始。
D1はWiFi経由でDHCPからIPを受け取り、自宅のサーバに接続して10秒毎にガスセンサーの値をファイルメーカーに送る。

594円のD1ボードを使う。
ESP8266のUno互換ボードだ。
https://www.amazon.co.jp/gp/product/B0739YKWSH/

例えばガスのアナログデータをサーバに送るなら、D1側はWebクライアントでよく、読み込むライブラリは#HTTPClientでIPも固定の必要がないのでDHCPで構わない。
しかし、外からの命令を待ち受けるならWebサーバが適当で、ライブラリは#WebServerなのでIPは固定でなければいけない。
(例えるなら、HTTPClientはセンサーの値をサーバに送る感覚神経、WebSercerはサーバの値をモーターに送る運動神経だ。)

スケッチ例のESP8266WebServerのHelloSeverを使う。
静的IPアドレスはそれに1行書くだけ。
例えば、D1のアドレスが192,168,11,11、ルータのアドレスが192,168,11,1、サブネットマスクが255,255,255,0なら、
WiFi.config(IPAddress(192,168,11,11),IPAddress(192,168,11,1),IPAddress(255,255,255,0));

さて、これでD1のローカルアドレスが192,168,11,11に固定されたが、外からこれを見るにはグローバルアドレスに変換しなければいけない。
もともとサーバにはWHR-HP-GがついていたのだけれどD1ボードを上手く無線がつながらないのでWHR-HP-300Nに変えた。そのルータの設定で、ポート番号50011をローカルアドレス192,168,11,11に対応させることにした。
たとえば、
グローバルアドレス:50011ならローカルアドレス192,168,11,11
グローバルアドレス:50012ならローカルアドレス192,168,11,12
グローバルアドレス:50013ならローカルアドレス192,168,11,13
・・・
という具合にした。

50000台にしたのは自由に使用できるポート番号は49152~65535と決まっているからだ。
これで外から家の電源を簡単に操作できます。

Pi本

用意するもの。USBキーボードとUSBマウス、HDMIケーブルとモニタ、microSDカード

SD Memory Card Formatter for Windows Download
いちおうmicroSDカードはこれでフォーマットしておく。

NOOBSをダウンロードして、解凍してmicroSDカードにいれる。
それをラズベリーパイに刺して起動すれば自動でインストールされる。

インストール後3.5 インチ LCD モニターを付けた。
モニターのドライバインストールにはLANケーブルとインターネット環境が必要。
For Raspberry pi ディスプレイ 3.5 インチ LCD モニターTFTスクリーンタッチスクリーンそしてfor raspberry pi 3 model b+ ケース ヒートシンク
マニュアル通り、
$ git clone https://github.com/goodtft/LCD-show.git
$ chmod -R 755 LCD-show/
$ cd LCD-show/
$ sudo ./LCD35-show
の4行を実行するだけ。
再起動したら、LCDモニタにデスクトップが表示された。

↑このページのトップヘ