「ESP8266」タグアーカイブ

5W ソーラーパネルと ESPマイコン でバッテリーレス ロガー製作

すき 0
0

前回はSPRESENSEにソーラパネルを直結してロガー動作を楽しみました。

100均のソーラーパネルで Raspberry Pi Pico を駆動

SPRESENSEの低消費動作によって日中のソーラー駆動を確認でき、データはSDカードに保存しました。
しかし、データ取得にいちいちSDカードの回収が必要となり、シンドイのでここではESP32やESP8266を用いてデータをWiFiで送信できないかを検証してみました。

 

 

ESP32

ESP32にソーラパネルを直結してWiFi接続し、サーバへデータをUDP送信するシステムを構築しました。

構成

ソーラパネルの発電電圧を所得するために、抵抗分圧してIOに入力しています。

 

動作

WiFi接続してUDPでサーバにソーラパネルの発電電圧を送信します。

ESP32はWiFi送信時に約0.5Wほど消費し、晴天時の直射日光を受けれたときのみ動作しました。

我が家のベランダは東向きで午前中しか直射日光が入りませんので、以下のように晴天時の午前中のみ動作しています。

 

ESP8266

ESP8266のほうが消費電流が安定しているという情報をいただきましたので、こちらでも試してみました。

構成

 

 

動作

ESP32同様に直射日光が照射されたときに動作しています。
しかし、たまに起動不良を起こし長時間の連続動作はできませんでした。

ちょっとリセット等のボードの構成の理解が足りていないかもしれません。

 

 

おわりに

ここではESPマイコンのソーラ直結しWiFi通信を試してみました。
さすがに消費電力が大きいのでさらに大きいパネルを用いる必要がありそうです。

もしくはこの場合は以下の応用のように普通にバッテリ使用するのが良いかもしれませんね。

ハエトリソウ捕食監視システム

DIY ESP スマートウォッチキットを組み立てた

0
0

Makerfabs 様より DIY ESP Smartwatch Kit をいただきましたので組み立てて使用してみました。

 

DIY ESP Smartwatch Kit

まさにDIYで部品がごっぞり届いて自分で組み立てる腕時計キットです。

マイコンにはESP-12S(ESP8266)が使用されております。

残念ながら技適マークがなかったので、恒例の技適未取得機器を用いた実験等の特例の届出をいたしました。

以下のようにごっそり部品が入っています。

ステンシルとクリームはんだも入っているので、ヒートガンやリフローでサクッと実装も可能です。

しかし我が家にはそんな環境はないので普通に手ハンダで組み立てました。

 

上の動画のようにサンプルコードではWiFiを存分に使っており
NTPで時刻を合わせ、 OpenWeatherMapで天気取得して MQTTで外部スイッチを制御しています。

 

組み立て

手ハンダで組みました。部品の袋たくさんでちょっと躊躇してたんですが、
実装点数はさほど多くないので40分ほどで完了しました。

 

一点注意が必要でOLEDディスプレイをピンヘッダのピン間絶縁物を付けたまま実装するとケースにはまりません。割ってしまいました。。。

 
ピン間絶縁物は外して実装してください。。。ケースがピッタリ基板に接地してくれます。

 

さらにもう一点注意。バッテリの極性が逆でした。。。
たまたまかもしれないのですが。。。

 
慎重に端子からピンを外して、ハメ直しました。

 

サンプルコード書き込み

Arduinoサンプルコードが公開されております。
 https://github.com/Makerfabs/DIY-ESP-Smartwatch-Kit

基板上にGND, TX, RXのスルーホールがありそこにUSBシリアル変換ケーブルでPCに接続してコードを書き込みます。

PL2303HX USBシリアル変換ケーブルが同梱されていたのですが、どうも書き込みがうまくいかなかったので慣れ浸しんだ以下のUSBシリアル変換アダプターを使用しました。

サンプルコード (WATCH_Weather.ino)でWiFiのSSIDとPassを変更して
NTPサーバより時刻がUTCで取得されますので変数TZで時差調整します。

結構かわいい。ベルト替えたら普段使い出来そうなくらいにいい感じ!

OpenWeatherMapにユーザ登録してAPIで所望の地域の天候の表示も可能です。
ここでは登録せずサンプルコードのAPI設定そのまま書き込んだので、どっか謎の地域の天気が表示されています。

参考

 

おわりに

サンプルコードではコードにWiFiのSSIDとPassを書き込んでいるので屋外では使いにくい仕様です。

折角かわいいデザインなので普通に外でも使用したいですね。
RTCも搭載されてたら最高なんだけどなぁ 🙄 

次回はESP-NOWとかで外のWiFiで時刻合わせできるようにしようかと思います。

2019年 スマスピ活用術

0
0

スマートスピーカー Advent Calendar 2019 |6日目

Amazon Echo Dotを購入して早1年半ほど。もはや我が家にはなくてはならない必需品となっております。

