スイッチ - みる会図書館


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

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

ま TCP/IP を選択 ESP モジュールの います . IP アドレスを指定する @TCP接続が切断したら , クライアントを開放します 以上が , リスト 1 ESP モジュールに接続した LED を , 、 Telnet を選択 ヒストリ ( TCP バケットで点滅させるスケッチ example 01 TCP ポートの : 23 サービス画 led のおもな内容です . 「 SSH SSH/ ミージョン ( 0 その他 プロトコル ( C) 。ー ・もう少し実用的なスケッチ・プログラム exampleOI a led 。 0 ツリアル⑧、ポ叔 Q,O : 。し日 = ルヴす ( COM3 ) 一 このスケッチは , 実験用として , ESP モジュールの 機能を説明するために作ったものです . 実際に運用す OK を押す るには , いくつかの動作上の問題点があります . 図 2 Te 「 aTe 「 m の T を璉 T 機能を使って ESP モジュールを制御 ーっ目の問題は , TELENT で接続したままにする Tera Te 「 m 起動後 , [ ファイル ] ー [ 新しい接続 ] 画面で [TCP/IP] を と , 別の機器や端末からアクセスができない点です . 選択し , [ ホスト ] の欄に ESP モジュールの旧アドレスを入力 , [ サー 対処として , 例えば一定の接続時間が経過したときに ビス ] の [TeInet] を選択して , [OK] をクリックする 自動的に切断する機能の追加が考えられます . また , IoT デバイスではネットワークのセキュリティにも留 し , その結果を Arduino IDE のシリアル・モニタ 意しなければなりません . この対処としては , プログ この後は , 1 。 op 関数内の処理を繰 に表示します . ラム内の手順⑩で受信した変数 c のデータは , 必要な り返します . 文字コードだけをシリアルへ出力するようにします . ⑧は TCP クライアントの定義です . こでは ESP 悪意ある攻撃者が TCP サーバを仲介して自由なデー モジュールが TCP サーバになります . その TCP サ タをシリアルに出力できる脆弱性の懸念を低減するこ パソコンやラズベリー・パイの TCP クラ とができます . イアントが接続します . 以上の問題点などを改良したスケッチを - ⑨クライアント「 client 」が生成されます . 接続 example01a led ( 数字 01 の後に「 a 」 ) として収録 がなく , cl 土 ent が空だった場合は : return 命 しました . また , 少し複雑になりますが , 簡易 HTTP 令で 10 。 p の先頭に戻ります . サーバ機能を追加した examp1e01b led も収録し ⑩クライアントに接続し受信データを確認します . = , てあります . これらのスケッチの処理内容については , ⑩接続状態で , かっ , 受信データがあった場合は , スケッチの各行に書いてある解説をご覧ください . 受信した文字を文字変数 c へ代入する処理をします、 loT 製作⑦ 以降の処理で変数 c の内容に応じて LED 制御を行 Wi- Fi スイッチャ ・スイッチの ON と OFF 状態をワイヤレス送信する ESP モジュールに接続したタクト・スイッチの状態 を送信するスケッチです . 子機のハードウェアは第 3 章のディジタル入力の実 験で使った実験用ポードと同じ構成です ( 写真 2 ). ESP モジュールの 104 ( 10 番ピン ) に接続したタクト・ スイッチを押下すると , 親機となるパソコンやラズベ ・パイにスイッチの状態変化を通知します . このプログラムは , UDP を使用します . また , 送 USB シリアル 信先を「 192 . 168 . 0 . 2 55 」 にすると , 変換モジュール 「 192 . 168 . O . 2 5 4 」の IP ア 「 192 . 168 . 0 . 1 」 ドレスの機器へプロードキャスト送信します . 以下に , リスト 2 example02 sw のスケッチの動作の概要 を説明します . ー①「 #include 」を使って , ESP モジュール用のラ イプラリ「 ESP8266W 土 F 土」と ,Arduino 標準の UDP / しい接続 m- ESP モジュール をサ・ 実験用ポード タクト・ スイッチ。、トさ USB ケーブル 写真 2 製作した Wi- Fi スイッチャ タクト・スイッチの状態 ( ON か OFF か ) を W ト Fi で飛ばす . 実験用ポー ドにタクト・スイッチを追加して , ESP モジュールから Wi- Fi 経由で スイッチの状態を送信する き トランタ技術 2016 年 9 月号 72

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

ESP モジュールの 104 入力 ( 10 番ピン ) にスイッチの 片側を接続し , 異極となる側を GND ( 電源ラインの一 ) に接続します . スイッチの追加回路図を図 1 1 に , タ クト・スイッチの端子の説明を写真 5 に示します . スイッチの開放時は , ESP モジュールの内部プルア ップ抵抗によって , 入力端子 104 と電源とが同電位 となり , 約 3.3 V の "H" が内蔵マイコンに入力されま す . また , スイッチ押下時は GND ( 電源のマイナス ) に接続されるので入力端子 IO 4 が OV となり , 内蔵マ イコンに "L" が入力されます . リスト 3 練習用スケッチ practice 0 3 sw を ESP モジュールに書き込んで実行し , タクト・スイツ チを押したり放したりしてみてください . シリアル・ モニタには , 図 12 のように , スイッチ押下時に O, 解放時に 1 が表示されます . 前述の LED を接続して いた場合は LED も変化します . 手順①の部分で , 定数 p 工 N sw に 4 ( すなわち IO 4 ) を定義し , 手順②で 104 を内部プルアップありの入 カ端子に設定 , 手順③で IO 4 の状態を読み取ります . 詳しいスケッチの内容については , スケッチの各行に 書かれたコメントを参照してください . 共通端子 た IO ポートに信号を出力する Arduin 。独自命令 です . P 工 N LED で定義された IO ポート 13 へ 「日工 G 日」すなわち田 " の約 3.3V を出力します . この 33V の電圧出力によって LED が点灯します . ⑥「 delay 」命令を使って , 2 開 ms の待ち時間処 理を行います . ⑦前述の手順⑤と⑥の処理に似ています . 異なる 点は d 土 g 土 talwr 土 te 命令の 2 番目の引き数ですよ こでは「石 OW 」すなわち "L" の約 0. OV を出力 します . LED を消灯し約 200mS の待ち処理を 行います、 loT 製作⑤ スイッチ入力読み込み ・スイッチの状態を調べる ESP モジュール実験用ボードに , タクト・スイッチ を 1 個追加します ( 写真 4 ) ESP モジューノレ タクト・スイッチ GND(—) 写真 4 ESP 実験用ポードにタクト・スイッチを追加 ディジタル入力の実験を行うために , スイッチを 1 個追加する 3.3V 押下時 : 接続 開放時 : 切断 共通端子 入 ) - ~ 実ド 写真 5 タクト・スイッチの端子 タクト・スイッチには四つの端子があり , それぞれ 2 本 ずつが共通の端子になっている . スイッチを押下したと きに距離の短い端子同士が電気的に接続され , スイッチ を離すと電気的に開放される T アタッチメント Wi-Fi モシュール 1 8 GND 3V3 R5 1 0k 1 7 1016 EN 1 6 1014 TOUT SWI 1 5 IOI 2 RESET 1 4 リセ、ソト・ 105 1013 スイッチ 1 3 1015 GND 1 2 102 TxD RxD IOO SW2 104 GND ESP-WROOM-02 ファーム ウェア SW A 'K R 書き換え スイッチ LED ディジタル人力実験用スイッチ 3.3V 1 っっ乙・ら ) ( 0 ワー 8 0) RI 1 0k AE_FT234X 5V GND 羹崧 USB Tx : 籔ラ叫シリアル変換 Rx ダモジ、一ル TA48M033F 3.3V OUT IN + の 47 不安定な , 1 6V 場合は 470 F 図 11 スイッチの追加回路図 スイッチを使ったディジタル入力の実験を行うた めに実験用ポードの ESP モジュール 10 ピン 004 ) と GN D の間にタクト・スイッチを追加する 0 ンタ技術 2016 年 9 月号 68

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

一 0 13 へ LED 第 22 抵抗 22 を GND カソード (K) アノード (A) ESP D 旧化モジュールの EN へ 朝 写真 9 Wi- Fi ドア開閉モ 第朝を物 24 ニタ ( ON 検出タイプ ) の配 を第を 25 を を 1SS178 線例 コンテ、ンサ をを第 26 0 を リード・スイッチの片側を 3 ・ 3 第 0.1 uF ESP モジュールの 4 ( 9 番 抵抗 27 、物 ををを物 27 を 第朝 ピン ) へ接続し , また 0.1 uF タクト叮イッチ 3.3V のコンテンサを経由して , ESP モジュールの EN 端子に 100kQ も接続する . スリープ中にも スイッチの検出が行えるよう GND GND 100 kQ のプルアップ抵 c d e a b 抗を追加する ー 0 13 へ 言 を ESP D 旧化モジュール EN へ 第 24 LED 朝・ 25 5 第朝第第、第 1 SS 178 写真 10 Wi- Fi ドア開閉 , コンテンサ 、、 26 モニタ ( OFF 検出タイプ ) 0.1uF の配線例 ををを・ 27 抵抗 470k0 文 2 タクト・スイッチ リード・スイッチの OFF 検出 ー 0 4 へ を行う場合の回路構成 . FET を使ってトリガ信号の論理を 反転させる . ただし , 普段の ード・スイッチ状態が ON 3 : 3V : 、 : uGN D$< 2SK4150TZ ) を : を・ GN D となるので , プルアップ抵抗 a b c d e に電流が流れつばなしになる ド・スイッチ用のプルアップ抵抗の値を 470 k Q して , 押下する , またはリード・スイッチに磁石を接近させ 待機電力を押さえました . ただし , スイッチの配線を ます ( ON 検出の配線時 ). スリープから復帰すると , 延長する場合は , 100kQ に戻してください . スイッチ状態を送信し , 再びスリープ状態に戻ります . 定期的なスリープ解除とは , 約 1 時間に 1 回 , スイ loT 製作⑩ ッチに変化がなかったとしても定期的にスリープから Wi - Fi 温湿度計 復帰することです . 復帰すると , スイッチ状態を送信 ・卩 C 出力のセンサを使う し , 再びスリープ状態に移行します . スイッチが押下された状態のときは , 手順②の部分 湿度を精度よく測定するのは意外と難しいです . 精 度の高い安価な湿度センサも売られていますが , 補正 で変数 reed に 0 が代入されます . 開放状態では 1 に なります . したがって , 手順②の部分で 0 を出力した のための演算が複雑になりがちです . そういった背景から内部に演算機能をもった温湿度 ときは , タクト・スイッチが押されたかリード・スイ センサに人気が集まっています . 演算機能をもったセ ッチに磁石が接近したために起動したということが分 ンサは非常に高価でしたが , 近年 , 普及に伴って安価 かります . 起動後にネットワーク接続を行うのに 4 ~ 5 秒を要 になってきました . こでは , HDCIOOO ( テキサス・インスツルメンツ ) するので , その間にスイッチ状態が変わるかもしれま せん . そこで , 手順③の部分で送信直前の状態を読み を搭載した温湿度センサ・モジュール AE-HDCIOOO ( 秋月電子通商 ) を使用して , 手軽に実験を行います . 取り , 送信するようにしました . 回路図を図 4 に , 製作例を写真 11 に示します . 磁石を遠ざけたときに送信を行いたい場合は , 写真 、ニプレッドボード BB ー 601 を使用し , 抵抗やタク IO の OFF 検出の回路構成に変更します . FET を用い , スリープ解除用トリガ信号の論理を反転させることに ト・スイッチなどの部品を省略し , より小型に仕上げ より , OFF を検出します . この構成を利用する場合 , ました . ESP モジュールへのスケッチの書き込みには 実験用ポードを使用し , 書き込み後にミニプレッドボ 普段のスイッチ状態が ON になります . そこで , リー ンダ技術 2016 年 9 月号 ~ ー 0 4 へ 9 抵抗 ー G N D 1 kQ 朝の スイッチへ リード・ スイッチへ 88

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

キーバーツ② モータを力強くドライプする DRV8835 ・ DRV8835 ドライバ℃を使用 IchigoJam の OUTI ピンに LED を接続し , BASIC の OUT 命令 ( outl , 1 など ) を使えば , LED を光らすこ とができます . しかし , OUT ピンに直接モータを接 続し , モータを回すことはできません . これは , IchigoJam に使用している LPC1114FN28 マイコンの出力ピンの駆動能力が 4 mA であるのに対 して , 今回使用した , FA130A 相当の DC モータを動 かすためには , 0.5A 程度の電流を流す必要があるか らです . そこで IchigoJam の出力ピンにトランジスタや MOSFET を使ったドライバを接続し , 駆動能力を増 やします . 今回は , DRV8835 ドライバ IC ( テキサス・ インスツルメンツ製 ) を使用しました . このドライバ IC は , 非常に小さいですが , ON 時の内部抵抗が低く , 最大 1.5Ax2 駆動能力を持っています . このモジュー ルーっに DC モータを 2 個つなげることができるので , 今回の用途にうってつけです . さらに , DC モータに加える電流の方向を切り替え て , モータの回転方向を変える H プリッジ ( コラム 1 ) と呼ばれる回路を持っているので , マイコンなどから 回転方向を制御することができます . ・ DRV8835 の動作 DRV8835 を電子工作用に DIP 化したモジュール AE ー DRV8835 ー S ( 秋月電子通商 ) を利用しました ( 写真 7 ). DRV8835 は , MODE 入力の信号によって , IN/IN, PHASE/ENABLE の二つの動作モードで動きます . コラム 1 higo ライントレーサの力強い走りを実現するモータ・ドライバのしくみ H プリッジは , 図 A のように四つのトランジスタ や MOSFET で構成されたパワー・スイッチ回路で / す . DRV8835 は , この四つのパワー・スイッチを 入力信号から制御する制御回路を内蔵しています . 下記の四つの状態で動作します . 制御回路 ハイサイド・スイッチ モータ ローサイド・スイッチ ①正転動作 [ 図 B (a) ] 左の上部スイッチ ( ハイサイド・スイッチ ) と右の 下部スイッチ ( ローサイド・スイッチ ) だけが ON に なり , 他のスイッチが OFF の場合は , モータの電 流は左から右に流れ , モータが正回転します . ②逆転動作 [ 図 B (b) ] 右のハイサイド・スイッチと左のローサイド・ス イッチが ON となり , 他のスイッチが OFF の場合は , モータ電流は右から左に流れ , モータが逆転します . ③ブレーキ [ 図 B (c) ] 右のローサイド・スイッチと左のローサイド・ス イッチが ON となり , 他のスイッチが OFF の場合は , 電源からの電流供給はありません . モータが回るこ とで発電する電流をショートする接続となり , 回転 を止める方向に電磁プレーキが発生します . ④空転 [ 図 B (d) ] すべてのスイッチが OFF の場合は , モータへの 電流供給が絶たれ , 電磁プレーキも発生しないため , モータは空転する状態となります . 図 A モータに流す電流の向きを切り換えてロポットの 回転方向を制御する H ブリッジ回路 ON OFF OFF ON OFF ON Vcc ON OFF (b) ②逆転 OFF ON Vcc OFF ON (c) ③プレーキ OFF OFF く白阪一郎〉 OFF OFF (d) ④空転 ↓ 3 2 3 (a) ①正転 図 B H ブリッジ回路の四つの動作状態 134 ンシスタ技術 2016 年 9 月号

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

リスト 2 Web 温度計用の スケッチ (examp1e07_temp) SSID とパスワードの設定が 必要 . SLEEP p の送信間隔を #define S S I D " 12 34ABCD ” 長くすることで 3 か月以上の #define PASS "password" #define SENDTO ” 192 ユ 68.0.255 ” 連続動作が可能 #define PORT 10 2 4 #define S LEE P P 2 9 0 ☆ 10 0 0 0 0 0 #define DEVICE "temp. ー1 ′ " #define TEMP OFFSET ー 50.0 手順① Examp1e 7 : 温度センサ MCP9700 or LM61C 工 2 省略 ※使用する / / 無線も AN アクセス・ポイントの SSIb 無線 LAN に / / バスワード 合わせる 〃送信先の工 P アドレス 〃送信のポート番号 送信バケットに / / スリープ時間 290 秒 ( 約 5 分 ) 付与するデバイ 〃デバイス名 ( 5 文字 + ”” + 番号 + ”′” ) ス名を定義 ( 機 ノ / Ⅲ 61C 工 Z の場合は一 60.0 に変更する 器識別用 ) 省略 〃 UDP 通信用のインスタンスを定義 / / 温度値用の変数 〃センサ用の電源を ON に ノ / 起動待ち時間 〃 A ー D 変換器から値を取得 / / センサ用の電源を OFF に 〃温度 ( 相対値 ) へ変換 〃オフセットにより絶対値へ変換 / / UDP 送信先を設定 〃デバイス名を送信 / / 温度値を送信 〃シリアル出力表示 ノ / UDP 送信の終了 ( 実際に送信する Y void 100P ( ) { WiFiUDP udp; float temp; digita1Write(PIN_EN ′ HIGH) ー delay ( 100 ) temp= (float) system adc read ( ) ー digita1Write(PIN_EN,LOW) ー temp * = IOOO. / 1023. / 10. temp + = TEMP OFFSET 一手順③ udp. beginPacket (SENDTO, udp. print (DEV 工 (E) : udp. println (temp' 1 ) ー Seria1. println (temp, 1 ) ー udp. endPacket ( ) ー sleep ( 房 温度測定部 省略 します . スイッチ信号は ESP モジュールの IO 4 ( 9 番 近づけると , 内部のスイッチが ON になり 2 本の線が ピン ) へ接続します . また , 0.1 uF のコンデンサを経 接続状態になります . また , 磁石を遠ざけると開放に 由して , ESP モジュールの EN 端子にも接続します . なります . ドアに取り付けることで , ドアが閉まった さらに , スリープ中にもスイッチの検出が行えるよう ときにタクト・スイッチを押すのと同じ作用をもたら に , 1 開 kQ のプルアップ抵抗を追加します . します . 図 3 にリード・スイッチを使った Wi ー Fi ドア開閉モ ニタの回路図を , 写真 8 に実験ポードでの配線例を示 ・スケッチの処理の流れ examp1e08 sw( リスト 3 ) の手順①では変数 reed します . 基本構成回路をベースにセンサ部を追加しま を定義し , ②で起動直後のスイッチ状態を変数て eed した . 追加部品のリストを表 2 に , プレッドボード上 に保存します . 手順③で起動時のスイッチ状態を送信 のセンサ部の回路を写真 9 に示します . 照度センサや バッフアに保存し , ④で現在のスイッチ状態を取得し 温度センサの実験で追加した動作確認用 LED は残し ておいたほうが良いでしよう . リード・スイッチはタクト・スイッチと並列に接続 表 2 Wi-Fi ドア開閉モニタ用の追加部品リスト ケース入りリード・スイッチ MC ー 14AG を使用した場合 , ドア が閉まるのを検出するには ON 検出タイプ回路に使った部品 数量 ケース入りリード・スイッチ MC ー 14AG 1 式 磁石 1 個 セラミック・コンデンサ 0.1 uF 高輝度 LED タクト・スイッチ ( 基板取付用 ) 1 個 炭素皮膜抵抗器 ( 1 / 4 w) 1 kQ ( ON 検出用 ) 炭素皮膜抵抗器 ( 1 / 4 W) 1 開 kQ (OFF 検出用 ) 1 個 炭素皮膜抵抗器 ( 1 / 4 W) 470 kQ (OFF 検出用 ) 2 個 MOSFET 2SK4150TZ- E ダイオード 1SS178 1 個 追加ジャンパ線 チ ッ イ ス 石 写真 7 ケース入りリード・スイッチ MC ー 14AG ノーマル・オープン型 . 磁石を近づけると , リード・スイッチ内部の接 点が接続状態に , 磁石を遠ざけると開放状態になる 0 86 ン汳タ技術 2016 年 9 月号

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

特集 Web 脳接続 ! Wi-FiX3G/LTE で厄 T 製作 3.3V R5 10k SWI 3.3V イントロダクション 1 2 3 4 5 6 7 8 冂 / ( 0 LO 乙・つ *) っ J 4 ー O 1- ・ CxJ CO 乙・ LO ( 0 ワー 8 0 ) GND 1016 TOUT RESET 105 GND Tx D Rx D 104 3V3 EN 1014 1012 1013 1015 102 IOO GND ESP-WROOM-02 1 k LED 3.3V 3.3V 100k : : 104 へ A ・ 1 ON 検出用 OFF 検出用 単 3 型アルカリ乾電池 x 3 本 図 3 リード・スイッチを使った W ト Fi ドア開閉モニタの回路図 磁石を近づけると内部スイッチが接続状態に , 磁石を遠ざけると開放状態になるノーマル・オープン型のリード・スイッチ MC ー 14AG を使用した RI 1 0k EN へ 3.3V 3.3V 470k : A O ・ 1 4 ドア・センサ MC-14AG XC6202P332 OUT + C2 GND 1000u , 1 6V SW2 SW : 1 SS 1 78 3.3V IN 3.3V 470k 1SS178 、、く「第をい P 、 R00 トト 02 気朝新い - Wi-Fi マイコン ESP モシュール をを 4 をい 6 第を・を 20 ・・ををを 25 第をを・・ 26 、第 27 、、・を を、を 29 ・第・、 下 9 h 、十心第 4 b 0 d を 写真 8 Wi-Fi ドア開閉モニタ ( ON 検出タイプ ) の製作例 てから手順⑤で保存し , 手順⑥で送信します . それではスケッチを見ながら実験を行って処理内容 を確認してみましよう . もし既に磁石がリード・スイ 次の三つのイベントが発生したときにスイッチ状態 ッチに接近していた場合は , 遠ざけておいてください . を送信します . 電源を投入後 , ネットワークへ接続し , スイッチ状態 ①電源を投入したとき を送信してから , スリープ状態に入ります . これらの ②スイッチを押下 ( 接続 ) したとき 処理時間は約 5 秒です . ③定期的なスリープ解除時 スリープ状態を解除するには , タクト・スイッチを 磁石 リード・スイッチ 87 ンタ技術 2016 年 9 月号

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

ス & レス制御」と呼びます . 「位置検出センサレス & ホール CT センサレス」という意味です . 高性能 マイコンの処理能力を生かして , 従来 DC プラシレ ス・モータをベクトル制御で回すために必要だった , 位置検出用ホール・センサ 3 個と 3 相電流検出用ホ ール CT センサ 3 個をたった 1 個の電流センサ ( シャ ント抵抗 ) に置き換える技術です [ 図 1 ( b ) ]. く編集部〉 究極のセンサレス制御 「レス & レス制御」誕生の歴史 ・コスト要求の厳しい白物家電にセンサレス・べク トル制御を導入したい 3 相電流を検出するホール CT センサを使った位置 センサレス・べクトル制御は , 2000 年以前に , すで に産業分野で実用化されていました . 2 開 0 年代初頭 , ホール CT センサを使わない低コストなセンサレス・ べクトル制御として , 「レス & レス制御」が白物家電 名 名 側の素子がすべて ON するタイミングは , 図 2 ( d ) に示 にも利用されるようになりました . それまで工アコンなどが採用していて主流だった 「 120 。通電の位置センサレス駆動」は , べクトル制御 をしていなかったので , 過電流保護用のシャント抵抗 が 1 個ついているだけでした . べクトル制御化するた めには , 3 相電流を検出する必要があるので , あらた に 2 個の相電流検出用のホール CT センサを追加しな ければなりません . しかしこれは , 白物家電には大き すぎるコスト・アップです . ・今どきは 3 シャント抵抗方式より 1 シャント抵抗 方式 最初 , 高価なホール CT センサではなく , 3 個の抵 抗で相電流を検出する 3 シャント抵抗方式が考案され ました [ 図 1 ( a ) ]. 3 シャント抵抗方式は , 下側素子が ON したタイミ ングで電流を検出して , 3 相の電流情報を得ます . 下 画 画 画 bc=0 シャント抵抗 w— (a) スイッチ・パターンその① ( SI ) シャント抵抗 あ 0 = 0 シャント抵抗 w + W 十 国 画 (b) スイッチ・パターンその② ( S2 ) W 十 あ 0 = ん 曰国 シャント抵 w U 十 V 十 国 U 十 国 (c) スイッチ・パターンその③ ( S3 ) (d) スイッチ・パターンその④ ( S4 ) 図 2 1 シャント抵抗方式インバータの四つのスイッチ・パターンと相電流 , シャント電流 図 3 ( f ) に示す各スイッチ状態と , モータ電流ん , ル , / ルの通電経路の関係 . スイッチ状態が S2 , S3 のときにシャント電流の値をサンプリングできれば , 相電流んと / ルが得られる 158 ンシスタ技術 2016 年 9 月号

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

Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 特集 リスト 3 Wi ー Fi ドア開閉 モニタ用のスケッチ Examp1e 8 : リードスイッチ、ドア・スイッチ、呼鈴 (examp1e08 sw) SSID とパスワードの設定が ア ESP 66 用ライフラリ #include く ESP8266W 土 F 土 . h > 必要 . 3 か月 ~ 半年くらいの extern "C" { 連続動作が可能 ( ドアの開閉 / / ES 由 266 用の拡張工 F ライブラリ ” USer interface. 回数による ) ノ / tJDP 通信を行うライブラリ #include <WiFiUdp. h> / / 工 04 ( 10 番ピン ) にスイッチを接続 #define P 工 N SW 4 ノ / 工 0 13 ( 5 番ピン ) に ED を接続する #define PIN LED 13 ※使用する ノ / 無線 AN アクセス・ポイントの SS 工 D #define SS 工 D ” 1234ABCD ” 無線 LAN に / / バスワード #define PASS "password" 合わせる 〃送信先の工 p アドレス #define SENDTO ” 192 ユ 68.0.255 ” 〃送信のボート番号 #define PORT 1024 ノ / スリープ時間 3550 秒 ( 約 60 分 ) # de fine S LEEP P 3 550 ☆ 10 0 0 0 0 0 送信バケットに 。〃テパイス名 ( 5 文字 + ”ー” + 番号 + % ” ) #define DEV 工 CE "rd sw 1 ′” 付与するデバイ ス名を定義 ( 機 アツード・スイッチの状態用 手順① int reed; 器識別用 ) / / 起動時に一度だけ実行する関数 void setup() { ガアクセス・ポイント接続待ち用 int waiting=O; ノ / スイッチを接続したポートを入力に pinMode ( PIN_SW ′工 NPUT_PULLUP) ー 〃も ED を接続したボートを出力に pinMode (PIN_LED, OUTPUT) ー reed=digita1Read (P 工 N—SW) ・ -- -- - ー ( ま⑩ ) ノ / スイッチの状態を取得 〃動作確認のためのシリアル出力開始 Seria1. beq土n(9600) ー / / 「 Examp1e 08 」をシリアル出力表示 Seria1. println ("Examp1e 08 REED SW") ー ノ / 無線も AN を STA モードに設定 WiFi. mode (W 工 F 工 _STA) ー 〃無線も AN アクセス・ポイントへ接続 WiFi. begin()S 工 D,PASS) : ア接続に成功するまで待つ while (WiFi. status ( ) ! = WL_CONNECTED) { / / 待ち時間処理 de1ay(IOO); 〃待ち時間カウンタを 1 加算する waiting 十十一 ノ / LED (ENfB 号 ) の点滅 digitaIWrite (P 工 N—LED,waiting%2) ー ノ / 進捗表示 if (waiting%10==0) SeriaI. print ( '. ' ) : / / 3P0 回 ( 30 畔 ? : を過ぎたらスリープ if(waiting> 300) sleep() ー ノ / 本機の p アドレスをシリアル出力 Seria1. println (WiFi ユ ocaIIP ( ) ) ー ア起動直後のスイッチ状態を出力表示 Seria1 ・ print (reed) ー 〃「を」カンマと「 ? 」を出力表示 Seria1. print (' イントロダクション 1 一 2 3 4 5 6 7 void 100P ( ) { WiFiUDP udp; udp. beginPacket (SENDTO, PORT) ー udp. print (DEV 工 (E) ー udp ・ print (reed) ・ -- -- ・ - く凾④ ) udp. print ( ” reed=digitaIRead (P 工 N—SW) ・ -- -- - く〔⑩ ) udp. println (reed) ・・一 - く⑨ ) Seria1. println (reed) ー udp. endPacket ( ) ・ -- -- - ・くを ) ④ ) sleep(); アÜDP 通信用のインスタンズを定義 ノ / UDP 送信先を設定 〃デバイス名を送信 ノ / 起動直後のスイッチ状態を送信 〃「′」カンマと「 ? 」を送信 〃スイッチの状態を取得 ノ / 現在のスイッチの状態を送信 / / シリアル出力表示 〃 UDP 送信の終了 ( 実際に送信する ) 以下 , 省略 フェースを使用します . ドライバは「 example08 ター hum 」内の Fi2c_hdc 」です . 表 3 にコマンド・リ ストを示します . リスト 4 example09—hum の処理の流れは , 、 = 手順①センサの初期設定を行う . 手順②温度を測定する . 手順③湿度を測定する . 手順④と手順⑤でそれぞれの取得値を送信します . ードへ移設してください . リセット・ボタンはありま せん . 不具合が生じたときは電源を入れ直してくださ い . ESP モジュールの GPIO ポート IO 0 , IO 2 , IO 15 , IO 16 を出力に設定すると故障の原因になるので , スケッチを変更するときは注意してください . プレッドボード上で温湿度センサをつないだ周辺の ようすを写真 12 に示します . 撮影用にいくっかの部 品を斜めに取り付けてありますが , 製作時は垂直に取 り付けてください . ESP モジュールと HDCIOOO との接続には , 12C イン トランシスタ技術 2016 年 9 月号 89

9. トランジスタ技術 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 月号

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

特集 Web 脳接続 ! Wi-Fi X3G/LTE で厄 T 製作 リスト 3 タクト・スイッチを押すと Arduino IDE のシリアル・モニタ画面に 1 ま Practice 3 : スイッチ入力 たは 0 の文字が表示されるスケッチ p て ac セ土 0e03 sw 〃工 0 4 ( 10 番ピン ) にスイッチを接続する #define P 工 N SW スケッチをコンパイルして ESP モジュールに書き ーノ / 工 0 13 ( 5 番ピン ) に石 ED を接続する #define P 工 N LED 13 込んだ後 , タクト・スイッチを押したときに , シ intprev= O; ぅ〃数型変数 ev を定義い初期値 0 を代入 = - リアル・モニタに 0 が , 解放時に 1 を表示するス 〃起動時に一度だけ実行ざれる関数 void setup() { ケッチ . ESP 実験用ポードに L チカ用の LED を接 ー〃スイッチを接続したボートを入力に設定 pinMode (P 工 N—SW, 工 NPUT_) PULLUP) 続している場合は , LED が点いたり消えたりする 〃 LED を接続したボートを出力に設定する pinMode (P 工 N—LED ′ OUTPUT); ″シリアル通信速度を 9600bPS に設定する Seria1. begin(9600); ノ / se む up 実行後に繰り返し実行される関数 〃整数型変数を定養 アディジタル入力値を変数新に代入 ツ / n 値が 0. すなわちむレベル ~ ( 0V ) 入力のとき 〃ボートを H レベル ( 3.3 ▽ ) に設定 ( 点灯 ) 〃そうではないとき / イボートをレベル (OV) に設定イ点灯 ) ″土 n の値が prev と異なるとき 〃土 n の値をシリアル出力 / / prev に加値を代入 -1 -0 1 亠 O -1 1 void 100P ( ) { int in; in = digita1Read(PIN_SW) ー if ( in = digitaIWrite (P 工 N—LED ′ 1 房 }else{ digitaIWrite (PIN—LED ′ 0 房 スイッチ押下 スイッチ開放 図 12 practice03—sw を実行し たときのシリアル・モニタの表示 スイッチを押下したときに値は 0 になり , 解放したときに値は 1 に なる 土 f ( in ! = prev ) { Seria1. println(in) ー prev = xn; CQ 出版社 のエレクト ロニクス・ セミナ ①ラズベリー・パイ 3 て loT / を ② Linux 組み込みシステムの開発 ③ラズバイてお絵描きプロ グラミング Node-RED Web 電子工作ことはじめ [ 講師による実験実演付き ] 操作法からデバイス・ドライ LCD / 赤外線送受信 / ハイ サーバ / クライアント・シ ! レゾ再生 / 3 大気象センサ付き / バ作成 , ROM 化の事例まで , カー ステムの構築からセンサ情報の ネル 3.0 対応 取得まで トランジスタ技術 2016 年 8 月号に 付属したラズベリー・パイの機能を ラズベリー・パイ 3 を使ってサーバ / 、 SH ー 4A CPU の小型の組み込み 拡張したシールド基板を組み立て , Linux*—ドを例に , 組み込み機器 クライアント・システムを Node RED で ラズベリー・パイで制御する実習を の開発に Linux を利用する際の参考 構築しリモート・アクセスによりセン 行う . となる事例やノウハウを紹介する . サの情報を取得する実習を行う . 2016 / 9 / 17 ( 土 ) 《 1 日コース》 講師 : バステルマジック桑野雅彦氏 2016 / 8 / 18 ( 木 ) ~ 19 ( 金 ) 《 2 日コース》 講師・電子工学工ンジニア 詳細は Web サイト (http://seminar. 講師 : シリコンリナックス 小野寺康幸氏 cqpub. co.jp/) にて公開予定 海老原祐太郎氏 ④実習・ loT クラウド・サ ⑤実習・ラズベリー・バイ 3 ては ⑥ MATLAB/Simulinkx ラ ーバ活用プログラミングこ ズベリー・パイによるソフト じめる loT 超人門 [ ネット & 組み込 と始め み開発シリーズ 2 , 教材基板付き ] ウェア無線ことはじめ ラズベリー・バイを例に遠隔・ Web アプリ , 外部デバイス SDR による FM 送受信から ディジタル変復調実験まで 自動操縦システム作り 制御から Android 連携まで IoT に特化したクラウド・サーバ 組み込みプログラミングと組み込み 本セミナでは , MATLAB / についての解説と , IoT クラウド・ Simulink とラズベリー・パイを使っ Linux の基礎について解説し , Web アプリ て , SDR による FM 変調信号の送受 サーバを用いてラズベリー・パイを ケーションの製作や外部デバイスの制御方 遠隔・自動操縦する実験を行う . 信やディジタル変復調の実験を行う . 法についてラズベリー・パイ 3 で実習する . 2016 / 9 / 24 ( 土 ) 《 1 日コース》 講師 . 構造計画研究所藤井義巳氏 / 大堀文子氏 2016 / 8 / 21 ( 日 ) 《 1 日コース》 詳細は Web サイト (http://seminar. 講師・アイ・エス・ビー 講師 . 筑波大学システム情報系 中村太一氏 cqpub. co. jp/) にて公開予定 山際伸ー氏 厄 T 時代のエンジニアに贈るおすすめ実習講座 ht ゆ : / ス em ⅲ ar ℃ q p u b. co.j p/' 69 ンシスタ技術 2016 年 9 月号