まるごと解説! 基本からカメラ/オーディオ/解析まで! 有線LANも高速Wi-FiもOK
すぐに作れる! ラズベリー・パイ×ネットワーク入門
Interface編集部 編
B5判 248(4C;8)ページ
定価2,970円(税込)
JAN9784789847100
2016年3月1日発行
好評発売中!
各家庭にWi-Fiのアクセス・ポイントがあったり,スマホにテザリング機能が搭載されていたりで,装置をネットワークに接続する環境は整っています.
ラズベリー・パイは700MHz動作のVer.1から,900MHz動作で4コアのVer.2に進化し,ハイビジョン動画やハイレゾ・オーディオなどを扱いやすくなりました.
ラズベリー・パイとネットワークを掛け合わせると,できることは無限に広がります.本書ではライブ・カメラやオーディオ/ラジオ・サーバ,セキュリティ・サーバ,電話交換サーバ,パケット蓄積&発生装置を作ります.ただ作るだけでなく,どのようなしくみで通信が成り立つのかを解説します.楽しみながらネットワークの技術が身に付きます.
目 次
映像や音を自在に伝達! セキュリティもばっちり
イントロダクション1 ラズベリー・パイでネットワーク・マシン作り放題
イントロダクション2 なんでもネット接続! IoT時代のコモンセンス
イントロダクション3 スマホ表示も! ラズベリー・パイ×Wi-Fiでライブ映像カメラを作れる
第1部 大容量Wi-Fi利用のライブ・カメラづくり
開発環境や自作ソフトウェア
第1章 用意するもの
ラズベリー・パイ2とスマホそれと専用カメラ
Wi-Fiなら高画質なハイビジョン映像を30フレーム/秒で送れる
第2章 ハードウェアの構成
コンピュータ・ボードにラズベリー・パイ2を使うメリット
Wi-FiモジュールにUSB接続タイプを使うメリット
ラズベリー・パイ2の特徴
【Column】1Gbpsの信号伝送も余裕! カメラ専用インターフェースMIPI-CSI
GPUを使ったH.264エンコード/デコードに挑戦!
第3章 ソフトウェアの構成
ライブ転送全体のフロー
カメラ側(送信側)プログラム
ハイビジョン・ディスプレイ側(受信側)プログラム
内蔵GPUを使うマルチメディアAPI…OpenMAX/IL
【Column】内蔵GPU操作に使えるもう一つのAPI…MMAL
Wi-Fiドングルなら伝送速度や周波数帯を変えるのも簡単!
第4章 実験成功! ハイビジョン・ライブ映像を飛ばす
実験1:送信と受信で同じ周波数帯を使う…通信レートが上がらない…
実験2:送信に2.4GHz帯を,受信に5GHz帯を使ってみる…快調!
【Column】私もライブ・カメラを動かしてみました
RTPプロトコルでリアルタイム・ストリーム転送
第5章 スマホ対応 映像送信プログラムを作る
スマホ・アプリで視聴できるデータの構造
スマホ・アプリで視聴するために…RTP送信プログラムを作る
成果確認…スマホでライブ映像を再生してみる
対応周波数/フィルタ/暗号化…快適に使うための勘どころ
Appendix 1 大容量通信向けアクセス・ポイントの選び方
UDPと組み合わせて使うと便利! パケットの順番を管理してくれる
Appendix 2 リアルタイム・データ転送向けRTPプロトコル
IoTに欠かせない! 大容量&ネットワーク直結OK
Appendix 3 無線通信の伝送速度比較…数Mbpsを送れるのはWi-Fiだけ!
第2部 外出先からOK! ネットワーク・カメラづくり
自宅サーバ公開時の必須アイテム! ダイナミックDNS
第6章 その1: IPアドレス通知装置の製作
自宅サーバをただで公開する方法
自宅サーバは手のひらLinuxボードで超便利な時代に!
製作の前に(1)…グローバルIPアドレスとLAN内IPアドレスを変換するしくみ
製作の前に(2)…ドメイン名とグローバルIPアドレスを変換するしくみ
IPアドレス通知装置のプログラム
いよいよサーバを公開
別の装置からブラウザでアクセスすると画像やテキストを渡してくれる
第7章 その2:Webサーバの構築
ラズベリー・パイで使えるWebサーバ・ソフトウェア
Apacheサーバ構築をやってみよう
Raspbian向けApacheのちょっと変わった特徴
【Column】HTTPでWebサーバからデータをとってくる流れ
インターネットで外出先からいつでも見られる
第8章 その3:いざ動画配信
手順1:ウェブ・サーバで画像を表示できるようにする
手順2:撮影画像を保存する
手順3:とりあえず完成! インターネット経由でアクセスできるようにする
手順4:動画配信に挑戦!
外出先から泥棒へ警告したり部屋の電気を灯けたり
第9章 改良:I/O機能をプラスしてホームIoTにチャレンジ
Linux×PICちょこっとリアルタイム・コントローラを作ったきっかけ
PICマイコンの選定
ラズベリー・パイ‐PICマイコン間通信
Linux側デーモン‐コマンドライン間通信プログラム
PIC同士のI2C通信プログラム
ユーザ希望回路をカチャ! PICマイコン側のセンシング・プログラム
【Column】Linuxは決まったパルス幅を送受信する赤外線リモコン通信が苦手
外出時に傘を鞄にセットしてくれる
Appendix 4 わたしのネットワーク生活…気象オープンデータでI/O
第3部 音声パケット交換サーバづくり
オープンソースのソフトウェアAsteriskでオレ流LINEができちゃう!
第10章 その1:IP電話のしくみ
無料通話アプリLINEのしくみ
オレ流LINEがうれしいこと
オープン・ソースなのに商用レベル! 電話交換ソフトウェアAsterisk
呼制御プロトコルSIP入門
VoIPで使われる音声コーデック
ラズベリー・パイに内線交換サーバAsteriskをセットアップ!
SIPクライアント・ソフトフォンをセットアップ
Asteriskを使ってみよう!!
Asteriskの設定ファイル
外出先から自宅のエアコンやシャッタをON/OFFできるようになる
第11章 その2:遠隔I/Oにトライ
インターネット・アクセスの前に…ルータのしくみ
自宅内ラズパイSIPサーバが外部ネットワークとつながる際の課題
固定IPアドレスがなくても自宅の機器を宅外から呼べるようにする方法
追加機能1:電話でGPIO制御に挑戦
外部電話回線からのLチカを試す
追加機能2:日本語テキストから応答ガイダンスを音声合成
第4部 セキュリティ・サーバづくり
オープンソース・ソフトウェアSoftEther VPN Serverでサッ
第12章 スマホ/ノートPCを自宅LANに接続OK! VPNサーバ
VPN通信のしくみ
オープンソースの定番VPNサーバ・ソフトウェアSoftEther VPN Server
SoftEther VPN Serverのインストール
インストールしたSoftEther VPN Serverの設定
使ってみる…外出先から自宅LANにアクセス
【Column】VPNの方式は2種類
【Column】VPN接続のメリット
【Column】VPNサーバの応用例…裏技! 自宅の電話を外出先から使う
第5部 趣味のサーバづくり
インタプリタ言語Rubyで高速開発! DNSやTCP/IPを動かす
第13章 その1:自動ウェブ・データ収集器
5日ぶんの天気予報データを収集してLEDで表現する
Arduino用ソフトウェア
ラズベリー・パイ用ソフトウェア
ラズベリー・パイとWebサーバとのやりとり
代表的なネットワーク通信方法 TCP/IPのしくみ
さすがI/Oコンピュータ! I2C/SPI/LANの組み合わせが楽々
第14章 その2:ベランダで受信して屋内へ! ラジオ中継器
A-Dコンバータ用連続SPI通信プログラム
ラジオ・モジュール用ソフトウェアI2Cプログラム
サーバ・プログラム
パソコン用クライアント・プログラム
192kHz/24ビットの大容量FIACフォーマットも楽に飛ばせる
第15章 その3:ハイレゾ・オーディオ送受信器
使用した音楽再生ソフトウェア
音楽データ・フォーマット別データ転送テスト結果
【Column】オーディオ用Linux RuneAudioをラズベリー・パイ2にインストールする方法
第6部 ネットワーク解析ツールづくり
手づくりパケット送信&受信環境で脱モヤモヤ
第16章 実験でステップ・バイ・ステップ! ネットワーク通信超入門
本章の目的…ネットワーク通信の脱モヤモヤ!
その1:FreeBSD側送受信プログラムの作成
その2:Linux側送受信プログラムの作成
送受信実験1…まずは適当なパケットを作って送受信してみる
送受信実験2…イーサネット・フレームを手づくりして送受信してみる
送受信実験3…ルータを突破して世界とつながるために! IPパケットを手づくりして送受信してみる
送受信実験4…アプリとつながる! UDPパケットを手づくりして送受信してみる
送受信実験5…手づくりUDPパケットをソケット通信してみる
【Column】パケット生成ツールの応用のヒント…独自パケット通信プロトコルの開発にも
【Column】持っている人は大切に! LAN通信テストの便利アイテム「リピータ・ハブ」
【Column】VirtualBox環境でうまく通信できないときあり…
ネットワーク通信の基本中の基本
Appendix 5 定番ソケットを利用したUDP通信プログラムの自作
MACアドレス/IPアドレス/UDP/TCP
Appendix 6 とりあえずこれだけは! イーサネット&IP超入門
専用機器はわかっているほど性能が出せる!
Appendix 7 PCと組み込みシステムのネットワーク・パケット処理の違い
よくあるMAC&IPアドレスの重複やデータ誤りなどをサッと発見!
第17章 ネットワーク・パケット解析環境の構築
その1…イーサ&IPヘッダの自作簡易アナライザ
その2…UDP/TCPもOKでフリー! プロの定番ネットワーク・アナライザWireshark
その3…自作のネットワーク・パケット・ロガー・ソフト
自宅でネットワーク上達の近道!
第18章 後から解析も簡単! ラズベリー・パイで作るパケット・ロガー
受信/送信/解析/変換…組み合わせていろいろ使える!
第19章 フリーのパケット操作プログラム群pkttools
ネットワーク・パケット操作プログラムpkttools活用例
Appendix 8 つながっているかを確認できる ping応答マシンの製作
フリーのパケット操作ソフトpkttoolsで物理層の接続確認がパッ!
第20章 ping応答ソフトで試して合点! ARP&ICMPのメカニズム
ping応答を試す
pingのための二大プロトコルARP&ICMP
ping応答ソフトウェアの作成
第7部 実験研究! Wi-Fi USBドングルの使い方&実力
LinuxならUSBも無線LANもネットワークも楽々!
第21章 Wi-Fiドングル用Linuxドライバ入門
2.4GHz帯も5GHz帯もいろいろ試してみました
第22章 ピッタリ! ラズベリー・パイにWi-Fiドングルをつなぐ
ドライバをゲットして改造
第23章 LinuxでいろいろなWi-Fiドングルを動くようにする方法
方法1:USBのID情報を登録する
方法2:ドライバを見つけてきてインストールする
公称値だけじゃなくて実力もスゴかった!
第24章 最高100Mbps級! 2.4GHz帯&5GHz帯Wi-Fiドングル通信速度の実力
数Mbpsで済むような小型モバイル用途向け
第25章 Wi-Fiモジュール図鑑
SPIでちょっと高速なWi-Fi版のXBee! XBee Wi-Fi(S6B)
カメラ&LCDが試せる! 評価キットの一部STM32F4DIS-WIFI
2.4GHz&5GHzに対応! WVCWB-R-003
USB/SDIOでもつながる! BP3591/BP3595/BP3599
SDIO接続で最高150Mbps! WYSAAVDX7/WYSAGVDX7
HTTPなどの上位プロトコルやWi-Fi Direct/WPS対応! GS2011M
ウェブ・サーバ機能も! CC3100MOD
ホスト・マイコン不要の直プログラミング・タイプ! CC3200MOD
内蔵Cortex-M3に直接プログラミング! WYSAAVKXY-XZ-I
USBホスト付きマイコンだからといってそう簡単にドングルが使えない理由
Appendix 9 Wi-FiドングルとWi-Fiモジュールの違い
付録…初めての人へ
OSの準備や書き込み/設定など
Appendix 10 ラズベリー・パイ×ネットワークを始める前に
無料で揃う
Appendix 11 リモート接続で快適! ネットワーク実験向きユーティリティ・ソフト