天気を訪ねたりタイマーをかけたりなどのオーソドックスな利用はもちろんのこと、自分たちのライフスタイルに合わせるべくカスタマイズも色々楽しみましたのでご報告させてください。

 

 

家電制御

WiFi搭載マイコンESP8266とAlexaを連携して、家電のボイスコントロールを実現させて家族にも大変好評を得ております。TVや電気スタンドやリビングの電気を制御しています。

 

alexa-wemo-emulatorというライブラリをこれまで使用してきたのですが、急に使えなくなってしまい生活が成り立たなくなったため fauxmoESP というライブラリへの移行を実施いたしました。

ESP-WROOM-02 と Blynk でLEDコントロール

無事に復旧して一安心です。いかにスマートスピーカが生活に浸透しているかを実感した次第です。

スマート家電リモコン

以下のスマート家電リモコンがキャンペーンで774円となっておりましたので購入しました。

専用アプリで赤外線リモコンの学習やAlexa等のスマートスピーカとの連携が可能です。

赤外線リモコンで動くトリケラトプスも連携できましたwww

これで自作のESP8266テレビコントローラは晴れて卒業となりました。
 

気圧センサと連携

気圧センサとAlexaを連携させて我が家のおしゃべりコンシェルジュのティラノくん に気圧報告してもらうようにしました。

日々の気圧を把握することで家族の健康に何かしら相関があるのではと思い導入致しました。

AquesTalk と Node-RED と ラズパイで おしゃべりティラノくん作製

 
使用した気圧センサは以下です。

 

Alexaスキルの開発

自分たちでもスキルを作ってみたく、カラーコードを発話するとディスプレイにその色を表示するスキルを作りました。

画面付きのAlexaデバイス用のスキルです。Fire TVでも動作します。

Alexaスキル:AudioPlayer で音楽配信スキル作成から公開まで

まぁこのスキルの有用性についてはあまり考えないようにしております。

 

電気代ゼロ! エコロジーLED表示器の自作 ーベランダ太陽光発電所への道7ー

0
0

さて我が家では今夏ベランダで太陽光発電システムを構築して、ハエトリソウの自動観察装置を運用しておりました。 

こちらのハエトリソウ捕食監視システムについては後日紹介させていただきます。

冬の到来でハエトリソウ観察は終了しましたので、太陽光発電システムを活用するべくエコロジーLED表示器を作りましたので紹介させていただきます。

これからのクリスマスシーズンにピッタリかと存じます。

 

 

構成

チャージコントローラでソーラパネルで発電された電気をバッテリにチャージして、ワイヤレスチャージャで電気を無線給電してLEDを点灯します。

部品

 

E32-SolarCharger

ESP32搭載のソーラー充電コントローラを使用しております。
Arduino IDEで動作を自由にカスタマイズできます。

ここではソーラパネルの電圧が8V以下(夜間)になると、負荷スイッチをONして充電システムをスリープさせて、ソーラパネルの電圧が10V以上(日中)のときに負荷スイッチをOFFして充電システムのスリープを解除しました。

つまり日中はバッテリを太陽光で充電して、夜間はLED表示器を動作させます。太陽エネルギーを有効活用した実にエコロジーなシステムとなってございます。

E32-SolarChargerの詳細は以下をご覧ください。

E32-SolarCharger の PWM制御 ーベランダ太陽光発電所への道4ー

 

LED表示器の設置

ベランダの太陽光発電システムの負荷にワイヤレスチャージモジュールの送信側を接続します。

 
窓にワイヤレスチャージモジュールの送信側を貼り付けて、室内に給電できるようにします。

 

室内ではワイヤレスチャージモジュールの受信側を電源としてマイコンとLEDを動作させます。

動画ではESP32を使っていますが、ESP8266に変更しています。
ESP32にneopixelを多数接続したところ定期的にLEDセルの点灯がおかしい箇所が発生したのです。

ESP32は出力ピンに1msec毎にデータ干渉が発生するとのことでした。対策いろいろ試しましたが今回LED180セル使用して全てが正常に点灯制御することができませんでした。

 
窓にLED(18×10)とワイヤレスチャージモジュールの受信側を貼り付け完成です。

 


 

Blynk

今回はBlynkでLEDマトリクスの表示をWiFi介して変更できるようにしました。

Text Inputウィジット(ヴァーチャルピンV1)で表示するテキストを送信して、
zeRGBaウィジット(ヴァーチャルピンV0)でLEDの色を送信します。

LEDマトリクスに表示できるのは今のところアルファベットのみです。

Arduino IDE

LED表示用に以下のライブラリを使用しています。
 https://github.com/adafruit/Adafruit_NeoPixel
 https://github.com/adafruit/Adafruit-GFX-Library
 https://github.com/adafruit/Adafruit_NeoMatrix
 

マトリクスライブラリは文字表示なども簡単にできるので非常に便利です。詳細は以下のブログも参照ください。

 

