シリアル - みる会図書館


検索対象: トランジスタ技術 2016年9月号
49件見つかりました。

1. トランジスタ技術 2016年9月号

特集 Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 ル編集スケッチッールールプ 0 ・ , コンパイルと書き込み実行ボタン、 p 「 a ce01 ーリ a ! Practice 1 : シリアル出力する COPY 「阯 (c) 201S 物田間を ″起時に一度だけ実行される関数 ″シリアル通信速度を 3600 s に設定する ″叩実行後に繰り返し実行される関数 ″シリアルへ「 HeIIo, 」を出力する ″時問待ち ( 200mS ) ″シリアルへ「 wo 日 d ! 」と改行を出力する ″時問待ち ( 200 ” ) ン タ ッ を喞 p 「 ac れ ce01 ua パー Arduino 1 .6 -5 ESP モジュール SW2 ファームウェア 書き換えスイッチ、 写真 1 リセット・ボタンとファームウェア書き換えボタンをブ レッドボードに載せる 図 8 練習用のサンプル・スケッチ AT コマンドで ESP モジュールを制御する場合 , ファームウェアをオリ [cqpub_esp] の中から [l_practice] を選択し , さらにその ジナルに戻す必要がある . SWI と SW2 を操作して , オリジナルのファ 中から [practice01 uart] を選択する . 左上の [ → ] アイコン ームウェアに戻すことができる をクリックすると , スケッチのコンパイルと ESP モジュールへの書き 込みが行われる が誤っている恐れもあります . [ ポート ] メニューで 選択可能なシリアル COM ポート番号を確認してから , 語を拡張したものです . C 言語の機能と Ard ⅲ n 。の独自機能について説明します . ESP モジュールに接続している USB ケープルを抜き , リスト 1 の内容を確認します . Arduino のスケッチ 再度 , [ ポート ] メニューで選択可能なシリアル COM ポート番号を確認してください . はじめの確認のとき は , 大きく二つのプロックに分かれます . 前半は , スケッチ内の手順①の「▽。土 d に存在していた COM ポート番号のうち , 後の確認時 setup ( ) 」の「 { 」から「 } 」までの 3 行です . この「 setup 」 になくなった COM ポートが , ESP モジュールのシリ アル COM ポート番号です . は関数名です . そして , 「 { 」と「 } 」の中の記述は setup 関数の内容です . ESP モジュールが起動したと ESP モジュールを再接続し , その ESP モジュール きに , この setup 関数の内容が一度だけ実行されます . 用のシリアル COM ポート番号を選択してください . 後半のプロックは , 手順③の 1 。。 p 関数です . 前述 ■練習用プログラムの定番 He , world! の setup 関数を実行した後に , この 1 。。 p 関数の内 ・ ESP モジュールにプログラムを書き込む 容を繰り返し実行します . この練習用スケッチ pract 土 ce01 uart( リスト 前の説明で ESP モジュールに書き込んだスケッチ practice01 uart ( リスト 1 ) は , シリアル (UART) 1 ) の場合 , ESP モジュールを起動したときに手順② を実行し , その後 , 手順④ ~ ⑦を繰り返し実行します . 端子から「 He11 。′ world! 」の文字列データを出 力する練習用のサンプル・スケッチです . 、①「 setup 」関数を定義します . 関数の定義の方 ESP モジュールのシリアル出力は , USB シリアル 法は C 言語の仕組みですが , この関数名「 setup 」 変換アダブタを経由してパソコンへ接続されています . の役割は Arduin 。独自のものです . 「 setup 」関 このため , ESP モジュールからシリアル出力されたテ 数の中 ( 「 { 」と「 } 」で囲まれた区間 ) には , ESP キストのメッセージを , Arduino IDE のシリアル・モ モジュールの起動時やリセット時に一度だけ実行 この機能は , デバイス開発途中 ニタで確認できます . する命令を記述します . 関数名の前の「 v 。土 d 」は , のデバッグ ( スケッチの不具合対策 ) にも利用します . 戻り値 ( 結果 ) のない関数であることを示します . Arduino IDE の表示ウインドウ右上にある虫眼鏡の ②「 serial ・ begin 」は , シリアル通信を開始す アイコンをクリックすると , シリアル・モニタが開き , るときに使用する Arduin 。独自の命令です . かっ 図 9 のように He 工 10 ′ world ! のメッセージが表示 こ内の引き数には , シリアルの通信速度を記しま されます . 表示されない場合は , ウインドウ右下のビ ここでは 9600bps に設定します . す . ット・レートを 96 開 bps にしてください . ③手順④ ~ ⑦を繰り返し実行する「 1 。。 p 」関数を 定義します . 手順①の setup 関数と同様に C 言 ・スケッチの処理の流れ 語の関数定義の仕組みを使った Arduin 。独自の関 こからはスケッチを見ながら解説を進めます . 数名です . Arduino で使用するプログラム言語スケッチは , C 言 ンシスタ技術 2016 年 9 月号 void を叩 ( ) { Se 日引 .2 引 n ( 3600 ) : void ( ) { SeriaI.print("Heiio, つ : y ( 200 ) : S«ial . println("world!"); y ( 200 ) : 65

2. トランジスタ技術 2016年9月号

リスト 1 練習用スケッチ p て ac 巨 0e01 Uart ESP モジュールは「 He110 , world! 」という 文字列データをシリアル ( UART ) 端子からパソコ ン ( A 「 duinolDE ) に向けて出力する ・一⑦ Ⅱ 0 , World! Practice 2 : シリアル出力する ② void setup() { ① de1ay(200);——⑤ Seria1. print ( " He110 ′ void 100P ( ) { する Seria1. begin(9600) ー Serial ・ println("world! ” ) ー・一⑥ de 1 ay ( 2 0 の一 / / 起動時に一度だけ実行される関数 ノ / シリアル通信速度を 9600bPS に設定 〃 setup 実行後に繰り返し実行される関数 ノ / シリアルへ「 He110 ′」を出力する / / 時間待ち ( 200 爪 s ) ノ / シリアルへ「 Wor1d ! 」と改行を出力する / / 時間待ち (200ms) 比較的自由に使うことができます . ー英一 COM3 Ⅱ 0 , World! Ⅱ 0 , World! Ⅱ 0 , 自動ス如ル スペース , タブは , パソコンのディスプレイに HeIIO. WorId ! と表示される ビット・レート 改行なし 9600 bps ご 図 9 Arduino IDE の機能シリアル・モニタの表示例 サンプル・スケッチ「 practice01 uart 」は , He110 ′ world ! の文字列をシリアル出力するプログラム . 正しくコンパイル され , ESP モジュールに書き込まれると , シリアル・モニタに He110 ′ world! が表示される ④「 serial. print 」は Arduino 独自のシリアル 出力命令です . 「”」 ( ダブル・クオーテーション ) で囲まれた文字列を出力します . こでは 「 He11 。′」を出力します . ⑤「 delay 」は ESP モジュールが何もしない待ち 処理を実行する Arduino 独自の命令です . ここで は LED 点灯後に約 200mS の時間を待ちます . あ まり長い待ち時間を設定すると , 他の通信処理な どに影響が出る場合があります . ESP モジュール では , 5 開 ms 以下にしましよう . ⑥「 serial . println 」も Arduino 独自のシリ アル出力命令です . 手順④との違いは出力後に改 行を出力することです . つまり , 「 wo て ld ! 」を 出力した後に , 改行を出力します . ⑦「 deley 」は , ⑤と同じで , 指定時間だけ何も しないで次の処理を待ちます . こでも約 200ms 処理を待ちます . 命令の語尾には必ず島 ( セミコロン ) 」を付け , つの命令の区切りを明示します . 命令の区切りをセミコロンで明示するので , 改行や 66 スケッチを見やすく書くことで , プログラムの不具合 ( バグ ) を減らすことができます . 以上の練習用スケッチの内容が理解できたら , メッ セージを自分で変更して , コンパイルと書き込みを実 行してみてください . IoT 製作④ L チカ ・プログラミング初めの一歩 LED を点滅させるスケッチを使って LED の点滅を 行ってみましよう . ハードウェアは第 1 章で作成した実験用ポードに LED と 1 k Q の炭素皮膜抵抗器を追加します . ハード ウェアを変更するときは , 必ず USB ケープルを取り 外し , 電源を切った状態で行ってください . LED と炭素皮膜抵抗器の追加個所を図 10 の回路図 に示します . 製作例は写真 2 を参考にしてください . LED のアノードを ESP モジュールの IO 13 ( 5 番ピン ) に接続し , カソードには炭素皮膜抵抗器を接続します . そして , 炭素皮膜抵抗器の反対側をプレッドボード右 側の一 ( マイナス ) に接続します . 念のために写真 3 に LED の詳細を示します . LED の極性に注意してくだ さい . LED 追加後 , 配線に誤りがないことをよく確かめ , 問題がなければ , USB ケープルをパソコンに接続し , 前節と同様の方法でスケッチ「 practice02 led 」 を ESP モジュールに書き込みます . 正常なら , LED が点滅を始めます . うまく動かない場合は , プレッド ポードの上側のリセット・ボタン SWI を押してみて ください . それでは , リスト 2 の処理内容を確認します . 以下 に本スケッチ内の処理の流れを説明します . ①「 #define 」は定数を定義する C 言語の命令です、 こでは , LED を接続する IO ポートの定数 P 工 N LED へ , IO ポート番号の値 13 を定義します . トランシスタ技術 2016 年 9 月号

3. トランジスタ技術 2016年9月号

USB シリアル変換アダブタを USB 端子から抜き , そ のときにデバイスマネージャから消えた COM ポート 番号を確認します . USB からの電源供給が不十分だと , ESP モジュー ルの動作が不安定になります . 起動しない場合や , 通 信が途切れやすい場合は , プレッドボードの左側の電 源ライン + と一に 470 uF 程度の電解コンデンサを追 加すると改善される場合があります . シリアル USB 変換アダブタ 図 4 ESP モジュール実験用ポードをパソコンの USB 端子に接 ・ターミナル・ソフトでモジュールへコマンドを入 続する 力するシリアル通信接続で , ESP モジュールにコマ 初回接続時に , USB シリアル変換アダブタのドライバをインスト ール するために少し時間がかかる ンドを送る 購入したばかりの ESP モジュールには , AT コマン デバイスマネージャ ド API が実装されています . AT から始まるコマンド 方イル旧撮作囚表示凹レプ凹 を使って , Wi ー Fi 通信の動作確認を行うことができ 団立ー蜃も ます . AT コマンドを手動で送受信するにはターミナ まヒューマンインターフェイスデバイス ル・ソフトが必要です . カームウェア こではターミナル・ソフト Tera Term を使用し レロプロセ ) サ ます . 下記のサイトから Tera Term をダウンロード 0 ポー ′ート .COM と LPT) し , Windows 7 ~ 10 が動作するパソコンにインスト USB SeriaI 代 ( 00M5 ールしてください . r-r イングデバイス をモニター Tera Term ホームページ ・ユニバーサルシ」アルバスコン、ローラー http://ttssh2.osdn.jp/ 物印刷キュー COM ポート番号を確認する TeraTerm を使って ESP モジュールに接続するに は , シリアル・ポートやターミナルの設定が必要です . 図 5 デバイス・マネージャの表示例 Tera Term の「設定」メニューから [ シリアル・ポ USB SeriaI PO が , どの COM ポート番号になったかを確認する . 同 ート ] を選択して , シリアル・ポートの設定画面を開 じパソコンでも違う COM ポート番号が付与されることがあるので , 毎 回確認する必要がある いてください . 一番上の項目「ポート」には , ESP モ ジュールが接続されたシリアル COM ポート番号を指 定します . その他の項目は , 図 6 と同じように設定し 分の時間を要する場合があります . ます . 送信遅延の「 50 ミリ秒 / 行」は , ESP モジュー 自動的にドライバがインストールされなかった場合 ルの処理待ち時間です . 設定後 , COK] をクリックし やインストールを急ぐ場合は , IC の製造元である て設定画面を閉じます . FTDI 社のホームページから仮想シリアル・ドライバ 次にターミナルの設定を行います . 「設定」メニュ (VCP Driver) をダウンロードし , インストールします . ーから [ 端末の設定 ] を選択し , 図 7 のように設定し 付与された COM ポート番号を知る方法はいくつか てください . 「改行コード」の「受信」を「 LF 」に こでは , 「デバイスマネージャ」を使用 あります . 送信を「 CR + LF 」に , またローカル・エコーのチェ します . 以下は , Windows 7 の場合です . ック・マークを外してください . 設定後に COK] を ①「スタート」メニュー内の「コンピュータ」を右 クリックして「プロバティ」を開きます クリックします . 次に , 「設定」メニューから [ 設定の保存 ] を選択し , ②画面の左側の「デバイスマネージャ」を開きます . [ 保存 ] ボタンをクリックします . 設定ファイル Windows 8 ~ 10 では「 Windows 」キー (Windows 「 TERATERM. INI 」が上書き保存され , 次回以降の ロゴのキー ) を押しながら「 X 」キーを押し , マウ 起動時に , 変更した設定が自動的に読み込まれます . スで「デバイスマネージャ」を選択します . Tera Term から , 「 AT 第」と入力して接続を確認 ③デバイスマネージャの一覧の中から「ポート .COM と LPT) 」の + をクリックすると , COM ポート番 してみます . ESP モジュールと通信ができていれば , 「 OK 」の応答が表示されます . 「 OK 」が出ない場合は , 号が表示されます . 図 5 は , 「 USB SeriaI port 」に 「 COM5 」の COM ポート番号が付与された例です . ESP モジュールや TeraTerm を再起動してみます . ESP モジュールを再起動させるには , プレッドボー もし , 複数の COM ポートが表示された場合は , トランシスタ技術 2016 年 9 月号 DIP 化変換基板 3 ESP モジュール (ESP-WROOM-02) パソコン USB 50

4. トランジスタ技術 2016年9月号

Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 特集 リスト 1 ESP モジュール に接続した LED を Wi- Fi Examp1e 1 : ED を点滅させる 経由で点減させることがで きるスケッチ・プログラム / / w 土ー機能を利用するために必要 #include く ESP8266WiFi. h> ① (examp1e01 led) / / 工 0 13 ( 5 番ピン ) にも ED を接続する #define PIN_LED 13 ※使用する Tera Term から ESP モジュー / / 無線 LAN アクセス、ポイントの SS 工 D #define SSID " 1234ABCD ” ②無線 LAN に ″バスワード #define PASS "password" ルに接続すると , Arduino IDE 合わせる WiFiServer server ( 23 ) ・ -- - ・ -- 、 ( ◎ ) ー〃一サバ ( ポート 3 TELNET) 定義 のシリアル・モニタに 「 connected 」か表示される . / / 起動時に一度だけ実行する関数 void setup() { 「 1 司や「 0 司を入力すると , 〃も ED を接続したボートを出力に pinMode (P 工 N—LED ′ OUTPUT) ー 〃動作確認のためのシリアル出力開始 Seria1. begin(9600) ー LED の点灯ー消灯が制御できる 〃「 Examp1e 01 」をシリアル出力表示 Seria1. println("ExampIe Ol LED") ー 〃無線 LAN を STA モードに設定 WiFi. mode (WIF 工 _STA) ー ④ 〃無線 LAN アクセス・ポイントへ接続 WiFi. begin(SSID ′ PASS) ー 〃接続に成功するまで待つ ! = WL_CONNECTED) { while (WiFi. status ( ) ⑤ 。〃待時問処理 de1ay(500); / / サーバを起動する server. begin() ー⑥ serial. print1n(WiF1.10Ca1 工 P() ) ・一く〔② ) 〃本機の工 p アドレスをシリアル出力 〃繰り返し実行する関数 ノ / w 土ー F 土クライアントの定義 〃文字変数を定義 〃接続されたクライアントを生成 / / 非接続のときに 100P ( ) の先頭に戻る 〃接続されたことをシリアル出力表示 〃当該クライアントの接続状態を確認 〃クライアントからのデータを確認 ノ / データを文字変数 c に代入 〃文字の内容をシリアルに出力 ( 表示 ) 〃文字変数の内容が「 0 」のとき 〃 LED を消灯 〃文字変数の内容が「 1 」のとき 〃工 ED を点灯 イントロダクション 1 2 3 4 5 6 7 void 100P ( ) { WiFiC1ient client; ) Char c; client = server. available() ー if(c1ient==0) return; Serial. println("Connected") ー while (client. connected ( ) ) { if(client. available() ) { c=client. read() : Seria1. write(c) ・--〈@) i f ( c = = ℃り { digita1Write(P 工 N—LED,LOW) ー } e 1 se i f ( c = digitaIWrite(PIN_LED ′ HIGH) ー ⑨ ⑩ client. stop ( ) ・・-・く〔@) Seria1. print1n("Disconnected") ー 〃クライアントの切断 / / シリアル出力表示 モニタに「 Connected 」が表示されます . この状態で , クして , 「シリアル・モニタ」を開きます . プレッド Tera Term から「 1 第」や「 0 」を入力してみまし ポード上のリセット・スイッチを押し , しばらくする よう . LED の点灯ー消灯を制御できるようになります . と , ESP モジュールの IP アドレスが表示されます . スケッチの内容を見てみます . 必要に応じて , スケ この状態で , 同じネットワークに接続されたパソコン ッチに書かれた解説を合わせて読んでください . やラズベリ ・パイから , ESP モジュールの IP アド レスのポート 23 へ TCP バケットを送信すると , LED ① ESP モジュールの W ト Fi 無線 LAN 機能を使用す を制御することができます . このサンプル・スケッチ るためのライプラリを組み込むための処理 . ESP モ は , ESP モジュールが「 0 」を受け取ると LED が消灯 ジュール用のスケッチを作成するときに記述します . し , 「 1 」を受け取ると点灯します . ESP モジュールの起動後は , setup に書かれた処 TCP バケットの送信は SocketDebuggerFree, 理が実行されます . TELNET, Bash コマンドなどが使用できます . Tera ②の情報でアクセス・ポイントに自動でログインします . Term の TELNET 機能を使う場合は , Tera Term を ③ ESP モジュールの TCP サーバを定義します . 起動し , [ ファイル ] メニューから「新しい接続」を ④で無線 LAN アクセス・ポイントの接続命令を実 選択すると図 2 の画面が表示されます . ここで , CTCP/ 行して , IP] を選択し , 「ホスト」の欄に ESP モジュールの IP ⑤で接続に成功するまで待機します . アドレスを入力し , 「サービス」の「 Telnet 」を選択 ⑥の処理に移り , TCP サーバを起動します . して , COK] をクリックすると ESP モジュールに接 ⑦ ESP モジュールの IP アドレスをシリアルに出力 続要求を出します . 接続すると , Arduino のシリアル・ トランタ技術 2016 年 9 月号 71

5. トランジスタ技術 2016年9月号

方イル編集。、。スケッチツを。 , へ ) け フプイル編集スケッチーツール・。ヘル′り 0 ぼ三、 嶄規万イル朝 自整形 スケ野をアーけする 、 Op Äecent 工ンコーデわグを正 アルモ : 夕、な 0 セト + M スケッチの例 飛、ドをⅸ田卵 20 を物面 P ハ Copyright (c) 2016 Wataru KIJNINO 第ツ 0 セト S 褓存 肥れ呼物 OM を。 名前を付けて保存 0 ト + S の場合 プルタ殳定 : : 0 セト新に。 - 。″起時に一度だけ実行される関数 0 + P ″シリアル通信速度を 9600 s に設定するを SeriaI .2 引 n ( 36 0 øor ド D 環ま能殳定に℃ + がを を 0 土地レドす せ ' 購入品に合わせる数 ″叩実行御こ繰り返し実行される関数 yoid 叩 ( ) { ″シリアルへ「Ⅱ。 , 」を出力する S0ⅵ引 . print("Heiio, つ・ SeriaI.print("Hé ″時問待ち ( 200mS ) y ( 200 ) : y ( 200 ) : ″シリアルへ「 w 。日 d ! 」と改行を出力する 書込置 , な v 戸 SeriaI. println("wor\d!"); Se ⅵ引 . println('% ″時問待ち ( 200mS ) del ( 200 ) : d 引 ay ( 200 ) : パソコンのシリアル COM ポート番号に合わせる } インストールしたサンプル・スケッチを開く 図 7 インストールしたサンプル・スケッチを開く 図 6 Arduino IDE のツール設定 [ ファイル ] ー [ スケッチブック ] メニューから , トランジスタ技術編 開発環境のインストールと設定後 , Arduino 旧 E の [ ツール ] メニュー 集部の web サイトからダウンロードしたサンプル・スケッチを開く 内の項目 [ ポード ] に , ESP モジュールに関連した機器名 (Generic ESP8266 ModuIe) が追加される を指で押したまま , SWI を押し , SW2 を押さえたま ま SWI だけを離してください . その後 , ファームウ スケッチブックの保存場所 ェア書き換えボタン SW2 を離します . 順番通りに行 C :YUsersY( ユーザ名 )YDocumentsYArduino わないと ESP モジュールのファームウェア書き換え 機能が正しく動作しません . 工クスプローラでの表示 ( ーザ名 ) ママイドキュメント VArduino サンプル・スケッチの説明 それでは , ダウンロードしたスケッチを ESP モジ コビー後 ュールに書き込むために , サンプル・スケッチを開い ( ユーザ名 ) ママイドキュメント VArduinoV てみましよう . cqpub esp 図 7 の Ccqpub esp] の中から [ 1 practice] を選択し , さらにその中から Cpractice01 コピーが終わったら , ArduinoIDE を起動します . uart] を選択してください . 図 8 のスケッチ ( プログ すでに起動している場合は , Arduino IDE の [ ファイ ラム ) が表示されます . ル ] メニュー内の [ 終了 ] を選択し , 一度 , 終了させ Arduino IDE 上の [ → ( 右矢印 ) ] アイコンをクリッ てから , 起動し直してください . 起動後 , [ ファイル ] クすると , スケッチのコンパイル後 , ESP モジュール メニュー内の [ スケッチブック ] を選択すると , コピ に書き込みます . コンパイルとは , スケッチを ESP ーした [cqpub esp] が図 7 のように表示されます . モジュール上で動作可能な実行形式のファイルに変換 ■ ESP モジュールにスケッチを書き込む する処理です . もし , スケッチに不具合があると , Arduino IDE の下段部のグリーンの帯がオレンジ色に ・ ESP モジュールをカスタマイズする 変わり , ェラー内容が表示されます . その場合は , 書 スケッチ ( プログラム ) を ESP モジュールに書き込 き込みは実行されません . 修正し , やり直す必要があ む前に , 念のため注意点を説明します . ります . スケッチを書き込んだ ESP モジュールは , 第 1 章の ような AT コマンドを実行することができなくなりま ・シリアル COM ポート番号を合わせる す . ただし , 元のファームウェアを再び書き込むこと 正しくシリアル接続されていない場合にもエラーが で元に戻すことも可能ということですが , 実際的には , 発生します . 「マイコン・ポードに書き込んでいます」 AT コマンド用と , スケッチ書き込み用のモジュール のメッセージが表示されれば , コンパイルが成功した を使い分けると簡単で便利です . ことがわかります . その後に , 「 error: espcomm スケッチを書き込むときは , プレッドボード上の upload mem failed 」のようなメッセージが表 SWI ( リセット・ボタン ) と SW2( ファームウェア書き 換えボタン ) を操作します . ボタンの位置を写真 1 に 示された場合は , シリアル接続のエラーです . ファー ムウェア書き込みモードになっていない恐れがあるの 示します . で , 再操作してください . シリアル COM ポート番号 ファームウェアの書き換えモードにするには , SW2 トランタ技術 2016 年 9 月号 t»practice()l uart ー Ardujno 1-6 -5 æpracttce01 uart ー Ar ino 6.5 00 ロ 0 , 0 ー北ミいい , い 2 ト ユヤ、づッり practice01—uatt ロロ b 上き卩 第 64

6. トランジスタ技術 2016年9月号

ピン・ヘッダをはんだ付けする (b) USB シリアル変換アダブタ (a) USB シリアル変換アダブタ 写真 7 パソコンと ESP ー WROOM ー 02 を接続する . USB シリアル変換モジュール AE ー FT234X ( 秋月電子通商 ) ピン・ヘッダのはんだ付け ( a ) ここで使った超小型 USB シリアル変換モジュール AE ー FT234X ( 秋月電子通商 ) は , 付属の 4 ピンのヘッダをはんだ付けする ( b ) はんだ付け前に , ポリイミド・テープを巻いて絶縁しておくと , 他の金属との接触や静電気によって本アダブタが壊れるリスクを低減することがで きる . ピン・ヘッダの端子部と USB コネクタの差込口については , 開口しておくとよい . ピン・ヘッダと基板は直角になるようにはんだ付けする あらかじめ切断箇所にカッタ・ナイフでキズを付けて プレッドボードを使って おき , ラジオ・ペンチ等で折り曲げます ( 写真 4 ). 実験用ポードを製作する 切断した 2 本の 9 ピンのピン・ヘッダをピッチ変換 ・ ESP モジュールを使った試作実験に便利 基板の裏面から挿入しはんだ付けします ( 写真 5 ). プレッドボードを用いて写真 2 のような ESP モジュ れで Wi ー Fi モジュール ESP ー WROOM ー 02 DIP 化キ ールの実験用ポードを製作します . はんだ付けは不要 ットは完成です ( 写真 6 ). です . 回路図を図 2 に示します . USB シリアル変換アダブタ ( 写真 7 ) にもピン・ヘッ まず , プレッドボードにジャンパ線を実装 ( 配線 ) し ダをはんだ付けします . 基板上の IC が , ピン・ヘッダ ます . プレッドボードに書かれた数字の小さい位置か のはんだ付けパッドに近いので , 余分なはんだが IC , ら順番に行うと , 配線のし忘れが減ります . プリント・パターンに付着しないように注意してくだ ジャンパ線 (E ー CALL ENTERPRISE 社 EIC ー J ー L) さい . の絶縁材の色は , 長さをカラー・コードで示していま す . 写真 8 に合せれば , ジャンパ線の長さが製作例と 一致します . タクト・スイッチのリード線は , 曲げ加工されてい るので , ラジオ・ペンチを使ってリード線を , 写真 9 のように真っ直ぐに伸ばしてプレッドボードに挿入し ます . ボタン操作時に外れてしまうような場合は , リ ード線の先端を少し内側に曲げて , 外れにくくすると 良いでしよう . 3.3V 3.3V 8 ワー ( 0 ) 4 ・つっ J 4 ー 1 ・つっ ) 乙・ ) ( 0 ワー 8 0) 3V3 GND 1016 EN IO 1 4 TOUT 1012 RESET 1013 105 GND 1015 102 TxD IOO RxD GND 104 ESP-WROOM-02 1 0k SWI USB シリアル変換 モジュール AE FT234X 5V GND TX RX SW2 、日いれ 3 端子レギュレータ TA48M033F 3.3V OUT IN + 02 GND 47 16V 不安定な 場合は 470 ″ 図 2 ESP モジュール実験用ポードの回路図 ESP モジュール ( ESP ー WROOM ー 02 ) を使った回路の試作を繰り返すこ とを考えブレッドボードで作った 伸ばす 曲がって -- いる 写真 9 ブレッドボードに挿し込めるようにタクト・スイッチの リード線を伸ばす タクト・スイッチのリード線は曲げ加工されていて , ブレッドボードに 挿しにくいので , 写真のようにリードを伸ばす トランシス 9 技術 2016 年 9 月号 48

