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
35
エアコンをWebから制御改
エアコンをLAN and 外部からWebで制御しました。
suzakutakumi
October 31, 2020
Tweet
Share
More Decks by suzakutakumi
See All by suzakutakumi
ピクロス作成の中間発表
suzakutakumi
0
90
しゅみろん
suzakutakumi
0
150
trap-search
suzakutakumi
0
39
Pyramid Makerの作成
suzakutakumi
0
21
マークダウンパーサーの自作
suzakutakumi
0
100
絵文字ジェネレータボットの作成
suzakutakumi
0
150
send_discord
suzakutakumi
0
48
独自ドメインについて
suzakutakumi
0
39
ESP32とAlexaを用いたエアコン制御
suzakutakumi
0
1.3k
Featured
See All Featured
Designing for Performance
lara
610
69k
A better future with KSS
kneath
239
17k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
How to Ace a Technical Interview
jacobian
279
23k
Music & Morning Musume
bryan
46
6.8k
Building Adaptive Systems
keathley
43
2.7k
Building Applications with DynamoDB
mza
96
6.6k
Large-scale JavaScript Application Architecture
addyosmani
513
110k
GitHub's CSS Performance
jonrohan
1032
460k
Embracing the Ebb and Flow
colly
87
4.8k
How STYLIGHT went responsive
nonsquared
100
5.8k
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
ご清聴ありがとうございました