Blynkライブラリも使用して以下のサンプルコードを元にコーディングいたしました。
 https://github.com/blynkkk/blynk-library/blob/master/examples/Boards_WiFi/ESP8266_Standalone/ESP8266_Standalone.ino

ヴァーチャルピンV0で色情報、ヴァーチャルピンV1で表示テキストをスマホのBlynkアプリから取得します。

動作

夜間に自動的に起動して、表示をスマホから変更することができます。
しかも電気代もかからず実にエコロジーかつエコノミー!

次はLEDに表示する絵を自由に描けるアプリを作りたいです。
お母ちゃん宜しく!!

 

追記

19/11/24 バッテリ電圧低下で負荷OFF

日没後(ソーラパネル電圧が8V以下)に負荷スイッチをONしてコントローラをスリープ(15分おきに電圧状況確認)しております。
しかし、日没後に無条件に負荷をONしてLED表示器を動作させるとバッテリ電圧がドンドン低下してしまいます。

そこで、夜間もバッテリ電圧を確認し10.8V以下で負荷スイッチをOFFするようにしました。12V以上で復帰します。
これでバッテリの過剰電圧低下が防ぐことができます。

 

しかし、ここ1週間はほぼ毎日雪降りで日照少なくLED表示器の点灯がありません。。。ただでさえ西向きのベランダですのでバッテリチャージも低調です。

クリスマス前に12V以上になることを願っています。

次の記事

USB充電ステーション ーベランダ太陽光発電所への道8ー

fauxmoESP で スマートホームデバイス自作

0
0

ずいぶん長いことAmazon Echoを愛用させていただき、esp8266-alexa-wemo-emulator ライブラリで自作のAlexa連携デバイスも使用してきました。

ご覧のようにテレビリビング照明電気スタンドを声でコントロールして家族みんなで便利に使ってきておりました。

しかし急に機能しなくなったのです。。。alexa-wemo-emulatorライブラリはもう何年も更新されておらず、使用できないとの噂もチラホラ入ってきており遂に来たか。。という感じでございました。

もうすでにAmazon Echoによるテレビや電気のコントロールは生活に浸透しており、無いと成り立たない状況です。

そこで以下の記事を参考にさせていただき、fauxmoESPというライブラリへの移行を実施いたしました。

 

 

fauxmoESPライブラリ

今回採用するfauxmoESPはalexa-wemo-emulatorライブラリと同様にWiFi搭載マイコンのESP8266やESP32を疑似的にAlexa対応ホームデバイスにしてくれるライブラリです。本当にありがたいライブラリでございます。感謝

Arduino用ライブラリは以下よりダウンロードできます。
 https://bitbucket.org/xoseperez/fauxmoesp/src/master/

ダウンロードしたzipファイルを所定のArduinoライブラリフォルダに展開します。
2019/9/10現在の最新のライブラリバージョンは3.1.0でした。

今回はESP8266を使用しますので以下のライブラリも追加します。
 https://github.com/me-no-dev/ESPAsyncTCP

壁スイッチ ON/OFF

まずはリビングの照明をON/OFFするスイッチをfauxmoESPに変更します。

構成

Amazon EchoでデバイスをON/OFFしてサーボモータを動かして壁スイッチを押します。安物のESP8266ボードを使用しています。

部品

  • サーボモータ SG90

  • WiFi搭載マイコン HiLetgo ESP8266

Arduinoコード

サンプルコード fauxmoESP_Basic.ino を参考にコード作成しました。

ESP8266のArduino用パッケージはESP8266 Community ver. 2.5.2を使用しています。安物ESP8266ボードの設定は以下のとおりです。

 

デバイス名を”リビング”としAmazon Echoで「リビングつけて」、「リビング消して」と発話してonSetState()コールバックでstateとして状態変化を検出します。

onSetState()コールバックではGPIOピンのHigh/Low設定などの簡単なことしかできないので、ここではstateの変化を変数flagで検出してloop()内でサーボを動かしています。

ちなみに「リビングを30にて」などと数字と共に発話するとonSetState()コールバックのvalueで受信されます。

発話の数字:0~100 [%] → Value:8bit値 0~255 に変換されます。
照明やLEDの調光に使えそうですね。

Alexaアプリ設定

スマホのAlexaアプリで”リビング”デバイスをホームデバイスとして追加します。

  • アプリの”デバイス”をクリック
  • ⊕をクリック
  • “デバイス追加”をクリック
  • “その他”をクリック
  • “デバイスを検出”をクリック

しばらく待つと

 
“リビング”がホームデバイスとして検出されます。

 

動作

よし!なおった!

 

おわりに

テレビと電気スタンドも同様にfauxmoESPライブラリに移行しました。

ESP-WROOM-02 と Blynk でLEDコントロール

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

 

無事にAmazon Echoによる家電制御生活に戻れてよかったです 🙂 