7. トランジスタ技術 2016年9月号

Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 イントロダクション 1 2 3 4 、 5 6 7 パソコンや USB シリアル変換アダブタを使用する場 ESP-WROOM-02 合は , 画面表示 , ピン配列などを , 実際に使用する機 器に合わせて読み替える必要がありますが , 基本的に はシリアル通信で接続します . 最初に , ESP モジュールの実験用のボード ( 写真 2 ) を作成します . 使用したパーツを表 2 に示します . ESP-WROOM-02 DIP 化キット ( 秋月電子通商 ) は , ピン・ピッチ変換基板に ESP モジュールが実装済み ( 写真 3 ) で , プレッドボードやユニバーサル基板にそ のまま接続できます . ピン・ピッチ変換基板と USB シリアル変換アダブタのはんだ付け DIP 化キットに USB シリアル変換アダブタを実装 写真 3 ESP モジュール ESP-WROOM-02 D 旧化キット ( 秋月 電子通商 ) ・ D 旧化基板を利用する ESP モジュールが実装済みの 2.45mm ピッチ変換基板キット . ピン・ ESP-WROOM-02 DIP 化キットには , 10 ピンのヘ ヘッダをはんだ付けしてブレッドボードにそのまま挿したら , すぐに動 作実験を始められる ッダが 2 本 , 付属しています . ピン・ピッチ変換基板 側は各 9 ピンなので不要な 1 ピンを切り落とします . 表 2 動作実験を行うのに必要な最小限の部品 ESP-WROOM-02 DIP 化キットを使って ESP モジュールの動作実験 を行うためにブレッドボードに USB シリアル変換モジュールや電源 , リセット・スイッチを準備した 主要部品 ESP ー WROOM ー 02 DIP 化キット レギュレータ 3.3 V5 開 mA TA48M033F 電解コンデンサ 47 F セラミック・コンデンサ 0.1 uF USB シリアル変換アダブタ タクト・スイッチ 抵抗器 ( 1 / 4 W) 10 kQ 電解コンデンサ 470 F プレッドボード E ー CALL EIC ー 801 プレッドボード用ジャンパ EIC ー J ー L プレッドボード用ジャンパ BBJ ー 20 ピン・ヘッダ ( 要はんだ付け ) D 旧化基板 量式個個個式個個個枚式式 写真 4 ESP モジュール ESP-WROOM-02 D 旧化キットのピ ン・ヘッダを切り落とす ESP モジュールが実装済みの DIP 化キット付属の 2 本のピン・ヘッダを 不要な 1 ピン分を切り落として , 変換基板にはんだ付けする ESP モシュール (ESP-WROOM-02) 平行に保っための支え台を用 意する ( 電導スポンジを代用 ) ESP モジュール 、さをトいを ESP モジュール D 旧化キット (AE-ESP-WROOM-02) はんだ付けしたピン・ヘッダ D 旧化基板 写真 5 Wi-Fi モジュール ESP-WROOM-02 D 旧化キットのピ 写真 6 ESP モジュール ESP-WROOM-02 D 旧化キットの完 ン・ヘッダをはんだ付けするコツ 成例 基板が机に対して平行になるように安定させてから作業を行う . はんだ ESP モジュールが実装済みの DIP 化キットに付属のピン・ヘッダを分 ごての熱がスポンジに伝わると , 溶けて有害なガスが発生してしまうの 断して残った 9 ピンを 2 個所にはんだ付けすると ESP モジュール実装済 で , はんだ付けを行うヒ。ン・ヘッダから離れた位置で保持する み DIP 変換基板が完成する ンタ技術 2016 年 9 月号 47

