ラズパイ/M5Stack用サンプルで学ぶ
IPネットワーク通信プログラム入門
IoTマイコンの入出力をワイヤレス通信で自由自在
国野 亘 著
B5変型判 256ページ
定価3,300円(税込)
JAN9784789842242
2023年5月1日発行
好評発売中!
IoT機器のネットワーク通信機能は重要です.本書は,ラズベリーパイ,M5Stackを使ったIoT機器のワイヤレス・ネットワーク通信を利用したプログラムをサンプルを使って解説しました.マイコンでインターネットやLANを活用したシステムの知識を習得できます.実際に動作確認しながらプログラムのポイントを学習し,それを応用してシステムに作り上げます.サンプル・プログラムを数多く紹介し,読者が自分の用途にカスタマイズして作り込めるよう解説しています.IPに関する知識の習得と,IPに対応したプログラミング能力の向上に役立つ一冊です.
※p.31.115.131.205は白紙ページとなり落丁ではございません.
目 次
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モータ制御
ハードウェアの準備(1) ラズベリー・パイ4専用DCファンと汎用DCファン
ハードウェアの準備(2) 汎用DCファン制御用FET回路
ハードウェアの準備(3) 汎用DCファン制御用FET回路の製作
ラズベリー・パイの準備(1) 起動用ディスクを作成する
ラズベリー・パイの準備(2) 周辺機器を接続する
ラズベリー・パイの準備(3) 起動後の設定
ラズベリー・パイの準備(4) LXTerminalを開く
ラズベリー・パイの準備(5) 本章のプログラムをダウンロードする
プログラム1 GPIOでCPU冷却用DCファンを手動ON/OFF制御
プログラム2 GPIOでCPU冷却用DCファンを自動ON/OFF制御
プログラム3 PWM出力でCPU冷却用DCファンの回転速度制御
プログラム4 回転速度制御のようすをクラウドに送信
指示どおりの角度にピタッと動力制御
第5章 ラズベリー・パイでサーボ・モータ制御
ハードウェアの準備(1) サーボ・モータとは
ハードウェアの準備(2) サーボ・モータの接続方法
ハードウェアの準備(3) 分度器を印刷して取り付ける
ハードウェアの準備(4) サーボ・モータの制御方法
サーボ・モータ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データ送信機