テレビ制御コード (2019/10/29 追記)

リクエストありましたのでテレビ制御コードも記載いたします。赤外線コードは我が家のテレビの場合ですので適宜 赤外線解析して差し替えてください。

 

TV電源ON/OFF、音量大小、各チャンネル、入力切替、地デジ、BSなどをコントロールできるようにしました。

esp8266-alexa-wemo-emulator の時と同様に音量大小、各チャンネル、入力切替、地デジ、BSの制御にはAlexaアプリの定型アクションを使用しております。

コード修正 (2021/6/24 追記)

2021/6/20ころからリビングのスイッチをON/OFFするデバイスが動かなくなった。

コード修正で解決。
念のためFauxmoESPのバージョンも更新しておいた (3.1.0 -> 3.4.0)。

 

Amazon Echo と 安物 ESP8266 で スマートホーム ―壁スイッチ ON/OFF―

0
0

これまでガラクタを作っては壊してきたお父ちゃん

しかし唯一ほぼ毎日使って家族にも喜ばれているものがあります。
それはAmazon Echoでの家電制御システムです。

ESP-WROOM-02 と Blynk でLEDコントロール

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

テレビと電気スタンドを音声でコントロールできるようにしたのです。みんな便利だと喜んで使っています。

そうなるとどんどん欲がでるのが世の摂理。今回はリビングの照明の壁スイッチ制御に挑戦しました。
 

こちらのようにスマホやスマートスピーカでコントロールできる指ロボットも売ってるのですが。。
 

自作してる方がいました!そうだよね。
家にあるものでつくろう!

構成

Amazon Echoでマイコンを介してサーボモータを制御してスイッチを押します。WiFi搭載マイコンESP8266をesp8266-alexa-wemo-emulator というライブラリでAlexaのスマートホームデバイスとして認識させます。

部品

  • サーボモータ SG90

     
  • WiFi搭載マイコン HiLetgo ESP8266

テレビと電気スタンド用にスイッチサイエンスのESPr Developer使い切っちゃたので手元にある安物 ESP8266を使いました。詳細は以下の通りです。

ESP-WROOM-02 と Blynk でLEDコントロール

ただもう売ってないみたいですね。。。残念。まぁESPr Developerもさほど高くないですし、時代はもうESP32ですよね。
 

組み立て

サーボとESP8266を配線し、固定用にアクリル板に接着固定します。アクリサンデーを使用しました。

壁スイッチのそばに本棚を置いているので本棚にネジ止めしました。

マイコンも両面テープで固定し、電源もうまいこと引き回して完成!

Arduinoコード

これまで同様にESP8266-Alexa連携ライブラリには esp8266-alexa-wemo-emulator を使用しました。
 https://github.com/witnessmenow/esp8266-alexa-wemo-emulator

インストールしたライブラリの以下のexampleコードを参考にプログラミングしました。
 Arduinoメニュー[ファイル]→[スケッチ例]→[Esp8266AlexaWemoEmulator]→SingleSwitch.ino

ESP8266のArduino用パッケージはESP8266 Community ver. 2.4.2を使用しています。設定は以下のとおりです。

“リビング”というスイッチをつくってオンコールバックとオフコールバックでサーボを制御します。この安物ESP8266はデジタルピン番号指定の際に”D”の記載も必要です。D8とかD2とか。

Amazon Echo連携

ESP8266で生成したスイッチデバイスをEchoに連携します。連携にはスマホアプリAmazon Alexaを使用します。アプリが更新されて少し様子が変わったようです。

アプリのスマートホームをクリックします。

デバイスの種類として”プラグ”を選択します (おそらく何でもいいと思います)。

なんか色々なサービスが表示されるようになりましたが”その他”を選択。

ESP8266を起動した状態で”デバイスを検出”をクリックすると数十秒でESP8266で生成した”リビング”が検出されます。

この状態で
「アレクサ、リビングつけて」、「アレクサ、リビングオン」

「アレクサ、リビングして」、「アレクサ、リビングオフ」
でそれぞれONコールバックとOFFコールバックが実行され、以下のようにサーボモータが動作します。


 

動作

やったー!できた!これも家族みんなに喜んで使ってもらえるといいなぁ 🙄 

 

家が少し未来っぽくて嬉しいね!(散らかってるけど。。。)
What an IoT!!

追記

2019/9/10

alexa-wemo-emulator が動かなくなってしまったので fauxmoESP に変更しました。

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

0
0

Amazon Echoを購入してから、いろいろ活用しているこの頃の我が家。Amazon Music で音楽を楽しんだり、料理時のタイマーや起床時のアラーム、ジョイサウンドのスキルでお家カラオケごっこなど大活躍です。長女ちゃんは算数の宿題(習いたての割り算)の答えを聞いたり。。。

以前、ESP8266と赤外線LEDを使ってテレビをEchoでコントロールできるようにしました。

