MosquittoでAWS IoT CoreにPub/Sub

AWS IoTのテストにmosquittoを使うと、デバイスの開発の際にちょっと設定をテストしたり、ちょっとハマったときにコマンドラインで検証をしたりと、何かと便利。 準備 mosquitto_pubでpublish mosquitto_subでsubscribe subscribeしながらpublishしたい場合はmosquitto_rrを使おう mosquitto_rr を使うと、subscribeしつつpublishすることができる。 たとえば、AWS IoTでの証明書の取得などでは $aws/cer

続きを読む »

ESP32-S3とMicroPythonとPSRAM

この記事では以下のような話をする。 ESP32-S3のモジュールの型番の見方 ESP32-S3-WROOMシリーズの型番はこんな構成になっている。 PSRAMを搭載していないものは最後の “R+PSRAM Size” の箇所がない。 PSRAMはQuad SPI (QSPI) とOctal SPI (OSPI) の2種類ある。2023/06/01の時点でリリースされているものは、2MBのものはQuad SPI、8MBのものはOctal SPIとなっている。型番でいうと、末尾に &#8

続きを読む »

ESP32+MicroPythonでPWMのdutyが反映されずにハマる

ESP32 + MicroPythonで、PWMオブジェクトを生成した直後にdutyをセットすると、なぜか反映されずにdutyが100% (常時HIGH) になってしまうという問題に遭遇し、ちょっと困った。再現性は不明。毎回ではなく何らかの条件が揃ったときに発生し、同じコードでも発生したりしなかったりする。原因はよくわからないが回避策がわかったので共有する。 なお、今回したMicroPythonのバージョンは1.19.1である。 ESP32+MicroPythonでPWM まずは基本の話。MicroPyth

続きを読む »

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 Contents MicroPythonというのはどんなものか まず、Mi

続きを読む »

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事情についても書く。 Contents 動いているところを見てみよう! クライアント編 前編でサンプルスケッチを試したときの様子をWiresharkでキャプチャしてみた。 クライアントとして使用したPCのIPアドレスが192.16

続きを読む »