0%

Raspberry Piからセンシングデータを取得する場合もArduino Firmataと同様にNode.jsから行いたかったのですが難しそうなのでPythonに戻ることにしました。Raspberry PiのGPIOはデジタル入力しかできないのでTMP36やLM35DZのアナログセンサを使う場合はMCP3008やPCF8591などのADコンバータが必要になります。TMP36を使い温度を計測するPythonプログラムを書いてみます。

Read more »

これまでPL2303HXを搭載したUSB-TTLシリアル変換ケーブルを使っていました。電源供給が5V固定だったので3.3Vのモジュールを接続する場合はロジックレベルコンバータをはさんだり、Arduinoから3.3Vの電源を取ったりと配線が煩雑になってきました。正規品のFT232RLを搭載した3.3/5.0V切り換えスイッチ付きモジュールを安価に購入できたので配線してみます。

Read more »

手持ちのUSB-TTLシリアル変換モジュールのVCCが5Vだったので、ESP8266への3.3V電源供給にArduinoを使っていました。USB-TTLシリアル変換モジュールから直接3.3V電源が引けるととてもコンパクトに収まります。あたらしく購入したFT232RLを搭載した3.3V/5.0V切り替えスイッチ付きモジュールは、なぜかWindows 7 64bitでドライバがインストールされず認識されません。どうも模造品のチップを搭載しているようです。ショップに連絡したところすぐに正規品と交換していただきました。

Read more »

Moment TimezoneはIANAのtz databaseを使ってMoment.jsにタイムゾーン操作のAPIを追加してくれます。前回確認したMoment.jsでも+0900するとJSTになりますが自分で計算するのが面倒です。Asia/Tokyoのようにタイムゾーンを指定して変換できると便利です。

Read more »

ISO 8601のUTCタイムゾーンでtimestampが保存されたMongoDBがあります。レンジクエリを書くときにISO 8601で引数を渡していますが、UNIXタイムスタンプを使ってクエリできないか調べました。Moment.jsを使うといろいろな表記の日付をパースしたりフォーマットすることができます。

Read more »

NodeMCUのファームウェアをアップロードしたESP8266をホストマシンとUSB-TTLシリアル接続します。シリアル通信はCoolTermから操作します。ArduinoをESP8266への3.3Vの電源供給用です。NodeMCUを使うとESP8266単体でLuaを使ったハードウェア制御ができるようになります。

Read more »

ESP8266にNodeMCUのファームウェアを使うと数百円でWi-Fiが使えてLuaでプログラミング可能なマイコンを作ることができます。Node.jsからハードウェアを操作できるWi-Fiモジュールを搭載したマイコンにTesselやSpark Coreなどありますがまだまだ高価です。ArduinoからWi-Fiモジュールを操作してMQTT通信をするスケッチ作成に苦労しているのでLuaから制御ができるのはとても魅力的です。

Read more »

NodeMCUのnodemcu-flasherを使ってESP8266にWindowsからファームウェアをアップロードしてみます。NodeMCUのファームウェアはLuaスクリプトでマイクロコントローラを操作できるようです。ATコマンドで動作確認したいので前回と同様にElectricdragonのAT-0942ファームウェアで確認します。

Read more »

前回はESP8266 ATファームウェアを使いWi-Fiの接続を確認しました。ATコマンドを使って接続処理を書くのは面倒なのでなにかよい方法を探しています。あとでファームウェアを更新することになるので、ATコマンドが使えるカスタムファームウェアを使い手順を確認することにします。以下のサイトを参考にしました。

Read more »

Firmata互換のIOを使い、同じセンサーモジュールからRaspberry PiでもArduinoでもセンシングデータ取得コードの抽象化を試しています。取得したデータはMeshbluに送信してMongoDBにストアします。特に1-WireのDS18B20の場合はArduinoでもAdd arduino library to Firmata or Johnny-Five 285によるとConfigurable Firmataが必要になります。GPIOのアナログとデジタルの違いもあってJohnny-Fiveを使った抽象化は難しそうです。

Read more »