Amazon Echo と ESP8266 で スマートホーム ―テレビ制御―

今回は電気スタンドを制御できるようにしました。就寝前とか一々立ち上がって消すの面倒だし。。。。
かといってスマート電球は高いし。。。うん!作るしかない!

構成

電源間にリレーを挿入してESP8266で制御します。

部品

  • ESPr® Developer(ESP-WROOM-02開発ボード)
  • リレーモジュール

     
  • ダイソーのスイッチ付き電源タップ

組み立て


まずは電源タップの筐体をひらいて

スイッチをとってリレーを挿入!

筐体を戻してESP8266とリレーを接続して完成。

ESP8266はUSB電源アダプタで電源供給して、電気スタンドの電源コードは改造して作ったスマートホーム電源につなげます。
 

Arduinoコード

テレビ制御の時と同様に以下のESP8266-Alexa連携ライブラリをありがたく使用させていただきESP8266をスマートホームデバイスにしてAmazon Echoと繋ぎます。
 https://github.com/witnessmenow/esp8266-alexa-wemo-emulator

ZipをダウンロードしてArduinoのメニュー[スケッチ]→[ライブラリのインクルード]→[.zip形式ライブラリをインストール…]でダウンロードしたファイルを指定してインストールします。

インストールしたライブラリの以下のexampleコードを参考にプログラミングしました。
 Arduinoメニュー[ファイル]→[スケッチ例]→[Esp8266AlexaWemoEmulator]→SingleSwitch.ino

“電気”というスイッチをつくってオンコールバックとオフコールバックでIO2ピンのHigh/Lowでリレーを制御します。

Amazon Echo連携

ESP8266で生成したスイッチデバイスをEchoに連携します。連携にはスマホアプリAmazon Alexaを使用します。

アプリのスマートホームをクリックします。

ESP8266を起動した状態で”デバイスを追加”をクリックすると数十秒でESP8266で生成した電気スイッチが検出されます。

この状態で
「アレクサ、電気つけて」、「アレクサ、電気オン」

「アレクサ、電気消して」、「アレクサ、電気オフ」
でそれぞれONコールバックとOFFコールバックが実行されリレーがON/OFFされて電気スタンドを制御できます。

動作

よっしゃ!これで寝ながらにして照明消せるぜ!

こうなってくると蛍光灯とかも制御したくなるなぁ。。。。 🙄 

 

追記

2019/9/10

alexa-wemo-emulator が動かなくなってしまったので fauxmoESP に変更しました。

fauxmoESP で スマートホームデバイス自作

Amazon Echo と ESP8266 で スマートホーム ―テレビ制御―

0
0

以前ラズパイでスマートスピーカAmazon Echoを自作したのだけど、ウェブカメラのマイクで感度が低かったりAmazon Musicと連携ができないなどで。。。

ESP-WROOM-02 と Blynk でLEDコントロール

本物ほしいなぁなんて思っていたら。。。。先日のプライムデーでなんとEcho dotが¥2,980(¥3,000 OFF)だったのでやっと買いました。

着後、早速子どもたちは喜んで遊んでます。

そして憧れるのが音声認識による家電制御。そう!スマートホーム!
以下みたいのに憧れていました。

早速、参考にしてESP8266に赤外線LEDを接続してEchoでコントロールするテレビリモコンを作ってみました。我が家はリモコンがどっかになくなったり、子どもが〇〇観たいとか忙しいときに言ってきたりするので、声でTVコントロールできたらかなり便利。まさに#完全にNEXT!

Arduinoライブラリ準備

マイコンESP8266をArduinoでプログラミングして赤外線を使用できるようにします。かつAmazon Echoと連携させます。

Arduino用ESP8266ライブラリ

バージョンアップ(現在2.4.1)があり、以下を参考に導入しました。

ESP8266 赤外線通信ライブラリ

以下のIRremoteESP8266ライブラリを使用してESP8266で赤外線信号の解析や信号出力しました。
 https://github.com/markszabo/IRremoteESP8266

ZipをダウンロードしてArduinoのメニュー[スケッチ]→[ライブラリのインクルード]→[.zip形式ライブラリをインストール…]でダウンロードしたファイルを指定してインストールします。

ESP8266-Alexa連携ライブラリ

以下のライブラリを使用してESP8266をスマートホームデバイスにしてAmazon Echoと繋ぎます。
 https://github.com/witnessmenow/esp8266-alexa-wemo-emulator

IRremoteESP8266ライブラリと同様にZipをダウンロードしてArduinoにインストールします。

テレビリモコン赤外線信号解析

まずは自宅のテレビリモコンの赤外線信号の解析を行います。

構成

部品

Arduinoコード

インストールしたIRremoteESP8266ライブラリのexampleコードを使用します。
 Arduinoメニュー[ファイル]→[スケッチ例]→[IRremoteESP8266]→IRrecvDumpV2.ino

解析

