スマートウォッチ2020年07月24日

自作スマートウォッチ

自分でスマートウォッチのプログラムを組むことができる(デザインできるとも言えます)Lilygo®Ttgo T-Wristbandというスマートウォッチを見つけてしまいました。日本国内では秋葉原ラジオデパート1階のShigezoneで取扱っています。使用しているプロセッサーはESP32-PICO-D4で4MBFlashメモリー搭載の最小ESP32プロセッサーです。もちろん搭載のインターフェースは2.4GWiFi、Bluetooth4.2 and BLE、GPIO、ADC、DACなど7mm角のチップに搭載され利用可能です。プログラミング環境は従来のESPシリーズと同様にArduino環境が利用できます。Lilygo®Ttgo T-Wristbandには1個のタッチスイッチ、3軸加速度3軸磁気センサー、リアルタイムクロック、0.96インチLCDディスプレー、オプションで心拍センサーや振動モーターがあります。バッテリーチェックのためにADCを利用しています。
サイズはXiaomi Mi Bandとほぼ同じです。さすがに防水機能は要求できません。水濡れなしの日常使いには問題ないと思われます。プログラムのアップロードにはケースを開け、USBシリアル搭載の拡張ボードをFPCケーブルで接続して行いますがリポバッテリーの充電は専用ケーブル(Xiaomi Mi Bandと同じ)で行なえるのでケースを開ける必要はありません。普通のスマートウォッチと同じように扱えます。

今回の注文でオプションの心拍センサーも注文していますので楽しみです。もちろんそれなりに表示させるためにはプログラミングが必要です。

サンプルプログラムや回路図です。
GitHub : Xinyuan-LilyGO/LilyGo-T-Wristband
GitHub : LovyanGFX SPI LCD graphics library

新しいタブレット2020年03月06日

新しいタブレット(その後)

Nexusから始まって今回でAndoroidタブレットは4代目に当たります。画面サイズが7インチから、9.7インチ、8インチ、そして今度は10.1インチと毎回変動しています。大きいほうが見やすいのですが重くなります。タブレットのバッテリーは5000mAh程度のものが普通ですか?またAndroid OSはヴァージョン8.1か、9ですから前のタブレットよりは進化しています。購入金額は一万円ちょっとのクラスを選択しています。この価格帯の中華タブレットは似たようなスペックでたくさん出ていますので選択が難しいです。判断基準は、2.5GHzオクタコアCPU(MTK6592なのですが4コアは停止しています)、4GBメモリー、64GB内蔵ROM、最大解像度が2560×1600、カメラはあまり使用しないのであれば良し、欲を言えばデュアルバンドWiFiがついていれば良かったのですがこの値段では無理でしょう。
マイクロSDカードが使用でき、Android8.1であることからSDカードを内蔵ROMの一部(画像や音楽フォルダー)として使用することができます。これをやると内蔵ROMを拡張できるように感じるでしょうが欠点もあります。SDカードは取り外しできなくなります。これを欠点と思うかどうかが使用するしないの分かれ道です。32GBSDカードを迷わず拡張に使用しました。86GB近い空き領域ですからガンガンアプリをインストールしています。
SIMも2枚も入れらるのですが2G、3Gではデータ通信ができる程度ですし、あまり外に持ち出さないのでなしで行くことにしました。もちろん通話もしません。

急に思い出してワイアレス充電のQiアダプターが使えるかどうか試したら使えます。Qiアダプターが熱くなるくらい熱を持ちますが、タブレットの背面が金属なのでアダプターの熱を結構効率よく放熱してくれます。ということでワイアレス充電になりました。多分充電は遅いと思います。充電器にのせれば良いのでこまめにのせています。

電子ペーパー2020年02月15日

電子ペーパーを使う

今回はRaspberry Pi zero wとESP32Sで電子ペーパーを使ってみました。
Raspberry Pi zero wではお天気ボードを作製しました。
2.7インチ電子ペーパーHATはRaspberry Pi zero wの40ピン端子に直接接続し、I2Cインターフェース用ケールをHATにはんだ付けしています。HAT上にある4個のタクトスイッチの内KEY4をシャットダウンSWに使用しています。
表示に使用しているお天気データはOpen Weather MapのAPIを使用してデータを取得しています。Yahoo!お天気のほうが身近で良かったのですが降水確率データ以外のデータの利用方法がイマイチわかりづらく、(ネットに利用例が少なかった。)結局断念しました。OSはRasbianですからPython言語でプログラムを作製しました。Python言語もだいぶ使い慣れてきました。ライブラリーも増えてシェルやC言語より使い勝手が良くなっています。

ESP32では時計と環境データを表示するディスプレーです。ボードには2色1.54インチ電子ペーパーをSPI接続し、日付時刻の他にSHT30の温度湿度データとMQ-135ガスセンサーの電圧を環境データとして表示しています。
取得したセンサーデータはそのままMQTTブローカーにもPushしています。

