引っ越しました「ボクにもわかる電子工作のブログ」 https://bokunimo.net/blog

これまでYahoo!ブログを利用してきましたが、サービスが終了することになりましたので、ブログの引っ越しを行いました。

引き続き、この新ブログサイトで、Raspberry Pi、Arduino、IchigoJamなどに関連した電子工作に関連した情報を配信してゆこうと思いますので、よろしく、お願いいたします。

bu ボクにもわかる電子工作のブログ

https://bokunimo.net/blog

TTGO T-Cameraの温度・湿度・気圧センサが廃止になりました。

以前に紹介したTTGO T-Cameraですが、現在、販売されている新バージョンでは、温度・湿度・気圧センサBME280が廃止となりました。

温度・湿度・気圧センサBME280が廃止となった TTGO T-Camera
写真=TTGO-Camera販売者Xin Yuan (LilyGO)販売サイトより

前回の記事:
https://bokunimo.net/blog/esp/12/

私のところに入ってきた情報によると、2月23日に注文したものは既に廃止となっていたそうです。
また、現在、商品を販売しているページにも赤文字で「Note: TTGO T-Camera has been updated to a version without BME280」と書かれていました。(私が情報を発信した2月22日以降に修正されたようです。)

同社の販売状況を見ると、2月22日~23日に多くの購入があったことが分かり、私の情報をもとに購入された方が不快な思いをされているかと思い、情報を展開させていただきました。

Yahoo!ブログからの引っ越し作業中

ボクにもわかる電子工作のYahoo!ブログ

2005年9月にYahoo!のブログサービス(ジオログ)の利用を開始し、その後、Yahoo! ブログへの引っ越しを行いましたが、2019年12月に Yahoo! ブログのサービスが終了することとなったため、再度、引っ越し作業中です。

Yahoo!ブログに公開していたボクのブログ:

https://blogs.yahoo.co.jp/bokunimowakaru

Yahoo!による終了の案内:

https://promo-blog.yahoo.co.jp/close/index.html

by ボクにもわかる電子工作

『超特急Web接続!ESPマイコン・プログラム全集』書籍連動キット

CQ出版社から「新人教育用IoT実習キット」という形で、ESP-WROOM-02(ESP8266)やエナジーハーベスト対応のEnOcean送受信モジュールが含まれた部品セットが発売になります。
発売中の書籍に連動したキットです。
手っ取り早く一通りのパーツを手に入れたい方や、勉強会、セミナーなどで活用したい方は、ぜひ検討していただければと思います。

『超特急Web接続!ESPマイコン・プログラム全集』書籍連動キット

新人教育用IoT実習キット
価格19,980円(税込)
2019年3月10日発売予定
※書籍やラズベリーパイと周辺機器は付属しません
※書籍に掲載した多くの実験が可能ですが、対応していないものもあります)
Wi-Fiカメラの実験のようす:キットに含まれるパーツで製作可能なWi-Fiカメラ(書籍P.89)。乾電池による間欠動作も可能。
HTTPサーバを実装することで、防犯カメラ(書籍P.129)として動作させてみたときのようす。この場合は、ACアダプタ(別売)で動作させることを想定
キット専用の説明書も作成しました。CQ出版社のホームページからダウンロードすることが出来ます。
本セットに含まれるパーツのリスト
超特急Web接続!ESPマイコン・プログラム全集
サポートページ(筆者)

2000円のTTGO T-Camera:Wi-Fi+広角レンズ付カメラ+OLED+人感+温度+湿度+気圧センサ