上記コードを実行しリモコン受信モジュールに向けてテレビリモコンのボタンを押します。

うまく赤外線が受信できるとシリアルモニタに信号解析結果が表示されます。

我が家のテレビリモコンの通信フォーマットはNECフォーマットでした。各リモコンのボタンを解析してCodeをメモしておきます(上図では1C6F00F)。ここでは電源ボタン、音量ボタン、各チャンネルボタン(ch1〜ch8)の解析を実施しました。

赤外線送信

赤外線LEDをESP8266に接続してリモコン信号を出力します。

構成

部品

Arduinoコード

IRremoteESP8266ライブラリとesp8266-alexa-wemo-emulatorライブラリを使用します。

それぞれのスケッチ例
IRsendDemo.ino
MultiSwitch.ino
を参考にプログラムしています。

70〜75行でAmazon Echo用のスマートホームデバイスを6個生成しています。ポート番号はそれぞれ違う値を使用します(ここでは80〜85)。

スイッチデバイスをエミュレートしているのでONコールバックとOFFコールバックの2個の動作が実行できます。

デバイスtvでは名前を”テレビ”としてコールバックtvOn()、tvOff()を実行します。それぞれのコールバックでテレビリモコンの電源ボタンの赤外線信号を出力します(91行、96行)。信号は解析した赤外線フォーマットとcodeを指定します。

その他のデバイスで音量とチャンネル切り替えを実施しています。詳細は後ほど。
 

Amazon Echo連携

ESP8266で生成したスイッチデバイスをEchoに連携して音声でテレビ操作できるようにします。

スイッチデバイス検出

連携にはスマホアプリAmazon Alexaを使用します。

アプリのスマートホームをクリックします。

 

ESP8266を起動した状態で”デバイスを追加”をクリックすると数十秒でESP8266で生成したスイッチが検出されます。

この状態で
「アレクサ、デバイス名(テレビなど)つけて」、「アレクサ、デバイス名(テレビなど)オン」

「アレクサ、デバイス名(テレビなど)消して」、「アレクサ、デバイス名(テレビなど)オフ」
でそれぞれONコールバックとOFFコールバックが実行されます。
簡単!!

定型アクション指定

デフォルトでスマートホームデバイスは「つけて(もしくはONして)」とか「消して(もしくはOFFして)」で動作します。

しかし、音声をコントロールしたい時やチャンネルを変える時に、「ONして」や「消して」は不自然なので実行発話をカスタマイズします。

音量調整

Amazon Alexaアプリの定型アクションをクリックして、”+”をクリック。

“実行条件を設定”をクリック

「音を大きくして」と入力して保存。
“アクションを追加”をクリック

“スマートホーム”を選択

デバイス”sound”を選択

オン状態で”次へ”→”追加”→”作成”をクリック

これで音量大きくするアクションができました。

続いて音声小さくするアクションも同様に作成します。「アレクサ、音小さくして」でsoundデバイスのOFFコールバックを実行するようにします。

soundデバイスのONコールバックとOFFコールバックではそれぞれテレビリモコンの音量大小ボタンの赤外線code出力が実行されます(上記の赤外線送信プログラムの101行、106行)。

チャンネル切り替え

デバイスchA〜Dでチャンネルボタンを実行します。

chAデバイスのONコールバックではTBSに切り替わるようにしました。

chAデバイスのOFFコールバックでは教育テレビに切り替わるようにしました。実行条件を「アレクサ、Eテレ」にしたかったのですがAlexa側の問題なのかE テレと言語認識できませんでした。しかたなく教育テレビにしました。

同様にchB〜chDのONコールバックとOFFコールバックを利用して各チャンネルに切り替えるようにしました。

動作

ヤッター!

便利!これで子供抱っこしたままでもテレビ消したりチャンネル変えたりできるよ。

便利な世の中になりましたね。

参考

追記

2019/9/10

alexa-wemo-emulator が動かなくなってしまったので fauxmoESP に変更しました。

Amazon Echo と ESP8266 で スマートホーム ―電気スタンド制御―

Blynk で ESP32 と ESP8266 同時制御 -球体POV製作への道 その9-

0
0

またもや前回から大幅に時間があいてしまった。。。
そういう訳で球体POV(Persistence of Vision) 製作の時間です。
残像で映像を生成する装置です。
回転部と固定部を無線で情報やり取りしてみたいという発想です。はい。

前回は改めて制御マイコンから見直してWiFiBLEを搭載したESP32の検討をしてみました。
ESP32WiFiでスマホと通信、BLEで他のBLE搭載マイコンと通信するPOV装置をと思ったのですが、ESP32Arduino IDE向けBLEライブラリが今のところイケてないので。。。

方針変更!

ESP32ESP8266WiFi介してスマホアプリBlynkで直接制御してマイコン間の直接通信はしない方向に転換しました。
BLEを使用しないのにESP32を採用した理由はESP8266はアナログ入力ピンが1個しかなく、しかも1V以上印加できないため。。。。

