ラズパイ/M5Stack用サンプルで学ぶIPネットワーク通信プログラム入門
書籍情報
発売日 : 2023年04月21日
著者/編集 : 国野 亘
出版社 : CQ出版
発行形態 : 単行本
書籍説明
内容紹介
IoTマイコンの入出力をワイヤレス通信で自由自在。
目次
★目 次
○IP通信プログラミング
●第1章 UDPブロードキャストで送受信する
インターネット・プロトコルTCPとUDP
IoTセンサ・システムに使いやすいUDP
最初にUDP送受信の確認
◎プログラム1 わずか7行でUDPブロードキャスト送信 ex1_tx.py
◎プログラム2 わずか9行でUDPブロードキャスト受信 ex2_rx.py
◎プログラム3 センサ値のCSVデータ送信 ex3_tx_hum.py,ex3_tx_temp.py
○UDP通信でCSVデータを受け取る
●第2章 ラズベリー・パイでセンサ値データ収集システム
◎プログラム1 受信時刻と紐づけてセンサ名ごとに保存する
◎プログラム2 HTTPサーバでLAN内に情報共有する
応用 さまざまなセンサ情報を統合管理
○プロトコルを理解してマイコン制御
●第3章 インターネット・プロトコル通信プログラミング
IP通信用プログラムを作ってみよう
IP(インターネット・プロトコル)通信とは
IPルータが複数のLANやWANを中継してパケットを運ぶ
グローバルIPアドレスとプライベートIPアドレス
いつも使っているHTTP通信の仕組み
IP通信を実現するプロトコル・スタック
データ転送プロトコルTCP/IP
Wiresharkを使ったTCP/IP通信の確認方法
◎プログラム1 わずか7行でTCP送信クライアント ex1_tx.py
◎プログラム2 わずか12行でTCP受信サーバ ex2_rx.py
◎プログラム3 センサ値のTCP送信 ex3_tx_hum.py, ex3_tx_temp.py
◎プログラム4 IP通信を理解するための実験用HTTPサーバ
◎プログラム5 HTTPクライアント
IPネットワークの理解を深めるために
○ラズベリー・パイ使用
●第4章 GPIOでON/OFF DCモータ制御
ハードウェアの準備① ラズベリー・パイ4専用DCファンと汎用DCファン
ハードウェアの準備② 汎用DCファン制御用FET回路
ハードウェアの準備③ 汎用DCファン制御用FET回路の製作
ラズベリー・パイの準備① 起動用ディスクを作成する
ラズベリー・パイの準備② 周辺機器を接続する
ラズベリー・パイの準備③ 起動後の設定
ラズベリー・パイの準備④ LXTerminalを開く
ラズベリー・パイの準備⑤ 本章のプログラムをダウンロードする
◎プログラム1 GPIOでCPU冷却用DCファンを手動ON/OFF制御
◎プログラム2 GPIOでCPU冷却用DCファンを自動ON/OFF制御
◎プログラム3 PWM出力でCPU冷却用DCファンの回転速度制御
◎プログラム4 回転速度制御のようすをクラウドに送信
○指示どおりの角度にピタッと動力制御
●第5章 ラズベリー・パイでサーボ・モータ制御
ハードウェアの準備① サーボ・モータとは
ハードウェアの準備② サーボ・モータの接続方法
ハードウェアの準備③ 分度器を印刷して取り付ける
ハードウェアの準備④ サーボ・モータの制御方法
サーボ・モータTower Pro SG90の特徴
◎プログラム5 キーボードから入力した角度にピタッと停止
◎プログラム6 低速回転制御
◎プログラム7 HTTPサーバ機能を追加してリモート制御
◎プログラム8 開くラズパイ・カバーでファンレス強制冷却
○M5Stack使用
●第6章 ESP32のI/O制御プログラミング
M5Stackの特徴とプログラミングの準備
IoT機能・全部入りデバイス
◎プログラム0 Hello,WorldをLCDに表示する
I/OをWi-Fiで制御
◎プログラム1 HTTPサーバ搭載ワイヤレスLチカ端末
◎プログラム2 LINEや他の機器を遠隔制御するワイヤレス・スイッチ送信機
センサ値をWi-Fiで送信
◎プログラム3 照度センサを使ったWi-Fi照度計・送信機
◎プログラム4 Wi-FiデータLCD/表示・受信機
◎プログラム5 Wi-Fi温湿度計・送信機
◎プログラム6 Wi-Fi人感センサ・送信機
○M5Stack使用
●第7章 HTTPSとブロードキャスト・プログラミング
プログラミング学習の準備
◎サンプル・プログラム1 janken01_pict.inoでグー,チョキ,パーを表示
◎サンプル・プログラム2 ジャンケン対戦プログラム janken02_rnd.ino
◎サンプル・プログラム3 janken03_game.inoでジャンケン・ゲーム
◎サンプル・プログラム4 LANジャンケン対戦 janken04_lan.ino
◎サンプル・プログラム5 クラウド・ジャンケン対戦 janken05_net.ino
○センサのアナログ値をマイコンで処理
●第8章 A-Dコンバータ応用プログラミング
A-Dを応用するプログラミング
◎サンプル1 example01_serial.ino
◎サンプル2 example02_lcd.ino
◎サンプル3 example03_meter.ino
◎サンプル4 example06_udp.ino
◎サンプル5 example07_illum
○外部サーバをマイコンから利用
●第9章 クラウド連携プログラミング
1 GPSデータをクラウドに送信 ex07_gps.ino
2 スマホのビーコンを数えて人の密度を比較測定するBLEカウンタ送信機
3 だるまさんがころんだ
4 モグラ叩き
○本書オリジナルESP32用IoT汎用ソフト
●第10章 IoT Sensor Coreの使い方
IoTセンサ・コアでセンサ・ネットワーク・システムを簡単構築
○Sipeed M1 Dock使用
●第11章 リアルタイム顔認識プログラミング
1 K210マイコンの特徴と開発環境の準備
◎サンプル・プログラム
2 AIカメラSipeed M1 Dock用Pythonプログラムで顔検出&I/O制御
◎プログラム1 AIカメラによる顔検出の基本機能
◎プログラム2 AIカメラによるGPIO制御
◎プログラム3 AIカメラによるUART出力
3 AIカメラSipeed M1 Dock応用来場者カウンタ
◎プログラム4 AIカメラで来場者をカウントする
◎プログラム5 来場者数をBluetooth LEで送信する
○M5Camera使用
●第12章 多機能Webカメラ応用プログラミング
ESPマイコン+カメラ=M5Camera
プログラミングの準備
◎サンプル1 M5Cameraをコントロール
◎サンプル2 LINEに顔検知した画像を送信する
◎サンプル3 画像を定期的にFTP送信する
FTP送信するプログラムの設定
その他の応用,IFTTTへ通知
○ラズベリー・パイPico使用
●第13章 Thonny Python IDEでプログラミング
Thonny Python IDE
ラズベリー・パイPico RP2040
BLEモジュール RN4020
必要な機器
MicroPythonファームウェアを書き込む
サンプル・プログラムをダウンロードする
◎サンプル1・プログラム1 Lチカ+ログ出力表示プログラム example01_hello.pyシステムの動作確認(その1)
温度値を送信する
◎サンプル2・プログラム2 温度測定・表示プログラム example02_temp.pyシステム構成
ワイヤレス通信の実験方法
ラズベリー・パイPico単体でプログラムを実行する方法
◎サンプル3・プログラム3 ワイヤレス温度センサ用プログラム example03_rn4020.pyシステム構成
高精度に測定する
ワイヤレス通信の受信結果
○さくらのセキュアモバイルコネクト使用
●第14章 キャリアSIM利用通信プログラミング
さくらのセキュアモバイルコネクトの特徴
サービス総額(月額)の試算
UDPで閉域ネットワークを使ってみる
ハードウェアの構成
プログラムをダウンロードしてM5StickCに書き込む
閉域網を使ったIPアドレスの割り当て
閉域網モバイル通信システムの設定方法
受信したセンサ値をクラウド・サーバで公開する
○さくらのモノプラットフォーム使用
●第15章 M5Stackでモバイル通信プログラミング
準備編 モバイル対応さくらのモノプラットフォームを始めよう
基礎編 さくらのモノプラットフォームでIoT機器をリモートI/O制御
◎サンプル1[基礎編] モバイル対応ボタン・送信機で遠隔地からリモート通知
◎サンプル2[基礎編] モバイル温度センサ・送信機で遠隔地の温度確認
◎サンプル3[基礎編] モバイルLチカ端末(LED・受信機)
応用編 さくらのモノプラットフォームを活用したシステム製作
◎サンプル4[応用編] モバイル温湿度センサ・送信機+データ受信サーバで遠隔モニタ
◎サンプル5[応用編] 現在位置をLCDに表示&クラウドに送信するGNSSデータ送信機
○IP通信プログラミング
●第1章 UDPブロードキャストで送受信する
インターネット・プロトコルTCPとUDP
IoTセンサ・システムに使いやすいUDP
最初にUDP送受信の確認
◎プログラム1 わずか7行でUDPブロードキャスト送信 ex1_tx.py
◎プログラム2 わずか9行でUDPブロードキャスト受信 ex2_rx.py
◎プログラム3 センサ値のCSVデータ送信 ex3_tx_hum.py,ex3_tx_temp.py
○UDP通信でCSVデータを受け取る
●第2章 ラズベリー・パイでセンサ値データ収集システム
◎プログラム1 受信時刻と紐づけてセンサ名ごとに保存する
◎プログラム2 HTTPサーバでLAN内に情報共有する
応用 さまざまなセンサ情報を統合管理
○プロトコルを理解してマイコン制御
●第3章 インターネット・プロトコル通信プログラミング
IP通信用プログラムを作ってみよう
IP(インターネット・プロトコル)通信とは
IPルータが複数のLANやWANを中継してパケットを運ぶ
グローバルIPアドレスとプライベートIPアドレス
いつも使っているHTTP通信の仕組み
IP通信を実現するプロトコル・スタック
データ転送プロトコルTCP/IP
Wiresharkを使ったTCP/IP通信の確認方法
◎プログラム1 わずか7行でTCP送信クライアント ex1_tx.py
◎プログラム2 わずか12行でTCP受信サーバ ex2_rx.py
◎プログラム3 センサ値のTCP送信 ex3_tx_hum.py, ex3_tx_temp.py
◎プログラム4 IP通信を理解するための実験用HTTPサーバ
◎プログラム5 HTTPクライアント
IPネットワークの理解を深めるために
○ラズベリー・パイ使用
●第4章 GPIOでON/OFF DCモータ制御
ハードウェアの準備① ラズベリー・パイ4専用DCファンと汎用DCファン
ハードウェアの準備② 汎用DCファン制御用FET回路
ハードウェアの準備③ 汎用DCファン制御用FET回路の製作
ラズベリー・パイの準備① 起動用ディスクを作成する
ラズベリー・パイの準備② 周辺機器を接続する
ラズベリー・パイの準備③ 起動後の設定
ラズベリー・パイの準備④ LXTerminalを開く
ラズベリー・パイの準備⑤ 本章のプログラムをダウンロードする
◎プログラム1 GPIOでCPU冷却用DCファンを手動ON/OFF制御
◎プログラム2 GPIOでCPU冷却用DCファンを自動ON/OFF制御
◎プログラム3 PWM出力でCPU冷却用DCファンの回転速度制御
◎プログラム4 回転速度制御のようすをクラウドに送信
○指示どおりの角度にピタッと動力制御
●第5章 ラズベリー・パイでサーボ・モータ制御
ハードウェアの準備① サーボ・モータとは
ハードウェアの準備② サーボ・モータの接続方法
ハードウェアの準備③ 分度器を印刷して取り付ける
ハードウェアの準備④ サーボ・モータの制御方法
サーボ・モータTower Pro SG90の特徴
◎プログラム5 キーボードから入力した角度にピタッと停止
◎プログラム6 低速回転制御
◎プログラム7 HTTPサーバ機能を追加してリモート制御
◎プログラム8 開くラズパイ・カバーでファンレス強制冷却
○M5Stack使用
●第6章 ESP32のI/O制御プログラミング
M5Stackの特徴とプログラミングの準備
IoT機能・全部入りデバイス
◎プログラム0 Hello,WorldをLCDに表示する
I/OをWi-Fiで制御
◎プログラム1 HTTPサーバ搭載ワイヤレスLチカ端末
◎プログラム2 LINEや他の機器を遠隔制御するワイヤレス・スイッチ送信機
センサ値をWi-Fiで送信
◎プログラム3 照度センサを使ったWi-Fi照度計・送信機
◎プログラム4 Wi-FiデータLCD/表示・受信機
◎プログラム5 Wi-Fi温湿度計・送信機
◎プログラム6 Wi-Fi人感センサ・送信機
○M5Stack使用
●第7章 HTTPSとブロードキャスト・プログラミング
プログラミング学習の準備
◎サンプル・プログラム1 janken01_pict.inoでグー,チョキ,パーを表示
◎サンプル・プログラム2 ジャンケン対戦プログラム janken02_rnd.ino
◎サンプル・プログラム3 janken03_game.inoでジャンケン・ゲーム
◎サンプル・プログラム4 LANジャンケン対戦 janken04_lan.ino
◎サンプル・プログラム5 クラウド・ジャンケン対戦 janken05_net.ino
○センサのアナログ値をマイコンで処理
●第8章 A-Dコンバータ応用プログラミング
A-Dを応用するプログラミング
◎サンプル1 example01_serial.ino
◎サンプル2 example02_lcd.ino
◎サンプル3 example03_meter.ino
◎サンプル4 example06_udp.ino
◎サンプル5 example07_illum
○外部サーバをマイコンから利用
●第9章 クラウド連携プログラミング
1 GPSデータをクラウドに送信 ex07_gps.ino
2 スマホのビーコンを数えて人の密度を比較測定するBLEカウンタ送信機
3 だるまさんがころんだ
4 モグラ叩き
○本書オリジナルESP32用IoT汎用ソフト
●第10章 IoT Sensor Coreの使い方
IoTセンサ・コアでセンサ・ネットワーク・システムを簡単構築
○Sipeed M1 Dock使用
●第11章 リアルタイム顔認識プログラミング
1 K210マイコンの特徴と開発環境の準備
◎サンプル・プログラム
2 AIカメラSipeed M1 Dock用Pythonプログラムで顔検出&I/O制御
◎プログラム1 AIカメラによる顔検出の基本機能
◎プログラム2 AIカメラによるGPIO制御
◎プログラム3 AIカメラによるUART出力
3 AIカメラSipeed M1 Dock応用来場者カウンタ
◎プログラム4 AIカメラで来場者をカウントする
◎プログラム5 来場者数をBluetooth LEで送信する
○M5Camera使用
●第12章 多機能Webカメラ応用プログラミング
ESPマイコン+カメラ=M5Camera
プログラミングの準備
◎サンプル1 M5Cameraをコントロール
◎サンプル2 LINEに顔検知した画像を送信する
◎サンプル3 画像を定期的にFTP送信する
FTP送信するプログラムの設定
その他の応用,IFTTTへ通知
○ラズベリー・パイPico使用
●第13章 Thonny Python IDEでプログラミング
Thonny Python IDE
ラズベリー・パイPico RP2040
BLEモジュール RN4020
必要な機器
MicroPythonファームウェアを書き込む
サンプル・プログラムをダウンロードする
◎サンプル1・プログラム1 Lチカ+ログ出力表示プログラム example01_hello.pyシステムの動作確認(その1)
温度値を送信する
◎サンプル2・プログラム2 温度測定・表示プログラム example02_temp.pyシステム構成
ワイヤレス通信の実験方法
ラズベリー・パイPico単体でプログラムを実行する方法
◎サンプル3・プログラム3 ワイヤレス温度センサ用プログラム example03_rn4020.pyシステム構成
高精度に測定する
ワイヤレス通信の受信結果
○さくらのセキュアモバイルコネクト使用
●第14章 キャリアSIM利用通信プログラミング
さくらのセキュアモバイルコネクトの特徴
サービス総額(月額)の試算
UDPで閉域ネットワークを使ってみる
ハードウェアの構成
プログラムをダウンロードしてM5StickCに書き込む
閉域網を使ったIPアドレスの割り当て
閉域網モバイル通信システムの設定方法
受信したセンサ値をクラウド・サーバで公開する
○さくらのモノプラットフォーム使用
●第15章 M5Stackでモバイル通信プログラミング
準備編 モバイル対応さくらのモノプラットフォームを始めよう
基礎編 さくらのモノプラットフォームでIoT機器をリモートI/O制御
◎サンプル1[基礎編] モバイル対応ボタン・送信機で遠隔地からリモート通知
◎サンプル2[基礎編] モバイル温度センサ・送信機で遠隔地の温度確認
◎サンプル3[基礎編] モバイルLチカ端末(LED・受信機)
応用編 さくらのモノプラットフォームを活用したシステム製作
◎サンプル4[応用編] モバイル温湿度センサ・送信機+データ受信サーバで遠隔モニタ
◎サンプル5[応用編] 現在位置をLCDに表示&クラウドに送信するGNSSデータ送信機
著者情報
国野 亘
国野, 亘