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
Building Applications with DynamoDB
mza
96
6.6k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
111
20k
RailsConf 2023
tenderlove
30
1.2k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
252
21k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
For a Future-Friendly Web
brad_frost
180
9.9k
Side Projects
sachag
455
43k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Thoughts on Productivity
jonyablonski
70
4.8k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
187
55k
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
ご清聴ありがとうございました