2021/04/18(日)

ESP32-WROVER-EでMQTTSを試してみた


新型コロナウイルス、緊急事態宣言が解除されワクチン接種が広がるまでの間は経済も重視でハンマー&ダンス方式かと思っていたのですが、変異株の流行を抑えられずダンス期間も取れない想定外な状況でしょうか。まん延防止等重点措置対象地域が増え、再度緊急事態宣言クラスの制限がありそうな状況。もうすぐやってくる今年のゴールデンウィークも去年と同じかと思いつつ。宣言解除後の通勤経路の混雑具合からしても然もありなんと思わなくもないわけですが。
繰り返しになりますが、普段どういう行動をしている人がどういう行動をして感染しているのか豊富な情報が欲しい所です。日々の感染者数だけでは気を付けようにもなぁ。
外出自粛ついでに前から試したかった事に時間を割くことに。
産業用プラント等で利用されているらしいMQTT。利用する機会がなかったので試してみる事に。
MQTTSはMQTTにTLSの機能を付加したもの。
今回はエッジデバイスとしてESP32-WROVER-Eを利用。
なぜESP32-WROVER-Eを利用したかと言われれば、WiFi機能を搭載しているESP32系で新しめのデバイスだったから(平日の夜中に深く考えずに注文)。 Cで開発した方が高速で安定動作するイメージがあるわけですが、MQTTを利用して新たに作りたいものがあるわけではなく試すのに時間をかけたくないのでESP32-WROVER-EをArduino化。UARTでCO2センサーと接続、値を取得してMQTTブローカーにPublishする所まで。 サーバ側でMosquittoを利用してサーバをbrokerに。クライアント側はPythonでpahoライブラリを利用してSubscribeまで。
対応したライブラリがなくとも、Web系言語であればWebSocket経由で何とでもといった感じでしょうか。
TCP/IPで独自実装するよりも汎用性を考え、IoT絡みで何か作るモノがあれば今後はMQTTS(MQTT)ベースにしようかなぁその方が楽だなぁと思った次第です。


2021/04/04(日)

Raspberry Pi PicoでW5500


Raspberry Pi PicoとW5500搭載モジュールで時刻を取得してみました。OLEDへ表示まで。
DHCPとDNS部分は既にSTM32系で実現、利用していましたが、NTPサーバから時刻を取得するのは初だったのでメモがわりの記録。
全てUDP通信、IPv4で実現。
1-1. 68番ポートで67番ポート宛、DHCPのDiscoverパケットをブロードキャスト。
1-2. DHCPサーバ(一般家庭では普通はルータ上で稼働)からの返信Offerパケットを受信し、IPアドレス、ネットマスク、デフォルトゲートウェイ、DNSサーバの情報を取得。
1-3. DHCPのRequestパケット(IPアドレスを返信)をブロードキャスト。
1-4. DHCPサーバからの返信Ackパケットを受信し、IPアドレス、ネットマスク、デフォルトゲートウェイ、DNSサーバの情報をモジュールに設定。

2-1. DHCPで取得した通信先、DNSサーバに対して53番ポート宛、NTPサーバ(今回はntp.nict.jpを利用)のIPアドレス問い合わせパケットを送信。
2-2. DNSサーバから問い合わせ返信パケットを受信、NTPサーバのIPアドレスを取得し通信先としてモジュールに設定。

3-3. DNSで取得した通信先、NTPサーバに123番ポートで123番ポート宛にパケットを送信。
3-4. NTPサーバからNTP返信パケットを受信し64ビットNTP TimeStampのうち、秒部分の32ビット(1900年1月1日 0時0分0秒からの経過秒数)を利用、うるう年等を計算して時刻を表示。


2021/03/14(日)

スノーパーク イエティ


スノーパーク イエティへ行ってきました。
家族で自家用車を利用しての日帰りスキー、スノーボードは新型コロナウイルスの感染リスクが低いと判断。無症状感染者だった場合に感染させてしまうリスクも然り。(県境を越えますが場所柄、首都圏ナンバーの車も多い情報を入手)
個人的に新型コロナウイルスに関しては、普段どういう行動をしている人がどういう行動をして新型コロナウイルスに感染しているのか具体的な豊富なデータが欲しい所です。具体的なデータが少ないので個人でリスクを判断せざるを得ない状況。
冷静に予想するとすれば、スキーやスノーボードは若者の比率が高そう、昔と比べて外国人比率が高そうという点では感染リスク上げ要素となるかもしれませんが、ウェアは基本重装備ですし、屋外個人スポーツであり、リフト等混雑していなければリスクは低いかと。飲食は注意するとして、少なくとも通勤電車よりはリスクは低いはずです。時期を鑑みて混雑するかしないかの先読みは必要でしょうけれど。
昨年末は上の子を連れて13年ぶりに群馬県のたんばらスキーパークへ行きました。下の子もスキーをやってみたいとの事だったので、近くて気軽に行けそうな場所を探した結果。割安なキャンペーンも後押し。首都圏を主要顧客としていそうなスキー場、例年に比べて大変でしょうし応援の意味も含めて。
もうすぐシーズンオフという時期だった事もあって大半が人工雪という感じでしたが子供のような初スキーにはちょうど良いスキー場でした。リフトだけではなく、動く歩道的なものもあり。がっつり長距離、急斜面を攻めたいといった場合には不向きですが、軽く楽しみたい場合には良いのではないでしょうか。


