Last Update 2023/02/08

ラズベリー・パイでI/O制御 & Pico,micro:bit,STM32でクラウド通信
Pythonで作るIoTシステム プログラム・サンプル集

国野 亘 著
B5判 176ページ
定価2,750円(税込)
JAN9784789859899
2021年12月1日発行
好評発売中!
Pythonで作るIoTシステム プログラム・サンプル集

 組み込み機器をプログラミング言語Pythonで制御する方法を解説しました.
 マイコンのI/O端子に接続した外部回路をプログラムで制御して,IoTのための機器を作ります.
 本書で解説するPythonやMicroPythonは,近年IoTの分野で注目度が高まっています.PythonやMicroPythonはシンプルな文法で構成されており,プログラム構文が短くて済むのが特徴です.また,インタプリタ型のプログラムなのでコンパイル作業が不要で,すぐに実機で動作確認ができるのも特徴です.
 解説は,本書オリジナルのサンプル・プログラムを多用しました.このサンプル・プログラムは,本書サポート・サイトから自由にダウンロードして実際に試してみることができます.
■サンプル・プログラムのダウンロード方法
本書のサンプル・プログラムは,本書p.25 にある, git cloneからコマンドでダウンロードできます.
コマンドを使わなくとも, このURLに,https://github.com/bokunimowakaru/iot
ブラウザでアクセスしていいただき,緑色の[Code]--[Download ZIP]でファイル全部を一気にダウンロードできます.これを展開して解説の理解にお使いください.
目次

 第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マイコン・プログラム全集