ESP32でAmazon自動注文ボタンを作るために、ボタン側のプログラムの作り方を調査しました。
目次
AWSIoTCoreとESP32を接続する方法の調査
Amazonが公式で出している「Building an AWS IoT Core device using AWS Serverless and an ESP32」というチュートリアルが分かりやすい。
ESP32からAWS IoT CoreへMQTTでPublis/Subscribeするデモプログラムも記載されている。
Building an AWS IoT Core device using AWS Serverless and an ESP32 | Amazon Web Services
Using a simple Arduino sketch, an AWS Serverless Application Repository application, and a microcontroller, you can buil...
Arduinoでボタン動作を検出する方法の調査
ググるといろいろな紹介ブログが出てきたが、以下のサイトが一番わかりやすかった。
サンプルコードも載っているので、これをベースにMQTTの機能を入れれば「ESP32でAmazon自動注文ボタン」のボタン側のプログラムはできそうだということが分かった。
Arduinoで割り込み処理
スモールビジネスのITコンサルティングをお助けするブログです。
割り込み検出はattachInterrupt(interrupt, function, mode)
を使えばできるとのこと。
attachInterrupt(interrupt, function, mode) | Arduino 日本語リファレンス
チャタリング対策
実際に上で紹介したブログを参考にプログラムをつくってみたが、スイッチのチャタリングによってスイッチONを誤検出してしまい全然使えなかった。
そのため、以下のようなチャタリング対策を行った。
- 1000ミリ秒以下の割り込みは無視するようにSW的な対策を実施
「Arduinoで割り込み処理」で紹介されているのは「50ミリ秒以下の割り込みは無視」だったが、それではチャタリングの誤検出をしていたため。 - スイッチと平行にコンデンサを挿入してHW的な対策を実施
「スイッチが複数回押される現象を直す、チャタリングを対策する【逆引き回路設計】」を参考にした。
最終的に作ったプログラムやHW回路
以下のブログで紹介しています。よろしければご覧ください。
ESP32でボタンクリックを検出する!
ESP32でAmazon自動注文ボタンを作れないかと模索中です。
ボタン側のプログラムのベースとして、ESP32にボタンをつなげて、それをクリックしたら「Button ON!!!」と画面に表示してくれるプログラムをつくりました。
以上!
コメント