2021/02/23(火)

Raspberry Pi Pico


新型コロナで緊急事態宣言下。何れ購入するでしょうし、どうせ巣ごもりするのならとRaspberry Pi Picoを購入してみました。
Raspberry Piと名前がついていますが、今までのシリーズとは違ってLinuxは動作せず(有志がUnix系OSを移植しようとしているとかしていないとか)。SDカードではなくRaspberry Pi Picoに直接プログラムを書き込む形です。
ピンヘッダすらついていません。必要であればピンヘッダを別途購入してはんだ付けをする必要があります。1個の価格が500円程なのが一番の魅力でしょうか。あとはメモリに書き込む方式なので故障耐性が高そう。
Nucleo等のSTM32系(BluePillを含む)に近いのかと。現状はArduinoより敷居は高い気がします。
Raspbery Pi Picoのチュートリアルを見た限りでは、WindowsやMacでプログラムをビルドしUSB経由でRaspberry Pi Picoに書き込む事もできるようですが、メインで使用しているPCの開発環境をあまり汚したくなかったりします。Raspberry PiやLinuxの知識が必要ですが、Raspberry Pi 4にUSBケーブルでRaspberry Pi Picoを繋ぐ方式が一番良さそうな気が。この方式であれば手元の開発環境を汚さないのは勿論、Windows、Mac、Linuxに限らずSSHが利用できるあらゆるプラットフォームで開発ができるのではないかと。
現状、プログラミング言語としてMicroPythonを利用する場合はインタラクティブに実行する方式で、C/C++を利用する場合はビルドして書き込んで実行する方式のようです。
とりあえず試してみたのはWindows PC上、Visual Studio Codeを使ってCでプログラムを作成、Raspberry Pi 4上でビルド、Raspberry Pi 4からRaspberry Pi Picoに書き込み実行まで。
Raspberry Pi Picoのような開発ボードはセンサーで値を取得してOLEDで表示を多用しそうなのでI2CでOLEDの動作確認をしてみました。特に問題ないようです。
ちなみに画像のIDCF Cloudのブレッドボードは何時だったか忘れましたがMaker Faire Tokyoのブースでノベルティとして貰ったものだったかと。少し小さいのでボード上に色々回路を組むのは厳しいですが、ピンヘッダをはんだ付けするのに重宝しています。


2021/02/11(木)

Cisco AIR-CT2504-25-K9


Cisco SystemsのWireless LAN Contorllerを手に入れました。
中古品です。正規の価格からすれば二束三文、5年経過のリース引き上げ品かな?
首都圏をはじめ都市圏は新型コロナウイルス対策で緊急事態宣言。休日に外出自粛で基本自宅に籠るにしてもただダラダラ過ごすのはもったいないという事で購入、試してみることに。
ライセンスを確認したら25アクセスポイント対応だったので正式型番はAIR-CT2504-25-K9。
インターネット上で確認してみた程度ですが、法人向けという事もあり発売当時の参考標準価格は766,000円だったようで。
個人では普通買えない買わない価格。10年位前から欲しい機材の1つだったわけですが、当時は中古で出回っている数は少なく(今でも中古で出回っている数は少ない気がしますが)中古でも安くはなかった気がします。スマホが普及して行くにつれ重要度が増すだろうし、技術的興味から自前で0から構築できる程度の知識は持っておきたいという感じだったわけです。
中古価格が下がったのは、vWLCや新しいアクセスポイントであればMobility Expressがあるからでしょうか。
vWLCを永続的に使用するためのライセンスやMobility Expressに対応したアクセスポイント(中古品含む)を複数購入するよりは既にAironetを持っていればAIR-CT2504-25-K9の中古品の方が安いわけですが。
TFTPサーバをたてて過去に使っていたCisco Aironetを自律型から集中管理型に変更。試してみましたが、EOLを迎えてだいぶ経過するモノは動作しませんでした。ひとまず、現用と一つ前につかっていたモデルは問題なくWLCの管理下で動作する事を確認。
Cisco Systemsの機材、Firewall(ASA)、Router、Switch(Catalyst)、IP Phone、Aironet、そして今回Wireless LAN Contorller。EOLを迎えたIP Phone等使わなくなった機材もありますが一通り自宅に揃えてみた事になります。
ちなみにあとCiscoのサーバが残っていますが、サーバは・・・他のメーカー品とそんなに変わらないイメージ。
AIR-2504-25-K9、筐体のサイズ的にファンレスかと思っていたのですが、割と静かめのファンを搭載。ファンレスではなかったのが残念。常用するかは悩み所です。
久しぶりにブログタイトルに合致したネタでした。


Blog

CCNA(Cisco Certified Network Associate)取得を目指している取得した取得後有効期限満了したぎりぎり20代30代突入30代30代後半40代突入管理人のブログです。

Google Maps API

googlemap.jpg
地図 ブログ

 

Twitter

Recent Entries

Category

Monthly Archives