ラズベリー・パイでI/O制御 & Pico,micro:bit,STM32でクラウド通信
Pythonで作るIoTシステム プログラム・サンプル集
国野 亘 著
B5判 176ページ
定価2,750円(税込)
JAN9784789859899
2021年12月1日発行
好評発売中!
組み込み機器をプログラミング言語Pythonで制御する方法を解説しました.
マイコンのI/O端子に接続した外部回路をプログラムで制御して,IoTのための機器を作ります.
本書で解説するPythonやMicroPythonは,近年IoTの分野で注目度が高まっています.PythonやMicroPythonはシンプルな文法で構成されており,プログラム構文が短くて済むのが特徴です.また,インタプリタ型のプログラムなのでコンパイル作業が不要で,すぐに実機で動作確認ができるのも特徴です.
解説は,本書オリジナルのサンプル・プログラムを多用しました.このサンプル・プログラムは,本書サポート・サイトから自由にダウンロードして実際に試してみることができます.
目次
第1章 Python I/O制御プログラミングの前に
IoT向けインターネット時代に
IoTの機能が満載ラズベリー・パイ
LinuxベースのOSを使用する
IoT機器の分類と役割
IoTシステムの活用例
IoTシステムにPythonを使う
本書で製作するIoT機器
本書で製作するIoTアプリケーション・システム
第2章 ラズベリー・パイの使い方
ラズベリー・パイをはじめるのに必要なもの (1)ラズベリー・パイ本体
ラズベリー・パイをはじめるのに必要なもの (2)周辺機器
ラズベリー・パイをはじめるのに必要なもの (3)マイクロSDカード
Raspberry Pi OSのインストール方法 (1)マイクロSDカードをフォーマットする
Raspberry Pi OSのインストール方法 (2)NOOBS LiteをマイクロSDカードにコピーする
Raspberry Pi OSのインストール方法 (3)ラズベリー・パイにインストールする
Raspberry Pi OSの初期設定 (1)設定メニュー
Raspberry Pi OSの初期設定 (2)ネットワーク接続
GitHubからIoT実験用プログラムをダウンロードする
PC(パソコン)からSSHでラズベリー・パイに接続しよう
ラズベリー・パイの電源の入れ方/切り方
ラズベリー・パイの常時動作時の注意点
第3章 ラズベリー・パイでPython入門基礎編
学習用プログラムをダウンロードする
LXTerminalを使用する
定番プログラムHello,World!
Pythonの機能
プログラム言語の変数
条件文「もしもif さもなければelse」
コンピュータお得意の繰り返しfor文
コンピュータは計算機.四則演算を行ってみよう
ラズベリー・パイの体温を測定してみよう
クラウド連携の基本HTTP GET
温度値をAmbientへ送信するクラウド連携IoTセンサの製作
IFTTTにトリガを送信するクラウド連携IoTセンサの製作
appendix Socket Debugger Freeを使ってTCP通信の動作確認を行う
Column1 変数名に使用可能な文字
Column2 配列変数のリスト型とタプル型の違い
第4章 ラズベリー・パイ用PythonプログラムGPIO制御編
ハードウェアの準備ラズベリー・パイ用GPIO実験ボード
Pythonプログラム Lチカでラズベリー・パイの動作確認
Pythonプログラム IoTボタン(子機)ラズベリー・パイでON/OFFをUDP送信
Pythonプログラム ラズベリー・パイでフルカラーLEDの制御
Pythonプログラム ラズベリー・パイでチャイム音を鳴らす
Pythonプログラム IoT温度計(子機)ラズベリー・パイで温度をUDP送信
Pythonプログラム IoT情報収集サーバ(親機)ラズベリー・パイでUDPのデータ受信
Pythonプログラム IoTフルカラーLEDネットワーク制御のフルカラーLチカ
Pythonプログラム IoTチャイム(子機)ラズベリー・パイでTCP受信してチャイム
Column1 LED+チャイムでIoT通知デバイスを製作する
Column2 組み合わせ1000通り.好みの色を再現するフルカラーLED
Column3 HTTPポート80で待ち受ける
ラズベリー・パイ宅内サーバ用
第5章 データ受信プログラム
Pythonプログラム ラズベリー・パイで温度をUDP受信
Pythonプログラム ラズベリー・パイでON/OFFをUDP受信
Pythonプログラム 人感センサの反応をラズベリー・パイで受信
Pythonプログラム 複数のセンサの値を受信
Pythonプログラム ラズベリー・パイでメッセージ送信
Pythonプログラム 赤外線リモコン操作ログの収集/保存
Pythonプログラム 赤外線リモコン送信プログラム
ESP32の送信用プログラム(この章共通)
Column1 ディープ・スリープ
ラズベリー・パイでBluetooth LEを受信する
第6章 Pythonプログラム
送信機の準備1 ESP32マイコンでBLE送信
送信機の準備2 センサ・メダル
送信機の準備3 ESP32+センサ・シールド・キット
動作確認の準備iPhone用アプリで動作確認
Pythonプログラム ラズベリー・パイでBLEのデータを受信
Pythonプログラム ラズベリー・パイでBLEのビーコンを受信
Pythonプログラム ラズベリー・パイでセンサ値を表示
Pythonプログラム センサ値をAmbientに送信
Column1 Bluetooth LEのビーコンと通信手順
Column2 センサ・メダルの歩数測定機能
第7章 MicroPythonプログラム(micro:bitで試す)
MicroPythonプログラム MicroPythonでHello World
MicroPythonプログラム micro:bitでワイヤレス通信を行うMicroPython
プログラム
MicroPythonプログラム micro:bitで温度センサ送信
MicroPythonプログラム micro:bitをIoT化するための基礎システム製作
MicroPythonプログラム ラズパイでクラウドに転送
補足MicroPython とPython
Column1 BBC micro:bitのBluetooth LE機能
Column2 micro:bit用Pythonエディタのバージョンの違い
第8章 STM32マイコン用MicroPythonプログラム
NUCLEO-F767ZIへMicroPythonのファームウェアを書き込む
NUCLEO-F767ZIで製作するSTM32マイコン版IoTボタン
NUCLEO-F767ZIで製作するSTM32マイコン版IoT温度センサ
NUCLEO-F767ZIで製作するSTM32マイコン版UDPモニタ
NUCLEO-F767ZIからインターネットへHTTP通信実験
NUCLEO-F767ZI版インターネットてるてる坊主
補足MicroPython REPLモード(インタプリタ・モード)の操作方法
Column1 ファームウェアが正しく書き込めないときは
Column2 STM32マイコン内のプログラムを直接,編集する
Column3 ソケット通信ライブラリsocketの簡略版usocketを使ってみる
第9章 ラズベリー・パイPico でBLEワイヤレス・センサを作る
ラズベリー・パイPico RP2040
BLEモジュールRN4020
必要な機器
Thonny Python IDE
MicroPythonファームウェアを書き込む
サンプル・プログラムをダウンロードする
Lチカ+ログ出力表示プログラムexample01_hello.py
システムの動作確認(その1)
example01_hello.pyの内容
温度測定・表示プログラムexample02_temp.py
システムの動作確認(その2)
example02_temp.pyの内容
ワイヤレス温度センサ用プログラムexample03_rn4020.py
BLEでラズパイPico内蔵センサの値を送信する
ワイヤレス通信の実験方法
ラズベリー・パイPico単体でプログラムを実行する方法
example03_rn4020.pyの内容
ワイヤレス温度+湿度センサ用プログラムexample04_humid.py
外付けの温湿度センサの値をBLE送信する
ワイヤレス通信の受信結果
example04_humid.pyの内容
Column1 BLEで送られてきたセンサ値をAmbientに転送する
Column2 Linuxコマンドの履歴情報
第10章 ラズベリー・パイとPythonでIoTシステム開発入門
IoTボタンでチャイム音.呼び鈴のシステム例
IoT温度センサでチャイム音・熱中症予防・温度監視システム
IoTボタンでチャイム音.呼び鈴のIoTネットワーク・システム
IoTボタンとIoT温度センサでネットワーク・システムを拡張する
収集したデータをPyplot(matplotlib)で折れ線グラフ作成
クラウド・サービスからWebSocketでプッシュ通知を受信する
Column1 IoTシステム応用に向けたIoTサーバの役割まとめ
第11章 ラズベリー・パイとPythonでIoT音声認識入門
Google AIY Voice KitとJuliusの違い
Google AIY Voice Kitを音声「LEDをON」で制御
Juliusをラズベリーパイにインストールしてみよう
Juliusで会話.音声「あなたの名前は?」と聞いてみよう
「今何時?」と聞けば時刻を応答するJulius音声時計
「テレビの電源をON」で家電を制御するJulius赤外線リモコン送信機
第12章 Pythonで広がるIoT応用システムの構築IoTシステム応用編
インターネット照る照る坊主でLEDを制御
インターネット照る照る坊主で部屋中のIoT子機のLEDを一括制御
ラズベリー・パイ専用Piカメラで製作するネットワーク対応IoTカメラ
IoTカメラ付き玄関呼び鈴の応用システムでIoT機器の一括制御
遠隔地に居住する家族の生活状況を通知するIoT見守りシステムi.myMimamoriPi
自分だけのMyホーム・オートメーション・システムi.myMimamoriHomeで家電コントロール
appendix クラウドでもPythonサーバレスLambdaでセンサ値をクラウド上のDBで保持する
appendix 超特急Web接続! ESPマイコン・プログラム全集