8. トランジスタ技術 2016年9月号

Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 特集 リスト 5 Wi-Fi 気圧計用 のスケッチ (examp1e10 hpa) SSID とパスワードの設定が 必要 . 3 か月以上の連続動作 が可能 イントロダクション 1 2 3 4 ~ 5 6 7 Examp1e 10 : 気圧センサ LPS25H Copyright (c) 2016 Wataru KUN 工 NO 〃 ESP8266 用ライプラリ #include く ESP8266W 土 F 土 . h > ″ UDP 通信を行うライブラリ #include <WiFiUdp. h> 〃工 0 13 ( 5 番ピン ) をセンサ用の電源に #define PIN_EN 13 / / 無線も AN アクセス・ポイントの SS 工 D #define SS 工 D ” 1234ABCD " 〃バスワード #define PASS "password" / / 送信先の工 P アドレス #define SENDTO " 192 ユ 68. O. 255 ” / / 送信のポート番号 #define PORT 1024 〃スリープ時間 29 分 (uint32-t) #define SLEEP_P 29 ☆ 60 ☆ 1000000 〃デバイス名 ( 5 文字 + ”“ + 番号 + ”′” )- #define DEVICE "press_l, " 送信バケットに 付与するデバイ 〃起動時に一度だけ実行する関数 void setup() { ス名を定義 ( 機 / / アクセス・ポイント接続待ち用 int waiting=O; 器識別用 ) / / センサ用の電源を出力に pinMode ( PIN_EN, OUTPUT) ー 〃センサ用の電源を ON に digita1Write(P 工 N—EN,HIGH) ー ″気圧センサの初期化 〃動作確認のためのシリアル出力開始 Seria1. begin(9600) ー ア「 Examp1e 10 」をシリアル出力表示 SeriaI. printIn("Examp1e 10 hPa") ー / / 無線 AN を STA モードに設定 WiFi. mode (WIF 工 _STA) ー 〃無線も AN アクセス・ポイントへ接続 WiFi. begin()S 工 D,PASS) ー / / 接続に成功するまで待つ while (WiFi. status ( ) ! = WL_CONNECTED) { / / 待ち時間処理 de1ay(IOO); ノ / 待ち時間カウンタを 1 加算する waiting 十十一 / / 進捗表示 if(waiting%10==O)Seria1. print(). ,) ー 〃 300 回 ( 30 秒 ) を過きたらスリープ if(waiting > 30 の sleep() : ア本機のアドレスをシリアル出力 SeriaI. printIn(WiFi. 10Ca1 工 P() ) ー / / UDP 通信用のインズタンスを定義 〃センサ用の浮動小数点数型変数 / / 温度を取得して変数 te Ⅲ p に代入 ノ / 気圧を取得して変数や ress に代入 ノ / 気圧センサの停止 〃適切な値のとき 〃 tJDP 送信先を設定 / / デバイス名を送信 〃変数 temp の値を送信 ″シリアル出力表示 〃「′」カンマを送信 / / シリアル出力表示 / / 変数 p て ess の値を送信 〃シリアル出力表示 / / UDP 送信の終了 ( 実際に送信する ) ※使用する 無線 LAN に 合わせる void 100P ( ) { WiFiUDP udp; float temp,press; temp=getTemp ( ) , ・ -- -- ・一 ( ま ) 哽の ) IpsEnd ( ) ー if( temp>—IOO. & & press>=O. ) { udp. beginPacket (SENDTO, PORT) : udp ・ print (DEV 工 (E) ー udp ・ print (temp, の・・・一 - ・ < を ) 哽④ ) Seria1. print (temp, 2 ) ー udp. print ( ” Seria1. print(" udp. println (press, の・・一・ - くを ! 哽④ ) Serial. println(press,2) ー udp. endPacket ( ) ー sleep ( 房 以下 , 省略 lnterface lnterface 2016 年 8 月号 B5 判 168 ページ定価 1 , 000 円 ( 税込 ) あちこち T コンピュータの可能性を探る 特集 SD カード便利帳付き ! 切手サイズ厄 T 無線センサ入門 Wi ー Fi 通信機能を内蔵した SD カードがより高機能になりました . SD カードの端子に LED やスイッチを 直結でき , SD カード単体で起動して自律動作も可能になりました . Wi ー Fi 内蔵 SD カードにセンサを直結 して IoT 端末もできちゃいます / さらに特設記事として , SD カード仕様や SD コマンドなどを徹底解説した 「保存版 SD カード便利帳」付きです / http://shop.cqpub ℃ 0. jp CQ 出版杠 93 ンシスタ技術 2016 年 9 月号

