MicroPythonで複数の候補の中から最もRSSIの大きいネットワークに接続する

MicroPythonで開発する場合にちょっと便利なコード。いつも同じ場所で開発するならいいが、よそに持っていく機会があったり、複数の場所で開発を進めたりするとき複数の候補の中から最もRSSIの大きいネットワークに接続できるようにしておくと捗る。 まずこんな感じでSSIDをパスワードのペアのリストを定義する。 その中から最もRSSIの大きいものに接続する。 起動時にこれが実行されるようにしておけば、スキャンして見つけたネットワークの中で preferred_networks に含まれるもののうち、最もRSS

続きを読む »

ブラウザでAWS IoT CoreにMQTTでPub/Subしたい場合にやるべきことリスト

「WebブラウザでAWS IoT Coreに接続してMQTTでPub/Sub」する場合の流れをまとめておく。 具体的なソースコードとかは載せない。「やってみたいけれどどうすればいいのかわからなくて途方にくれている」「情報が多すぎて、実際にどれとどれをやれば良いのかがわからない」「心が折れそうだ」という場合のひとつの指針として役立つのではないかと思ってここに書いておく。さまざまな技術的アプローチがあるのだが、「こんな方法もあんな方法もあるよ」と話を広げず、「この手順でやればひとまず出来る」という流れをできるだ

続きを読む »

MicroPython + WebREPLでファイルシステムを弄る

まず読むべきものは MicroPythonの “os” クラスのドキュメントである。基本的にファイルシステム関係はこのクラスで取り扱うことになる。 os – basic “operating system” services — MicroPython 1.19.1 documentationhttps://docs.micropython.org/en/latest/library/os.html#filesystem-access 基本操作 使う前に、まずimportする。 importしないと &#8

続きを読む »

ESP32-DevKitC + MicroPythonを試してみた

Wi-FiもBLEも使えて開発もしやすいとっても素敵なマイコンESP32のプログラムを今までCとC++で書いていたけれども、MicroPythonという便利なものがあるということで試してみた。最初はけっこう面倒だったので記録を残しておく。すべてmacOS上でやっている。 今回使ったボードはこちら。 ESP32-DevKitC 秋月電子でも買えるよ! ESP32-DevKitC-32E ESP32-WROOM-32E開発ボード 4MB MicroPythonというのはどんなものか まず、MicroPython

続きを読む »

Raspberry Pi でNAU7802を簡単に使うためのnpmモジュールをリリースしたよ

24bit A/Dコンバータ NAU7802 をRaspberry Piで動かすためのnpmモジュールを作ったので公開した。 nau7802 – npm maripo/npm-nau7802 (GitHub repository) NAU7802は単品だと入手しづらいが、けっこうあちこちで使われていて、たとえばSparkFunでもブレークアウトボードつきで入手できる。 電圧の読み取り・チャネル切り替え・レート切り替え・キャリブレーションなどのよく使う機能がさくっと呼び出せるような内容になっている

続きを読む »

ESP8266でソフトウェアリセット

ESP8266でソフトウェアリセットをかけたい場合は ESP.restart(); を使うと良い。たとえば次のようなスケッチは、5から0までカウントダウンしてリセットするのを繰り返す。 #include <ESP8266WiFi.h> void setup() { Serial.begin(115200); Serial.println(“Start.”); } int count = 5; void loop() { Serial.println(count); delay(1000); if

続きを読む »

ESP8266でmDNS (後編)

前編ではESP8266上でmDNSを動かして “http://esp8266.local” に接続してみたけれど、それに関してもうちょっと詳しい話をする。実際どんなふうに動いているのか、PC上とESP8266側の両方から眺めてみる。そして、OSごとのmDNS事情についても書く。 動いているところを見てみよう! クライアント編 前編でサンプルスケッチを試したときの様子をWiresharkでキャプチャしてみた。 クライアントとして使用したPCのIPアドレスが192.168.1.8で、ES

続きを読む »

ESP8266でmDNS (前編)

ESP8266にはmDNSライブラリがある。mDNSというのはローカルネットワーク内でお手軽にホスト名の解決をしてくれる仕組みであり、けっこう世の中のネットワーク機器でこっそり使われている。mDNSがあると何が嬉しいかというと、例えば ESP8266のIPアドレスを知らなくても “http://hoge.local” といったホスト名を使って簡単にアクセスできてしまうのだ。 ESP8266との通信をするためにはIPアドレスを知る必要があるわけだが、それをどうやって伝えるか? という問

続きを読む »

ESP32でAWS IoTに繋いでThing Shadowを弄る(2) トラブルシューティング編

前回の記事「ESP32でAWS IoTに繋いでThing Shadowを弄る」で楽しい楽しいインターネット・オブ・シングス体験ができるはずなのだが、人生、いきなりうまくいくなんてことは少ない。うまくいかない時のチェックリストを書いておく。「AWS IoTでハマった場合の問題の切り分け」のコツでもあるので、ESP32以外を使っている場合でも役に立つかも。 AWS IoTに繋がらない! エンドポイントは合ってる? AWS IoTダッシュボードの左下の “Settings” でチェックでき

続きを読む »

ESP32でAWS IoTに繋いでThing Shadowを弄る

ESP32は便利だ。WiFiが使える。Arduino IDEでそのまんま開発できるのでコーディングもまあまあ簡単。Bluetooth Low Energyにも対応している……が、今のところライブラリが整備されていないのでそっちはあまり使っていない。ESP8266より性能はいいがまだ少し情報が少ない。このESP32を使ってAWS IoTに繋いでMQTTでPublish/Subscribeし、Thing Shadow情報のUpdateや更新の受取を行うことができたので手順を共有する。 ESP32ではAWS Io

続きを読む »