WiFiモジュール(8)2020年01月17日

ESP32Sと環境センサー

今回使用したマイクロコントローラーはESP32Sを使用したWeMos mini32です。WeMos D1 mini liteとほぼ同じ大きさでUSBシリアル通信チップまでボード上に装備ています。2.4GHzWiFi、Bluetooth 4.2/BLE装備の強力マイコンボードです。2個のADCも装備していて最大16ポートのアナログ入力とGPIOポートはほぼ全てピンに出ているので2列のピンアウトになっていてブレッドボードでは使用できません。専用にメインボードを作製しました。

メインボード上に電子ペーパー用のSPIインターフェース、環境センサー用にはI2Cインターフェース、ガスセンサー用のアナログ入力ポートです。I2Cインターフェースに接続する環境センサーにSHT30温湿度センサー、BMP280大気圧センサーを予定しています。
ともにデジタル出力なので必要なライブラリーを入手します。



ガスセンサーには何種類かあり、用途に応じてセンサーを選択します。今回は一酸化炭素センサーMQ-135とアルコールセンサーMQ-7を購入しました。


これらのセンサーはすべてアナログ出力ですので表示単位への換算計算または表示方法(プログレスバー表示やグラフ表示)を工夫する必要があります。
表示装置には白黒2色電子ペーパーを使用してみました。

Raspberry Pi zero w2020年01月15日

最小のRaspberry Pi zero w

今回はRaspberry Pi zero wです。Raspberry Piはサーバー用途に購入していましたが、今回は組み込み用に購入してみました。MQTTとの連携やESP32やESP8266を使用した端末装置との連携も考えられます。OSは相変わらずRaspbianを使用しています。

Linux zerow01 4.19.75+ #1270 Tue Sep 24 18:38:54 BST 2019
 armv6l GNU/Linux
No LSB modules are available.
Distributor ID:	Raspbian
Description:	Raspbian GNU/Linux 10 (buster)
Release:	10
Codename:	buster
Raspberry Pi3 B+などと違ってほとんど発熱しませんのでアクリル積層のサンドイッチ型ケースに収めました。
とりあえずいじりやすいI2Cインターフェースに表示装置とBMP280大気圧センサーを取り付けてみました。

このほかに2.7インチの3色電子ペーパーをSPIインターフェースで取り付けする予定ですが、中国からまだ入荷していませんので後日。
それも待てずにSPIインターフェースにESP32モジュール用に購入した1.54インチの電子ペーパーを 接続してテストしています。
表示プログラムはPythonを使用しています。



3色表示の電子ペーパーがやっと届きました。サイズは2.7インチです。この電子ペーパーは表示が完了するまで15秒もかかります。1.54インチ電子ペーパーは2秒だったので今回は完全に調査不足でした。これではリアルタイムな表示を望めません。リアルタイム表示に使えそうな電子ペーパーは1.54インチの他に2.13インチと2.9インチ2色電子ペーパーです。
OLEDで常時点灯させると画面の焼付きが起こってしまいます。電子ペーパーはそのようなことがなくてよいのですが表示させる速度に制約があります。

ホームオートメーション(3)2019年10月22日

赤外線リモコンとWiFiスイッチ

ホームオートメーション(2)で赤外線リモコンのコードを学習させてMQTTなどから操作するWiFiリモコンを作成しましたが、Amazonでも2,000円以下でAlexa等に対応した赤外線リモコン商品が販売されています。最近の家電製品はリモコン操作が普通ですからWiFi赤外線リモコンで操作が可能です。住宅設備にはWiFiスイッチを設置することでリビングの照明などが操作可能になります。

赤外線コントロールハブには、AmazonでRakuby WiFi-IRリモート IRコントロールハブという製品を購入してみました。製品の条件として登録のないリモコンの学習機能があること、Alexa対応であることでした。

今回のWiFiスイッチはSONOFFと同じ機能のTuya Wifi Smart Switchという製品を選択しました。販売価格が$4.59と約500円だったのと対応しているアプリがRakuby WiFi-IRリモート IRコントロールハブと同じSmart Lifeだったのでこちらを注文しました。最安値はAliExpressでした。 e-BayやAmazonを物色しているうちにSONOFF Mini 2というたぶんSONOFFの新製品と思われるWifiスイッチを見つけました。この製品は住宅機器用に設計されているようで従来の壁スイッチにも対応しています。(もちろん3路回路にも)ということで早速注文をしました。対応アプリはSONOFFなのでeWeLinkになります。最安値はe-Bayでした。

eWeLinkとSmart LifeともにAlexaのスキルがありますのでそれを使用して音声制御を行います。
eWeLink用にはplug and play、Smart Life用には同名のスキルを使用します。

WiFiモジュール(7)2019年08月25日

環境センサー+LINE通知