以下の機能がつまったTTGO T-Camera が、$17.6(2019/2/22日時点で1,948円)。
広角レンズと2MピクセルJPEG出力機能つきカメラで自作の防犯カメラに活用できそうです。
本ブログでは動作確認方法について説明します。
  • ESP32マイコン搭載 Wi-FiモジュールESP32-WROVER-B(〒マーク付)
  • 広角レンズ付きカメラ(JPEG出力あり・OV2640)
  • モノクロ有機ELディスプレイ(OLED・SSD1306)
  • 人感センサ(AS312)
  • 温度・湿度・気圧センサ(Bosch BME 280)
    現在、販売されている新バージョンでは、温度・湿度・気圧センサBME280が廃止となりました。
    (Note: TTGO T-Camera has been updated to a version without BME280)
    2019/3/10 追記
広角レンズ付きカメラ、モノクロ有機ELディスプレイ(OLED)、人感センサ、温度・湿度・気圧センサ、ESP32マイコンESP32-WROVER-B(〒マーク付)を搭載した製品 TTGO-Cameraがなんと2000円(2019/2/22現在)

さっそく、動作確認 ①センサ情報

USB端子から電源を供給すると、予めインストールされているソフトウェアが起動し、有機ELディスプレイ(OLED)にセンサ値などが表示されます。
電源を入れるだけで、センサ情報が表示される(OLED画面2)

交互に表示される画面で動作確認 ②人の動きを検知する人感センサ

約6秒ごとに2つの画面が交互に切り替わります。先に紹介した前述のセンサ値の画面は「OLED画面2」です。
下図の「OLED画面1」の上部には「AS312 Trigger」と表示されています。この表示は人感センサが人体などの動きを検知したときに表示されます。動作確認時は、(どちらかといえば)自分の身体をじっとした状態で、この表示が消えることを確認することになります。
人感センサが人体などの動きを検知すると「AS321 Triger」と表示される。赤マーク部にはIEEEアドレスの末尾2バイトが表示される(OLED画面1)

スマホで動作確認 ③カンタンWi-Fi接続

こんどは、Wi-Fi機能の動作確認を行います。
上図のOLED画面1はWi-FiのSSIDとIPアドレスの表示画面です。
本機のSSIDが画面中央に「TTGO-CAMERA-XX:XX」のように表示されるので、スマホのWi-Fi設定で、検索し、接続してください。
接続後、OLED画面下部に表示されているIPアドレス「2.2.2.1」へアクセスします。スマホのブラウザのURL入力欄に「http://2.2.2.1/」のように入力してください。接続が出来れば、Wi-Fi動作確認の完了です。
Wi-Fiモジュールには、日本の電波に関する技術基準適合証明の認証マーク(技適マーク)が表示されています(下図の金属シールドの部品)。
本機の裏面に実装されているESP32-WROVER-Bには、国内向けの技術基準適合証明(技適)マークが印字されている

メイン機能の動作確認 ④広角カメラで写真、動画をスマホで確認

Wi-Fi接続が確認できたら、下図のような画面が表示されます。「Get Still」で写真撮影、「Stream」で動画が表示されます。
写真=TTGO-Camera販売者Xin Yuan (LilyGO)より

もちろん、DIYで活用できるソフトウェア開発環境 Arduino IDE 対応

デモ用のプログラムはGitHubで公開されています。
簡単に改造して、自分だけのカメラ活用が可能です。
TTGO-Camera用デモソフトのソースコード:
簡単に全機能が動作確認できるのは、安心です。
春節明けにも関わらず、注文から到着まで1週間ほどで届きました。
動作確認を終えたら、Ali ExpressのConfirmと5つ星の付与も、お忘れなく。
(なお、ボクと出店者とは無関係です)
ご注意:
プリインストールされているデモ用ソフトのWi-Fiにはセキュリティがかけられていません。
電源を入れっぱなしにしていると、外部からの侵入者が内蔵カメラの映像を閲覧することが出来、自分自身や他人のプライバシー、秘密情報などを漏洩してしまう恐れがあります。
by ボクにもわかる電子工作

超特急Web接続!ESPマイコン・プログラム全集[CD-ROM付き]

