2022年2月9日水曜日

LINEダッシュボタン、sleepとwakeup

オミクロン株が猛威を振るっていますが、中々完全な在宅勤務になりません。今週も昨日、今日は出勤で、大雪予報がでている明日も出勤予定。在宅したいのですがままならない。

という訳で、LINEダッシュボタンを3Dプリンタの印刷完了に使う 件の工作は進みません。出勤すると朝、昼休み、夕方の空き時間に作業できないし、夜は目が疲れるので工作したくない。ということでスケッチを少し修正しました。

ひとつは、正常にWiFiとLINE notifyサーバに繋がることを確認するために、起動時にメッセージを送るようにしたこと。このためにmicroSDカードに2つのメッセージを書いています。3Dプリンタの完了通知だけでなく、不在中にドアが開いたとかのセキュリティ監視にも使えそう。


上記はテストなので、監視開始とプリント完了の時間差が殆どありませんが、こんな感じになります。

もうひとつは、sleep と GPIO wakeup を使って印刷終了を監視するようにしたこと。想定通りに動いているので、たぶんこれでsleepしていると思う。週末にsleep版と、ずっと起きてる版の消費電力を比較確認予定。
void setup()
{
  ... 省略...
  
  // GPIO割り込みピン設定
  gpio_wakeup_enable(SW, GPIO_INTR_LOW_LEVEL);
  // GPIO割り込みでのsleep復帰を有効化
  esp_sleep_enable_gpio_wakeup();
}

void loop(){
  // スリープ開始(復帰はこの後ろ)
  esp_light_sleep_start();
  
  wifi_connect();          // WiFi接続
  send_msg2line(message2); // LINE notifyに2行目のメッセージを送る
  wifi_disconnect();       // WiFi接続解除
  while(!digitalRead(SW));
  delay(100);              // チャタリング対策
}

0 件のコメント:

コメントを投稿