忍者ブログ

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

にわかもすなるIoTといふものを(その2)

さて、前回ESP-WROOM-02をプログラムする準備ができたので早速いじり倒す。

あ、Arduino IDEやESP8266環境コアのインストールについては検索すればいくらでもヒットするので省略。ダウンロード時間含めても数十分で終わります。マジ簡単。
あとArduino言語についてもCやC++の知識がちょっとあればすぐにスケッチ(Arduinoユーザープログラム)を書いたり理解したりできると思います。斯く言う私も事前に調べずいきなりインストールしましたし。

そしてESP8266環境コアに付属の作例や検索でヒットした先人の足跡を辿りつつ定番のLEDチカチカやらWebサーバ化やらやってみる。

Arduino IDE /w ESP8266
高々十数行コーディングした程度で\1000もしないIoTデバイスが手近なWi-Fiアクセスポイントに繋がってIPアドレスを受け取り、小規模HTTPサーバーが動作する。
Webブラウザ上のボタン操作で離れた場所のLEDがオンオフできるのはなかなか楽しい。身の回りの照明や家電機器の電源をPCやスマホから操作したいなら、ここからLEDを適当なフォトリレーなどに置き換えて電源ケーブルに割り込ませればいいだけだ。むしろESP-WROOM-02それ自体の電源をどうするかといったことの方が面倒になってくる。

で、そうこうやっているうちに少しばかり問題も見えてくる。私のPCはWindows 7機なのだが、これだとWi-Fiの向こうのESP-WROOM-02を指定するのが優しくない。向こう側がSoftAPモードならばDHCPサーバが動いているのでDNSサーバを追加して好きな名前を騙らせたりCaptive PortalでWebブラウザ表示先を引き込んだりできる。そこまでしなくともDHCPサーバ稼動の都合上、IPアドレスは固定である。
ところがステーションモードだとWi-FiアクセスポイントからIPアドレスが動的に割り振られるので別途調べなければならず実に面倒くさい。そういうわけで名前問い合わせに個々のIPアドレスを応答させるmDNSレスポンダが用意されているのだが、標準でmDNS問い合わせをしてくれるのはMacとWindows 10だけ、Linuxとかは必要なものを各自入れて使うのが文化だからいいとしても、Windows 7とかで遊んでいる筆者のような人はこれで不便だとは思わないのだろうか…

どうやら、ESP8266でArduino開発している人は皆
  • MacかWindows 10、あるいはLinux使いである
  • あるいは別途mDNSレゾルバ(Bonjourとか)をわざわざインストールしている
  • ステーションモードでHTTPサーバなどを動かさず、クライアント動作に徹している
のいずれか一つ以上に合致しているらしい(苦笑)

冗談はさておいて、私は天邪鬼なのでWindows Vista以降が実装しているmDNS類似プロトコルであるLLMNRのレスポンダをESP8266上のArduinoに実装してしまうのでした。
(当然として先人の成果物がないか散々検索したがまともな結果がでてこない…IETFにも冷たくあしわられてRFCもinformational扱いでしかないのでお察しとも)

GitHub - ESP8266-based Arduino LLMNR responder
とりあえずGitHubで公開してみました。どうぞご自由に(MITライセンス)。

つかいかた。
  1. スケッチに追加
  2. LLMNRResponder型のインスタンスを確保
  3. 自機のIPアドレスが決まった後に↑のbeginメソッドに応答したい名前を渡す

拍手[0回]

PR

にわかもすなるIoTといふものを(その1)

世の人曰くIoTが流行っているとのことで、乗るしかない このビッグウェーブに(笑)

ま、前々から興味はあったんですが。というわけで色々と秋月で買い込む。

AE-ESP-WROOM-02
秋月電子通商 AE_ESP-WROOM-02 [K-09758]
みんな大好き、技適取得済み格安中華Wi-Fiモジュール。私はへたれなので2.54mmピッチに変換されたやつを使う(笑)
こいつにはそれなりの規模のMCUが乗っててファームウェア次第では単独で自己完結したWi-Fi機器にできるとのこと(ご丁寧に開発元から公式開発キットが公開されている)。既に有志によるArduino互換の環境コアができていて、簡単にArduino IDEに統合してすぐに使い始めることができる。
ちょっと前までは試作MCUボードで無線LANを(ひいてはTCP/IPを)扱おうとすれば多大な手間とそれなりのパーツ購入が必要だったのがまるで嘘のようだ。

ちなみに、上記\650也。モジュール単品だと\550、10個買えば@\450。2.4GHzの風が語りかけます…安い、安すぎる(笑)

お次はMCU開発に欠かせないプログラマ。人の役割のことではなくて所謂書き込み器。

Programmer-FT231X
大概はシリアル通信でファームウェアを突っ込むんですが今時のパソコンにシリアルポートなんぞないのでUSB-シリアル変換ICででっちあげる。
秋月電子通商 FT231XS [I-06713]
一応これにもピッチ変換モジュールがあるんだけど割高なので手持ちのパーツで自作する。3.3V電源の能力不足で動作が安定しない事例が散見されるので別途LDOを載せてそちらから供給することに。

あとプッシュ式のターミナルブロックが地味に便利。マジお勧め。
秋月電子通商 プッシュ式ターミナルブロック一覧

で、後は件のAE_ESP-WROOM-02をブレットボードに置いてプログラマと結線すれば…なのですが、何点かプルアップ/プルダウンしてあげないと駄目なのと、個人的にブレットボードにごてごて盛るのが好きじゃないので開発ボードもでっちあげる。

ESP8255-DevBoard
見てくれはアレですが、手動リセット/モード選択スイッチに加えてNodeMCU相当のリモートリセット回路も組んであります。

もうね、C型ユニバーサル基板さんが大活躍(笑)

次回に続く…

拍手[0回]

カレンダー

04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

フリーエリア

最新コメント

プロフィール

HN:
jjsuwa
性別:
非公開

バーコード

ブログ内検索

P R