Wi-FiモジュールESP-WROOM-02をブレッドボード基板に実装し、様々なIoT機器を製作するための書籍「超特急Web接続!ESPマイコン・プログラム全集」が、CQ出版社から発売になりました。
一つ一つのIoT機器は、比較的、簡単に製作できるものです。
特長はサンプルの多さです。また、基本的な動作確認から、作成した複数の機器を連携するまでの一連の方法についても説明しています。
先日まで、Amazonでの在庫が無く、注文後納期がかかってしまっていましたが、現在は、すぐにお買い求めいただけるようになっています。
興味がありましたら、目次だけでも見ていただければと思います。

ラズベリーパイ&IchigoJam対応
LED/スイッチからカメラ/LCDまで
なんでも3分Wi-Fi接続
超特急Web接続!
ESPマイコン・プログラム全集
[CD-ROM付き]
出版社: CQ出版 (2019/1/22)
ISBN-10: 4789847047
ISBN-13: 978-4789847049
発売日: 2019/1/22
下記の情報も参考にしていただければと思います。
サポートページ:

IchigoJam用ネットワークボードMixJuiceを背負うai.robot.Jam

aitendoで販売されているai.robot.Jamの裏面にMixJuiceを接続し、ランドセルを背負うロボットのように見えるIchigoJam用マイコンボードを作ってみました。
MixJuiceを背負ったairobot.jamで、インターネットサイト「ボクニモワカル for MixJuice」へアクセスしたときの様子。
ai.robot.Jamは、ロボット形状の基板(上部)で作成するIchigoJam互換ボードです。別売りの発射台基板(下部)との2枚で構成します。今回、ロボット基板の裏側にピンヘッダ(足の長いタイプ)を接続し、IchigoJam用ネットワークボードMixJuiceをロボット基板に背負わせてみました。
こどもパソコン「ai.robot.Jam」キット [K-airobotjam]
この写真の接続は誤り(aitendoサイトの写真)
下図はMixJuiceを背負っている様子です。
MixJuiceの電源は、発射台基板(別売り・下部)のPS/2端子の近くにある5VからMixJuiceのCN5の5V端子へ入力し、MixJuiceのCN6にジャンパピンを差し込みました。
ロボット基板のTXDとRXDのピンは、発射台基板ではGNDになっているので接続しないようにします(ピンを切る)。また、PS/2端子側がロボット基板の正面に来る方向に接続します(aitendoのホームページの写真が誤っているので注意する)。
画面の「ボクニモワカル for MixJuice」はIchigoJam+MixJuice用のコンテンツを提供しているインターネットサイトです。アクセス方法は下記をご覧ください。
IchigoJam + MixJuice用ボクニモワカル for MixJuice:
by ボクにもわかるIchigoJam用マイコンボード

2019年 あけましておめでとうございます