今回使用したマイクロコントローラーはESP8285を使用したWeMos D1 mini Liteです。ESP-12Fとほぼ同じ大きさでUSBシリアル通信チップ(CH340Gを使用)までボード上に装備ています。
IoTで利用できる(MQTTクライアント)ネットワーク時計に環境(温度、湿度)センサーを加えて見ました。OLED表示は時間よりも温度湿度を強調した表示になっています。3.5x2cmの表示領域に128x64ドットを表示していますので小さいです。(大きいものは値段が高い)😂
2.4G WiFi機能を装備しているマイクロコントローラなので時計はインターネットで合わせますのでPC並みに正確です。センサーの違いで2種類作成しました。2つ目の方は人間を感知するとLINEに温度、湿度、気圧を通知する機能をプログラミングしてあります。こちらのマイクロコントローラーはESP-12Fを使用しています。プログラムの更新はUSBシリアル通信基盤を経由してPCと接続し行います。
「何の役に立つの?」という質問はご法度です。動機は
・面白そうだから作る。
・こんな物があるからとりあえず動かしてみる。
・「LINEに通知が送れる」なら作ってみる。
などなど😆😆😆

作ったものはそのまま動かし続けるものもあるし、大概のものはバラして再利用しています。今回のマイクロコントローラーは安価で気兼ねなく作成できる所が良いですね。

プログラムはPCでArduino開発環境というソフトウエアを使用して作っていきます。教育用ということもあって世界中の人がいじっているのでライブラリーが充実しています。ゆえにやりたいことがすぐできるというわけです。
Raspberry Piでも同じようにプログラミングしますがこちらではコンパイルが不要なPython言語を多く利用しています。
最近のプログラミング手順はゼロからプログラミングなどしません。プロトタイプあるいはライブラリーについているサンプルを利用して必要な修正を加えるプログラミングです。まさにネットワーク時代のプログラミング?(コピペ!!)😵

ホームオートメーション(2)2019年04月28日

MQTTと赤外線リモコン

赤外線リモコンの学習とWiFiリモコン化にチャレンジしています。
家にはたくさんのリモコンがあります。人が操作しなくてはいけない機器には必ず(ある程度の価格のものは)赤外線を利用した手元リモコンが付属しています。TVから始まってエアコン、扇風機、シーリングライトなど数え上げたらきりがありません。ゆえに居間のテーブルの上にはリモコンが散乱することになります。これをまとめられたらどんなに楽になるだろうと思わずに入られません。(実際にはそんな簡単なものではないのですが)

今回はその糸口になればと思いESP8266を使用して既存のリモコン信号を学習して、WiFi(MQTT経由)からの操作で機器をコントロールするリモコンを作成しました。2台作成して、学習データ作成用に1台は送受信機をつけてあります。もう1台は3.5mmプラグ付きの延長ケーブルLEDを使用して設置条件に合わせられるようにしました。

ホームオートメーション(1)2019年02月11日

MQTTとホームオートメーション

Raspberry PiでMQTTブローカーであるmosquittoのインストールも終わり、MQTTブローカーが動き出すとMQTT経由で遠隔地のセンサーからのデータ受信やリレーを制御することが容易になりました。パワーポイントにあるように接続される機器はネットワーク上にあれば良く、同一サーバー上にある必要がなくなり設置に関しての自由度が格段と増しました。しかし、現在販売されているホームオートメーション機器を使用してシステムを構築しようとすると様々な問題が出てきます。今回はSONOFFスイッチが格安で入手できたので2台購入して使ってみたいと思います。
最近のホームオートメーション関連機器はAmazon AlexaやGoogle Homeなどいろいろと出てきていますが、対応機器が限られているのと割高感があります。
データ収集はESP8266やESP-32などWiFiに対応したモジュールを利用し、制御プログラムはRaspberry Pi内のnode-redに担当してもらいます。

Raspberry Pi3 B+(2)2019年01月29日

Raspberry Pi3 B+のIOインターフェース

久しぶりにRaspberry Piをいじったら、node-redとpythonが大変使いやすくなっていたのでいろいろなものをGPIOやI2Cインターフェースに接続して遊んでみました。

  • 5Mピクセルのカメラモジュール
  • GPIOに直接接続
  • サーボ制御カメラマウントに2個のSG90サーボ
  • 2回路リレー制御モジュール
  • 超音波距離センサー
  • マイクロウエーブドップラーセンサー
  • NaPiOn人感センサー
  • 赤外線リモコン受信機
  • 赤色LED
  • I2Cインターフェースに接続
  • 4チャンネルADコンバーター (ADS1115)
    薄膜サーミスタ温度センサー
  • 1.3インチOLED (SH1106)

これらはすべてnode-redで直接制御できるか、pythonプログラムで制御できます。もちろんMQTTにも対応できます。
node-redのモジュールが充実しています。

pythonプログラムで美咲フォント(日本語フォント)を1.3インチOLEDに表示させてみました。読めますが流石に8x8フォントは小さいです。