9. トランジスタ技術 2016年9月号

特集 Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 リスト 4 Wi- Fi 温湿度計 用のスケッチ (exampIe09 hum) SSID とパスワードの設定が 必要 . 3 か月以上の連続動作 が可能 イントロタクション 1 2 3 4 5 6 7 Examp1e 9 : 湿度センサ日 DC1000 #include く ESP8266W 土 F 土 . h > ノ / ESP8266 用ライプラリ #include <WiFiUdp. h> 〃 tJDP 通信を行うライブラリ ※使用する / / 無線 LAN アクセス・ポイントの SS 工 D #define SSID " 1234ABCD ” 無線 LAN に 〃バスワード #define PASS "password" 合わせる / / 送信先の工 P アドレス #define SENDTO ” 192.168 0.255 " = 〃送信のポート番号 #define PORT 1024 〃スリープ時間 29 分 ( u 土 nt32 ユ ) #de f ine S LEE P P 2 9 * 6 0 * 10 0 0 0 0 0 〃デバイス名 ( 5 文字 + ”” + 番号 + ”′” ) #define DEVICE "humid 1 ′” 送信バケットに 付与するデバイ 〃起動時に一度だけ実行する関数 void setup() { ス名を定義 ( 機 ″アクセス・ポイント接続待ち用 int waiting=O; 器識別用 ) 〃湿度センサの初期化 〃動作確認のためのシリアル出力開始 Seria1. beq土n(9600) ー 〃「 Examp1e 09 」をシリアル出力表示 Seria1. println ("Examp1e 09 HUM") ー WiFi. mode (W 工 FI_STA) ー 〃無線 LAN を STA モードに設定 み無線 LAN アクセス・ポイントへ接続 WiFi. begin(SSID,PASS) : while (WiFi. status ( ) 〃接続に成功するまで待つ ! = WL_CONNECTED) { / / 待ち時間処理 de1ay(IOO); / / 待ち時間カウンタを 1 加算する waiting 十十一 if(waiting%10==O)Seria1. print('.') ー / / 進捗表示 / / 300 回 ( 30 秒 ) を過きたらスリープ if(waiting > 300 ) sleep() ー ノ / 本機のアドレズをジリアル出力 Seria1. print1n(WiFi.10Ca1 工 P() ) ー void 100P ( ) { WiFiUDP udp; float temp, hum; temp=getTemp ( ) ・・一 ) hum =getHum ( ) ー 手順③ if( temp>—100. & & hum>=O. ) udp. beginPacket (SENDTO, PORT) ー udp. print (DEV 工 (E) ー udp. print (temp, 1 ) ・ -- - ・ - ー Seria1. print(temp,2); udp. print ( " Seria1. print(" udp. println (hum, 1 ) ・・・ -- -- - ・一 Seria1. println (hum ′ 2 ) ー udp. endPacket ( ) ー / / UDP 通信用のインスタンスを定義 アセンサ用の浮動小数点数型変数 ノ / 温度を取得して変数 temp に代入 〃湿度を取得して変数 hum に代入 ノ / 適切な値のとき ノ / UDP 送信先を設定 〃デバイス名を送信 〃変数 te 叩の値を送信 ノ / シリアル出力表示 〃「′」カンマを送信 〃シリアル出力表示 / / 変数 hum の値を送信 〃シリアル出力表示 ~ 〃 UDP 送信の終了 ( 実際に送信する ) sleep ( 房 以下 , 省略 表 3 HDCIOOO 用ドライバ ( 土 20 hdc ) の主要コマンド リスト 4 examp1e09 hum で使用する HDC1000 用ドライバ土 2c hdc. in 。の主要コマンド . hdcsetup() でセンサの初期 設定を行い , getTemp() で温度を , getHum() で湿度を取得する 役割 使用例 備考 定義 hdcSetup() センサの初期設定 hdcSetup(); 始めに実行してセンサを初期化する 温度を取得 温度を取得して変数 temp に代入する float temp=getTemp ( ) ー getTemp ( ) 湿度を取得 湿度を取得して変数 hum に代入する float hum =getHum() ー getHum ( ) で , 動作確認が容易になります . 気圧センサ・モジュ ってください . 気圧センサの電源は ESP モジュール の IO 13 から供給します . センサそのものの消費電流 ール基板の裏面のはんだ・ジャンパは 12C インターフ は微小ですが , モジュールに実装されている LED の ェース用のプルアップ抵抗です . 必ずショートしてく 消費電力が大きいので , 電源をコントロールする必要 ださい . があります . また , 動作中だけ点灯するようになるの ンシスタ技術 2016 年 9 月号 91