Blynkで複数のマイコンを制御する際は以下の記事で紹介したBridge機能を使用します。

Blynkを用いたデバイス間通信 – Bridge Widget –

ここでは基本構成・動作の確認を実施しました!

構成

Blynkアプリで以下を実施

    • ESP32ボードに接続されたLEDの色を制御
    • ESP8266に接続されたデジタルポテンショメータを制御しモータ回転スピードを変える
    • モータに羽をつけてESP32ボードに接続されたフォトリフレクタで回転数計算してBlynk側に送信
フォトリフレクタでモータの羽の通過をセンシング

部品

  • BLE、WiFiマイコンESP32開発ボード ESP32-DevKitC
    ESP32の設定など詳細は以下の記事を参照ください
     https://homemadegarbage.com/pov-sphere08


     
  • LEDテープ Dotstar
    高速リフレッシュレート(PWMの周期)19.2kHzでPOV向き!詳細は以下!
     https://homemadegarbage.com/pov-sphere07

     
  • フォトリフレクタ QTR-1A
    モータに羽をつけてフォトリフレクタで回転数を測定。
    Arduino用ライブラリは以下。
     https://github.com/pololu/qtr-sensors-arduino

     
  • WiFiマイコンESP8266開発ボード ESPr Developer
    ESPr DeveloperをArduino IDEで開発する方法は以下のとおり
     http://trac.switch-science.com/wiki/esp_dev_arduino_ide

     
  • デジタルポテンショメータ MCP4131
    SPI信号で抵抗値(0~10kohm)を制御出来る。Arduinoコードは以下を参考にしました。
     http://www.learningaboutelectronics.com/Articles/MCP4131-digital-potentiometer-circuit.php

     
  • PWMコントローラ
    モータへ供給する電圧を制御する付属の可変抵抗をデジタルポテンショメータに差し替え

Blynk設定

Bridge機能を使用するためBlynkアプリを2つ作成しAUTH TOKENを2個取得します。ESP32用のアプリはウェジットを配置し、ESP8266用のアプリはAUTH TOKEN取得のみで特に何もしません。

以下はESP32用のアプリの設定です。

新規プロジェクトを作成します。HARDWRE MODELはESP32 Dev Boardを選択。CONNECTION TYPEはWiFiを選択。AUTH TOKENはArduinoコード生成時に使用します(メールで送信されます)。

モータスピード設定用のSliderウェジット、モータ回転数表示用のLabeled Valueウェジット、LEDカラー制御用のzeRGBaウィジェットを配置

モータスピード設定用のSliderウェジットです。最小値0、最大値3としました。
SEND ON RELEASEはOFFにして随時データ送信できるようにします。
ここではヴァーチャルピンV1に出力するようにしました。この値をBridge機能でESP8266側に送ります。

モータ回転数表示用のLabeled Valueウェジットです。ヴァーチャルピンV3で値を受けて単位[rpm]をつけて表示します。

zeRGBaウィジットでLEDの色を設定できるようにします。
OUTPUTはMERGEを選択。それぞれ最小値0、最大値255とします。
SEND ON RELEASEはOFFにして随時データ送信できるようにします。
ここではヴァーチャルピンV2に出力するようにしました。

Arduino IDEコード

BlynkのArduino用 最新ライブラリは以下にあります。
 https://github.com/blynkkk/blynk-library

ESP32用コード

[スケッチの例] -> [Blynk] -> [Boards_WiFi] -> [ESP32_WiFi]を参考にコード生成しました。

ESP8266用コード

[スケッチの例] -> [Blynk] -> [Boards_WiFi] -> [ESP8266_Standslone]を参考にコード生成しました。

動作

 

#blynk で #esp8266 と #esp32 制御

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –

これでなんとか基本構成が実現できました。あとは球体POVをどう構築するか。。。。
乞うご期待。。。。

震えて待て!

010010100000010100101111010111101010001
卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍卍

次の記事

球体POVつくってみた -球体POV製作への道 その10-

Visuino で1.8インチ液晶ディスプレイ表示 -Arduino UNOとESP8266の比較-

0
0

以前小型有機ELディスプレイでテストしたVisuinoでの画像表示をTFT液晶ディスプレイでも試してみました!

“キング・オブ・ダークネス” EVIL の鎌を自作

1.8インチ液晶ディスプレイ

恒例の激安謎ショップHiLetgoで購入しました!やしーーー!鬼やしーーー!!
ドライバICはST7735RでSPIでデータ通信します。128×160ピクセルです。

構成

ディスプレイに目玉を表示させてWiiのヌンチャクコントローラで動かします。

マイコンにはArduino UNOESP8266を使用し比較しました。

以下はマイコンの性能比較です。ESP8266は安いのに高性能ですね。WiFi使わなくても十分つかえる。。。

 

