ESP32でボタンクリックを検出する!

DIY
スポンサーリンク

ESP32でAmazon自動注文ボタンを作れないかと模索中です。
ボタン側のプログラムのベースとして、
ESP32にボタンをつなげて、それをクリックしたら「Button ON!!!」と画面に表示してくれるプログラムをつくりました。

●開発環境
(自作ボタンへのプログラム書込み、TeraTermでプログラムの画面出力)
・Windows 10 Home Ver.21H1
・Arduino IDE 1.8.12
・Tera Term Version 4.104(SVN# 8043)
●自作ボタン
・ESP32-DevKitC ESP-WROOM-32開発ボード

 

目次

 


 

はじめに HW回路図とプログラム

HW回路図

ボタンクリック時のチャタリング対策として、「スイッチと平行にコンデンサを挿入」しています。

以下のブログを参考にチャタリング対策をしました。
スイッチが複数回押される現象を直す、チャタリングを対策する【逆引き回路設計】

 

サンプルプログラム

const byte INPUT_PIN = 5;
byte interruptState = 0;
unsigned long msTime;

void setup() {
  Serial.begin(9600);
  // Digital Pin設定
  pinMode(INPUT_PIN, INPUT);
  
  // 割り込み設定:入力ピン、割り込みハンドラ、割り込み条件はHIGH→LOW
  attachInterrupt(digitalPinToInterrupt(INPUT_PIN), switchON, FALLING);
  msTime = millis();
  Serial.println("Hello!");
}
 
void loop() {
  if(interruptState) {
    if((millis() - msTime) > 1000) {
      Serial.println("Button ON!!!");
      msTime = millis();
    }
    interruptState = 0;
  }
}
 
// 割り込みハンドラ
//   IMPUT_PIN HIGH→LOW
void switchON() {
  interruptState = 1;
}
  • INPUT_PINはGPIO5を設定しています。ご自分の環境に合わせてください。

参考:
Arduinoで割り込み処理

 

開発環境の準備

Windows10 PCに以下のソフトウェアをインストールします。

  • Arduino IDE
  • Tera Term

 

Arduino IDEをインストール

Arduinoの公式ページ「https://www.arduino.cc/en/software」にアクセスして、Arduino IDEをインストールしてください。

インストール手順は以下のブログが分かりやすいです。

Arduino IDEのインストールと設定 (Windows, Mac, Linux対応) – Indoor Corgi

 

Tera Termをインストール

Arduinoに書き込んだプログラムの画面出力用にTeraTermを使います。
TeraTermプロジェクトの公式ページ「https://ja.osdn.net/projects/ttssh2/」にアクセスして、TeraTermをインストールしてください。

インストール手順は 以下のブログが分かりやすいです。

【ゼロからわかる】Teratermのインストールと使い方
Teratermは多機能端末だ。サーバにリモート接続するときなどによく使われる。このページではTeratermのインストールや使い方についてご紹介しよう。

 

Arduino IDEにESP32のボードマネージャを追加する

Arduino IDEのデフォルト設定ではESP32のボードマネージャ(PCからESP32を操作するためのソフトウェア群みたいなもの)がインストールされていないです。
以下の手順でESP32のボードマネージャをArduino IDEに登録します。

  1. Arduino IDEを起動する。
  2. Arduino IDEの上部にあるメニューから[ファイル > 環境設定]で環境設定ウィンドウを開く。
  3. 「追加のボードマネージャのURL:」のところに「https://dl.espressif.com/dl/package_esp32_index.json」を入れる。
  1. Arduino IDEの上部にあるメニューから[ツール > ボード > ボードマネージャ]でボードマネージャウィンドウを開く。
  2. 「ESP32」と検索をして、「esp32 by Espressif Systems」をインストールする。
  1. Arduino IDEの上部にあるメニューから[ツール > ボード > ESP32 Dev Module]で、ボードをESP32 Dev Moduleに選択する。
  2. ESP32-DevKitC-32Dボードのボード情報として、以下のように設定をする。

 

参考:
ESP32-DevKitC-32Dボードの基本的な使い方 ~Arduino IDE編~

 

ESP32にプログラムを書き込む

  1. Arduino IDEに冒頭で紹介したプログラムを書き込む。
  2. ESP32を接続して、Arduino IDEの上部にあるメニューから[ツール > シリアルポート]でESP32のCOMポートを指定する。
    ※COMポートはデバイスマネージャで確認できます。
  1. Arduino IDEの右上にある「マイコンボードに書き込む」ボタンをクリックする。
  2. Arduino IDEの下部に「ボードへの書き込みが完了しました。」と表示されればOK。

 

ボタンを検出できるか、確認する

  1. 冒頭で紹介した回路図を組み、Arduinoと接続する。
  2. Teratermを開くと「新しい接続」ウィンドウが開くので、シリアルを選択して、ESP32のポートを指定する。
  3. 自作ボタンをクリックする。
  4. Teratermで以下のように「Button ON!!!」と表示されるはずです!

※最初の方が文字化けしているのは「起動時のシリアルポートの速度(74880bps)が違うから」なんだそうです。今回は気にしなくてよいかと思います。(「ESP8266の起動時に文字化けしているメッセージをちゃんと読みたい」より)

 

もし、その他のところで文字化けしたら以下を試してください。

  1. Teratermを開き、[設定 > シリアルポート]で「シリアルポート設定」ウィンドウを開く。
  2. 以下にように設定をする。

 

以上!

コメント

タイトルとURLをコピーしました