Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
エアコンをWebから制御改
Search
suzakutakumi
October 31, 2020
0
23
エアコンをWebから制御改
エアコンをLAN and 外部からWebで制御しました。
suzakutakumi
October 31, 2020
Tweet
Share
More Decks by suzakutakumi
See All by suzakutakumi
ピクロス作成の中間発表
suzakutakumi
0
80
しゅみろん
suzakutakumi
0
98
trap-search
suzakutakumi
0
33
Pyramid Makerの作成
suzakutakumi
0
14
マークダウンパーサーの自作
suzakutakumi
0
91
絵文字ジェネレータボットの作成
suzakutakumi
0
120
send_discord
suzakutakumi
0
36
独自ドメインについて
suzakutakumi
0
25
ESP32とAlexaを用いたエアコン制御
suzakutakumi
0
1.1k
Featured
See All Featured
Mobile First: as difficult as doing things right
swwweet
217
8.6k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
12
1k
The Art of Programming - Codeland 2020
erikaheidi
43
12k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
275
13k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Producing Creativity
orderedlist
PRO
338
39k
BBQ
matthewcrist
80
8.8k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.4k
The Brand Is Dead. Long Live the Brand.
mthomps
49
29k
Making Projects Easy
brettharned
109
5.5k
Git: the NoSQL Database
bkeepers
PRO
423
63k
Visualization
eitanlees
137
14k
Transcript
エアコンをWebから制御改 会津大学学部1年 朱雀匠
自己紹介 HN:朱雀 匠(本名:鈴木拓眞) 所属:会津大学 ・Zli REMs PandD ARC GeekSA やってること
・人工知能製作 ・ゲーム製作 ・マイコン ・3DCAD etc... 好きなアニメ:プリティーシリーズ Twitter:@suzakutakumi3
製作物の概要 テーマ エアコンの制御をWebからやろう! AIで適切な温度に! 具体的な内容 ・エアコンをWebサイト上から操作できる ・LAN外からでも操作できるようにした(追加) ・室内の体感温度をWebサイトに表示(未実装) ・AIで自動調整するモードも追加する(未実装)
目的 エアコンのリモコンが一つ。 ベッドにリモコンがあり、机にいるとき取るのが面倒。 机にリモコンがあり、ベッドにいるとき取るのが面倒。 なら、リモコンを作ればよいのでは! でも、しっかりしたボタンとか作るの面倒... なら、Webから操作できればよいのでは! (Webなら、LAN内のどの端末からでも操作できるから楽) あと温度操作が面倒 温度操作をAIに任せれば楽
使用物 ・ESP32(Arduino互換機) 1000円しないでBluetooth通信やWi-Fi関係が使える! ・赤外線送信モジュール エアコンへの通信に使用する ・赤外線受信モジュール 通信方式特定に使用したため、完成品には使っていない ・温湿度センサ(未使用) 温湿度の表示とAIへの入力の値用に使用 2000円未満ぐらいで作れる!
実装過程 1.エアコンの赤外線を読み取り、解析する 4日ぐらい 2.読み取った赤外線で実際に動くかどうかテストする 3日ぐらい 3.操作画面のWebページを実装する 2日ぐらい 4.ESP32を使用して、Webから赤外線を送れるようにする 1日ぐらい
1.赤外線解析 1.リモコンから赤外線を読み取り、フォーマットを調べる 家電製品協会(AEHA)フォーマットだった 2.データを16進数(char型)にして解析する (最初、2進を16進にするのを間違えた) 解析例 29℃で暖房ボタンを押したときと30℃で暖房ボタンを押したと きを比較して、変わってるバイナリを見る 変わってるところが温度のデータになる
1.赤外線解析 大きな問題が発生 ・29℃と30℃の差と28℃と29℃の差がちゃんと合わない ↓ ・バイナリを逆から読むと差が合うようになった。 これを見つけるのに2日ぐらいかかった
2.実際に動くか試す 読み取ったデータとフォーマットに基づいてエアコンを操作する データが正しくなく、うまくいかない Serial.printの遅延のせいでうまく読み取れず→1.へ戻る 正しいデータでも動作しない サブキャリアについてよくわかってなかった
3.Webページを作る この時点で、OSC会津の前日 CSSもJSもHTML1つにまとめないといけない(正確には、 Arduinoのプログラムに直書きをするため) 最小のボタンのみにした
4.ESP32に実装 今日の3:00-5:00ぐらいまでやってた。 String型の変数に3.のHTMLの中身を格納して表示させる 操作端末からのデータの受信にはAjaxを使用 赤外線の送信には、2.のプログラムをヘッダー化して使用
実装過程改 5.Herokuを使い、Webサーバーを立てる 6.WebサイトにESP32からアクセスし、データを取得 7.前回のプログラムに追加する エアコン マイコン Heroku スマホ 家の中
5.Webサーバーを立てる Flask(Python)を使用して、WebAPI&サーバを立てた 今回は簡単なものなので、Flaskを使用 HTMLは前回使った物を流用した WebAPIの構成としては、 ・Ajax&jQueryで送った、データを受け取る関数 ・ESP32からアクセスして、データを受け取る関数
6.ESPからWebにアクセス ESP32から5秒ごとにWebAPIにアクセスする WebAPIでは、スマホ等からデータを変えたら、エアコンのデータ を送り、変えていない時は’x’を送る
7.前回のプログラムに追加 .6をヘッダー化して、前回のプログラムに追加 特に話すことはない
動画
まとめ ・LAN外から動かせるようになった ・初めてちゃんとしたバックエンドを体験できてよかった ・今後は、以下のように機能を追加・改善したい ・WebAPIを使ってAIに制御をさせる ・UIの改善 ・マイコンについてやってるのに、他の言語をやってて変な気持 ちになった
参考サイト ESP32のWebサーバーの立て方 https://qiita.com/wak_tech/items/60d993bb85e519a047b0 赤外線のフォーマットについて http://elm-chan.org/docs/ir_format.html
ご清聴ありがとうございました