Arduino UNO

 

ESP8266

以下は接続一覧です。

Visuinoの設定

VisuinoではWiiコントローラやST7735ディスプレイコンポーネントもあるので簡単にプログラミングできちゃいます。すごく便利!(・ω・)!

Visuinoを起動し以下のコンポーネントを配置します。

  • マイコン:デフォルトではArduino UNOなのでESP8266版ではGeneric ESP8266を選択
  • Wii Nunchuck Controller
  • Map Range×2
  • Analog To Integer×2
  • TFT Color Display ST7735

Arduino UNO版

ESP8266版

Wii Nunchuck Controllerコンポーネント

StickのXをMapRange2のIn、YをMapRange1のInに接続
I2C OutをマイコンコンポーネントのI2C Inに接続

Map Range1コンポーネント

Input RangeのMax:0.9、Min:0.1とし
Output RangeのMax:28、Min:0とする。
コンポーネントのOutはAnalogToInteger1のInに接続

Map Range2コンポーネント

Input RangeのMax:0.9、Min:0.1とし
Output RangeのMax:60、Min:0とする。
コンポーネントのOutはAnalogToInteger2のInに接続

Analog To Integerコンポーネント

アナログ値を整数に変換します。
AnalogToInteger1のOutはディスプレイコンポーネントのClockとXに接続AnalogToInteger2のOutはディスプレイコンポーネントのYに接続

TFT Color Display ST7735コンポーネント

Background ColorにclWhite(白)を選択
コンポーネントをダブルクリックしてElenmentsウィンドウを開きDraw Bitmapを追加
Bitmapに100*100ピクセルの目玉ビットマップ画像を選択

X:14としてピンアイコンをクリックしてInteger SinkPinを選択
Y:30としてピンアイコンをクリックしてInteger SinkPinを選択
Integer SinkPinにすることで画像の表示座標X, Yが外部から入力できるようになります。

コンポーネントのSPI OutはマイコンコンポーネントのSPI Inに接続ChipSelect(CS [10])はUNO版はDigital[10]、8266版はDigital[0]に接続
Reset(RESET [6])はUNO版はDigital[8]、8266版はDigital[2]に接続
RegisterSelect(A0 [7])はUNO版はDigital[9]、8266版はDigital[16]に接続

ウィンドウ上部のArduinoアイコンを押してArduino IDEを立ち上げてマイコンに書き込みます。

動作

Arduino UNO

 

1.8インチ液晶テスト Arduino UNO編 #wii #tft #arduino #visuino

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –

ESP8266

 

1.8インチ液晶テスト ESP8266編 #wii #tft #esp8266 #visuino

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –


動画だとわかりにくいですが
ESP8266のほうが動きがサクサクで表示もきれいでした。性能的に当然か。

1.8インチ液晶ディスプレイ安かったけど今後いろいろ使えそうです!

参考

追記 (2017/4/20)

Arduino公式様よりTweetいただきました(*´ω`*)!

Blynkを用いたデバイス間通信 – Bridge Widget –

0
0

BlynkのBridgeというウィジットを使用してWi-Fiデバイス同士の通信のテストをしてみました!
 http://docs.blynk.cc/#widgets-other-bridge

いまいち使い方がよくわからなかったBridgeですが使ってみると非常に有用!今後いろんな場面で使えそうです(特に私のようにスマホ等で通信アプリつくるのに苦労する人は。。。)

構成

A

ヌンチャクコントローラのジョイスティックの値をWi-FiでBlynkサーバに送ります。

Wiiヌンチャクコントローラ

ESP-WROOM-02開発ボード

バッテリーモジュール

リチウムイオンポリマー電池400mAh

B

Blynkサーバに送られたジョイスティック情報を受けてLED目ん玉を動かします。

LEDテープNeopixel LED 68個使用

激安ESP8266開発ボード


Blynk設定

プロジェクトを2つ作成してAuth Tokenを2個取得します。アプリは直接使用しないので細かい設定は一切必要ありません。とにかくAuth Tokenを2個取得します!

Arduino用のBlynkライブラリは以下にあります。
 https://github.com/blynkkk/blynk-library

Arduino IDEプログラム

A側

以下のWiiヌンチャクをマイコンにつなぐライブラリを使用しました。
 https://github.com/todbot/wiichuck_adapter

コントローラ接続方法など詳細は以下を御覧ください。

Wii用ヌンチャクでLED目ん玉コントロール

B側

LED用のライブラリは以下を使用しました。
 https://github.com/adafruit/Adafruit_NeoPixel

動作

 

Blynk Bridge Widget #blynk #esp8266 #neopixel

Home Made Garbageさん(@homemadegarbage)がシェアした投稿 –

Blynkの利用でデバイス間の通信も簡単にできましたー!しかもサーバーへの通信設定などは全く意識してないのでラクラク♪

いろいろ可能性が広がりそうな機能ですね!