10. トランジスタ技術 2016年9月号

特集 Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 リスト 2 スイッチの ON/ OFF 状態を Wi ー Fi 無線で Examp1e 2 : スイッチ状態を送信する ESP モジュールからラズ べリー・パイに送信するス / / ESP8266 用ライブラリ #include く ESP8266W 土 F 土 . h > ケッチ (examp1e02 sw) #include く WiFiUdp. h> 〃 UDP 通信を行うライブラリ ESP モジュールに接続したタ 〃工 0 4 ( 10 番ピン ) にスイッチを接続 #define PIN SW 4 ※使用する / / 無線 LAN アクセス・ポイントの SS 工 D #define SSID "1234ABCD" ②無線 LAN に クト・スイッチの状態を送信 / / バスワード #define PASS "password" 合わせる する . 親機となるパソコンや #define SENDTO ” 192 ユ 68.0.255 " 〃送信先の工をアドレス ラズベリー・パイにスイッチ #define PORT 1024 ・・ - く④ ) 、、、 < ④ ) ノ / 送信のポト番号 の状態変化を通知する ー″起動時に一度だけ実行する関数 void setup() { pinMode (PIN_SW, INPUT_PULLUP) ー 〃スイッチを接続したボートを入力に Seria1. begin(9600); ー〃動作確認のためのシリアル出力開始 Seria1. print1n("Examp e 02 SW"); / / 「 Examp1e 02 」をシリアル出力表示 WiFi. mode(WIF 工 _STA) ー 〃無線 LAN を STA モードに設定 WiFi. begin(SSID, PASS) : ノ / 無線 LAN アクセス・ポイントへ接続 whi1e(WiFi. status() ! = WL_CONNECTED) { ・ - ー ( ⑥ ) 〃接続に成功するまで待つ de1ay(500); ノイ。待ち時間処理 Seria1. print1n(WiFi ユ ocal 工 P()); 〃本機の工 p アドレスをシリアル出ガ ア繰り返し実行する関数 ノ / UDP 通信用のインスタンスを定義 / / 日レベル ( スイッチ開放 ) 時に繰り返し ノ / 100mS の待ち時間処理を実行 ノ / tJDP 送信先を設定 〃「 pong 」を送信 / / シリアル出力表示 ノ / UDP 送信の終了 ( 実際に送信する ) 、 ″石レベル ( スイッチ押下 ) 時に繰り返し 〃 100mS の待ち時間処理を実行 / / UDP 送信先を設定 〃「 pong 」を送信 ″シリアル出力表示 ア。 UDP 送信の終了 ( 実際に送信するリ イントロダクション 1 2 3 4 、 5 6 7 ① void 100P ( ) { WiFiUDP udp; ⑦ whi1e(digita1Read(PIN_SW)) { de1ay(100); udp. beginPacket(SENDTO, PORT) ・ - ー ( ④ ) udp. print1n("Ping' ) た・ - く〔⑨ ) SeriaI. print1n("Ping"), udp. endPacket() : ・・・ - く : ⑩ ) whi1e(digita1Read(PIN_SW)= delay ( 100 udp. beginPacket(SENDTO, PORT); udp. printIn("Pong"); Seria1. print1n("Pong"); udp. endPacket(); ⑤「 w 土 F 土 . mode ( 府工 F ↓ー STA 」は ESP モジュー ルの Wi-Fi モードを STA に設定する命令です . また , 、 「 WiFi. begin 」は , 無線 LAN アクセス・ポイン トへ接続するための ESP モジュール用のコマンド です一後に続く第 1 引き数は , アクセス・ポイント の SSID, 第 2 引き数の PASS はパスワードで 、⑥「 W 土 F 土 . sta む us 」は , ESP モジュールの無線 LAN 接続状態を確認するためのコマンドです . 「 ! = 」 は不一致を示す演算子です . この値が WL- CONNECTED ではない場合に , 待ち時間処理を繰 り返します . ⑦クラス「 WiFiUDP 」を利用するためのインスタ ンス名「 udp 」を定義します . 以降 , UDP 通信を 行う際は , 定義した「 udp 」を使って各命令 ( メソ ッド ) を呼び出します . ⑧「 udp. beginpacket 」は , UDP バケットの送 信先を設定する命令です . IP アドレス SENDTO と ポート番号 PORT を UDP の宛て先として設定します . : 通信用ライプラリ「 WiFiUdp 」を組み込みます . ②「 #define 」を使って , 無線 LAN の「 SSID 」と パスワード「 PASS 」を定義します . お手持ちの無 線 LAN アクセス・ポイントに合わせて , 「”」 ( ダ 。プル・クオーテーション ) で囲まれた文字列を変更 してください . これらの内容は , ⑤の部分で使用し 、③送信先の IP アドレス「 SENDTO 」を定義します . 送信先となるパソコンやラズベリー・パイの IP ア ドレスを確認し , 冂 ( ドット ) で区切られた四つの 数値のうち , はじめの三つを送信先と同じ値にして , 最後の一つを 255 にします例えば , 送信先の IP ア ドレスが「 192.168.12.3 」であれば , 「 192 . 168 . 12 . 2 55 」に修正してください . なお 本稿ではネットマスクが「 2 5 5 .255 . 2 5 5 . 0 」の LAN を想定しています . ④ UDP バケットの送信先のポート番号「 PORT 」 を定義します . 73 ン湫タ技術 2016 年 9 月号