2019年
あけましておめでとうございます
昨年、Yahoo!ジオシティーズのサービス終了が決まりました。2004年から14年以上、活動の中心に使用してきたサービスであり、残念でしたが昨年10月にホームページの移転を行いました。
ホームページ移転後のアクセス件数は、3か月で約4000件でした。旧ホームページへのアクセス件数が14年で260万件(平均18.5万件)だったことを考えると大幅に落ち込んでいる状況です。
ホームページやブログをお持ちの方は、当方の新サイト(https://bokunimo.net/)へのリンク修正やリンク展開に、ご協力をいただけるよう、お願いいたします。
2019年3月中旬までは、旧ページから新サイトの該当ページへ自動遷移しますが、3月末には、新サイトのトップページへの遷移に切り替わります。
落ち込みの原因は、移転だけではありません。14年前に主流だったテキスト文字中心の情報の時代から、イラストやイメージ図を活用したコンテンツが主体の時代となりました。また、1ページのボリュームも少ないものや、要約したまとめサイトなどが主流になってきました。
ボクのサイトを書籍に置き換えた場合、「章ごと」のページ構成となっています。しかし、現在の主流は「節ごと」のページ構成になっているようです。
以上のように、ネット社会の変化に追従できていない点も課題であると分析しています。
さて、ボクは、これまで課題を分析し、それを解決するための情報を提供してきました。しかし、残念ながら、14年にもわたって積み上げてきた情報を整理しなおすことは困難です。
もちろん、新たなコンテンツ作成時には配慮し、時代に合った方法で情報を提供してゆきたいと思います。
移転後のホームページ

XBee3 ZigBee MicroPython 基本サンプル・スクリプトで無線通信実験

MicroPythonの実行が可能なXBee3 ZigBeeモジュールでワイヤレス通信の実験を行ってみました。
XBee 3 ZigBee子機(下図・右側)の内蔵温度センサで測定した温度値をZigBee送信し、Raspberry Piに接続したXBee親機(下図・左側)で受信します。
親機(左側):Raspberry PiへXBeeを接続して製作する。子機で測定した温度情報を受信する。
子機(右側):XBee3内蔵マイコン上で動作するMicroPythonスクリプトで温度を測定し、親機へ送信する。

子機・XBee3 ZigBee の構成・MicroPythonスクリプトの書き込み方法

子機にはXBee3 ZigBeeモジュールを使用します。
MicroPythonのスクリプトを書き込むには、XBee USBエクスプローラとPCなどが必要です。スクリプト書き込み後は、電源を供給するだけで動かすことが出来ます(工作が得意な人であれば、XBee USBエクスプローラは1台だけでよい)。
使用可能なXBeeモジュール:XBee3 シリーズ
必要な機器:XBee USBエクスプローラ (スクリプト書き込み時に必要)、PC(DiGi X-CTUに必要)
必要なソフト:DiGi X-CTU(スクリプト書き込み時に必要)
サンプルスクリプトは、下記に公開しました。
XBee3 ZB用MicroPythonサンプル集
温度送信用サンプル bas04_tx_temp.py
以下に、設定方法、書き込み方法を示します。
Digi MicroPython 設定方法
1. DIGI XCTU (最新版)の「Radio Modules」のアイコン[+](Add a radio Module)で使用するシリアルCOMポートを選択する。 
2. シリアル接続したXBeeモジュールが画面左側のフレームに表示されるので、それを選択する。 
3. 右フレーム「Radio Configuration」にXBee 設定画面が表示されるので、スクロールして、「AP APIEnabe」で[MicroPython REPL [4]]を選択する。 
  [Radio Configuration]
  ▼ UART Interface
   AP APIEnabe
    MicroPython REPL [4]
4. 右フレームの上部の鉛筆アイコン(Write)をクリックする。 
5. XCTUの「Tool」メニューから[MicroPython Terminal]を選択し、接続アイコン(Open)をクリックする。
(Tera Termを使用する場合は、通信設定=9600-8-N-1・フロー制御なし、改行コード=CR、ローカルエコー=無しなどを設定する。) 
サンプル・スクリプトの書き込み方法
1.サンプルスクリプトをメモ帳や秀丸エディタで開き、[Ctrl]+[A]の操作で全選択し、[Ctrl]+[C]でクリップボードにコピーします。
2.XCTU の MicroPython Terminal または TeraTermなどで、[Ctrl]+[F]を操作し、プログラムをXBee3 ZigBeeモジュールへ書き込むモードに設定します。
3.右クリック操作でペーストを行い、クリップボードに保持したサンプルスクリプトを転送します。
4.[Ctrl]+[D]を操作し、コンパイルを実行します。
5.「Automatically run」に対して[Y]を入力すると、起動時やリセット操作時に、自動起動させることが出来ます。
6.[Ctrl]+[R]でフラッシュメモリ内のプログラムを実行します。Automatically runを設定していた場合は、リセット操作[Ctrl]+[D]で実行することも出来ます。

親機 XBee ZigBee Coordinator の構成

親機は、Raspberry PiへXBee USBエクスプローラ経由でXBeeモジュールを接続して製作します。
XBeeモジュールには、最新のXBee3 ZigBeeシリーズ、従来のXBee ZB S2Cシリーズ、S2シリーズが利用できます。
使用可能なXBeeモジュール:XBee3 シリーズ、XBee ZB S2Cシリーズ、S2シリーズ
必要な機器:Raspberry Piとその周辺機器、XBee USBエクスプローラ
必要なソフト:後述(ダウンロード)
構成: [Raspberry Pi]—-[XBee USB エクスプローラ]—-[親機XBee]-  –  –  -[子機XBee3]
XBee3とS2Cシリーズの場合は、後述のZigBeeモード設定ツール「xbee_zb_mode」を使って、Coordinator APIモードに設定します。S2シリーズの場合は、X-CTUを使ってCoordinator API用のファームウェアを書き込みます。
また、筆者が作成したXBee テスト用ツール「xbee_test」を使って、子機が送信した温度情報を受信する実験を行います。
Raspberry Pi用のプログラムを下記のコマンドでダウンロードし、コンパイルしてください。
Raspberry Pi用プログラムのダウンロード
pi@raspberrypi:~ $ git clone -b raspi https://github.com/bokunimowakaru/xbeeCoord.git
pi@raspberrypi:~ $ cd xbeeCoord/tools/
pi@raspberrypi:~/xbeeCoord/tools $ make
ZigBeeモード設定ツール「xbee_zb_mode」を起動し、XBee Coordinator APIモードに設定して下さい。下記の実行例の引数「B0」は、XBee USBエクスプローラのUSBシリアルポートです。ポートが「/dev/ttyUSB0」の場合は「B0」、「ttyUSB1」の場合は「B1」といった具合に指定してください。(ttyUSBポートが不明な場合は、マウスやキーボード以外のUSB機器を外し、Raspberry Piを再起動してから、「~/xbeeCoord/tools/xbee_zb_mode」を入力してください。)
実行後、「10」と「Enter」を入力すれば、設定できます。設定時にエラーが出た場合は、やり直してください。
ZigBeeモード設定ツールxbee_zb_mode
pi@raspberrypi:~/xbeeCoord/tools $ ./xbee_zb_mode B0
CONNECTED 0(0x00):176(0xB0)
ZIGBEE Device Type Switcher for XBee ZB S2C / XBee3 Series
00:Coordinator AT,  01:Router AT,  02:End Devic
e AT
10:Coordinator API, 11:Router API, 12:End Device API
Mode =10
設定が完了したら、XBee テスト用ツール「xbee_test」を起動してください。末尾の「B0」は「ttyUSB0」の場合です。
XBee テスト用ツールxbee_testを起動する
pi@raspberrypi:~ $ cd ~/xbeeCoord/tools
pi@raspberrypi:~/xbeeCoord/tools $ ./xbee_test B0
ここで重要な作業「ペアリング」を行います。
xbee_testは、XBeeモジュールを常時ペアリングが可能なモードに設定します。このため、通常は自動的にペアリングが行われ、xbee_testに「recieved IDNT」が表示されます。しかし、周囲に他のZigBeeが動作していた場合、他のネットワークに参加してしまうことがあります。この場合、子機のコミッショニングボタンを4回、押して、初期化して再実行する、または親機と同じPAN IDを子機に設定するなどが必要になることがあります。
ペアリング後に、子機XBee3から温度情報が送られてくると、「recieved UART」に続き、温度値と電源電圧値が表示されます。下記の例では、温度19.0℃、電源電圧3.302Vが得られました。
--------------------
recieved UART
--------------------
from   :0013A200 xxxxxxxx
status :02 broadcast packet
length :10 (0x0A)
data   : 19.0, 3.302
AT>

XBee3 MicroPythonで受信する

受信用のMicroPythonサンプル・スクリプトも準備しました。
(受信の確認には、子機XBee3をX-CTUのMicroPython Terminalに接続しておく必要があります。)
データ受信用サンプル bas05_rx.py
デバイス検索用サンプル bas06_rx_disc.py
親機となるRaspberry Piから送信を行うにはXBee テスト用ツール「xbee_test」から「tx=HELLO」のように「tx=」に続いて文字列を入力してください。
by
ボクにもわかるRaspberry Pi
https://bokunimo.net/raspi/
ボクにもわかるXbee
https://bokunimo.net/xbee/

Digi XBee3 ZB対応 XBeeライブラリ Raspberry Pi 版の公開について

Digi XBee3 ZBが、スイッチサイエンスより販売されましたので、公開中のXBee制御用ライブラリxbeeCoordのRaspberry Pi 版のXBee3対応を行いました。
スイッチサイエンスでの国内販売が開始されたXBee3 ZBモジュール。

ツールxbee_zb_modeのXBee3 対応

従来のXBee シリーズ2では、ZigBeeデバイスタイプを変更する際に、ファームウェアの書き換えが必要でした。
XBee ZB S2Cモジュールからは、XCTUや当方が作成したツールxbee_zb_mode(書籍「Wi-Fi/Bluetooth/ZigBee無線用Raspberry Piプログラム全集」付属のCD-ROMに収録)を使うことで、ファームウェアの書き換えなしに変更できるようになりました。
今回のXBee3シリーズについても、xbee_zb_modeを使ってデバイスタイプの変更が可能です。
書籍を買っていただいた方は、P.89の「新しいXBee ZB シリーズS2Cについて」に記載している方法で、XBee3シリーズのデバイスタイプを変更することが出来ます。
書籍をお持ちでない方は、後述の「XBee3対応・最新版xbeeCoord一式のダウンロード」の方法で、GitHubからダウンロードください。
XBee3を使った実験の様子。従来の開発ボードで問題なく動作した

XBeeライブラリ xbee.cのXBee3 対応

XBeeライブラリについては、XBee3対応版へ更新が必要です。GitHub上のxbee.cをダウンロードして入れ換える、もしくは一式をダウンロードしてください。

XBee3対応・最新版XBee.cのダウンロード方法

下記はXBee用ライブラリxbee.cのみをダウンロードする方法です。

pi@raspberrypi:~ $ cd ~/xbeeCoord/libs
pi@raspberrypi:~/xbeeCoord/libs $ mv xbee.c xbee_old.c
pi@raspberrypi:~/xbeeCoord/libs $ wget https://raw.githubusercontent.com/bokunimowakaru/xbeeCoord/raspi/libs/xbee.c

XBee3対応・最新版xbeeCoord一式のダウンロード方法

下記はRaspberry Pi用XBeeライブラリxbeeCoord一式をダウンロードする方法です。
pi@raspberrypi:~ $ mv xbeeCoord xbeeCoord_old
pi@raspberrypi:~ $ git clone -b raspi https://github.com/bokunimowakaru/xbeeCoord.git
pi@raspberrypi:~ $ cd xbeeCoord/tools
pi@raspberrypi:~/xbeeCoord/tools $ make clean; make
pi@raspberrypi:~/xbeeCoord/tools $ ./xbee_zb_mode B0
Running ./xbee_zb_mode
Serial port = USB0 (/dev/ttyUSB0,0xB0)
CONNECTED 176(0xB0):176(0xB0)
ZIGBEE Device Type Switcher for XBee ZB S2C Series
00:Coordinator AT,  01:Router AT,  02:End Device AT
10:Coordinator API, 11:Router API, 12:End Device API
Mode = 12
End Device API
Sending AT commands in AT mode
AT command (AT) :OK
AT command (ATAP01) :OK
AT command (ATCE00) :OK
AT command (ATSM04) :OK
AT command (ATWR) :OK
AT command (ATFR) :OK
> ~
SUCCESS
by
ボクにもわかるRaspberry Pi
ボクにもわかるXbee