2022年8月11日木曜日

switchbot hub mini / with LM61 to Line notify by esp32

 カスタマイズでボタンを学習し、テストボタンを押してOKなら、

同一画面の下にある保存を押す! 下に保存があるのを、よく忘れ詰まる! 注意。

なお、新規機種を追加するときは、ハブミニ以外のすべての機器もオンライン表示でないと

うまくいかん しばらく待っても、オンラインとならない場合は、スマホを再起動!

--------------------------lm61 on esp32

https://www.opensourcetech.tokyo/entry/20200301/1583065155 を参考に

#define LM61BZ 25  //①温度センサーで使うピンの定義

void setup() {               //②一度のみ実行される処理

 Serial.begin(115200);

 while(!Serial);

 pinMode(LM61BZ,INPUT);

}

void loop() {

int e = analogRead(LM61BIZ);

 float Vout = e / 4095.0 * 3.3 + 0.1132; // ADC 微調整

 float temp = (Vout - 0.6) / 0.01; // オフセット微調整

 Serial.print("Temp: ");

 Serial.println(temp);

  delay(1000);

}

------------------------------

https://www.ekit-tech.com/?p=3434 :: 1分間に何度でもLineできるようだが、毎分ごとに

しておくほうが無難 下の図で、タクトスイッチ、左側は上下でつながり、右側もそう

押されないときはGndにプルダウンされているが、押されると左右がつながり3v3が

Pin34に出現する





#include <WiFi.h> #include <WiFiClientSecure.h> // WiFi設定 const char* ssid = "your-ssid"; const char* password = "your-password"; // LINE Notify設定 const char* host = "notify-api.line.me"; const char* token = "your-token"; const char* message = "ピンポーン"; // スイッチに使用するPinの設定 int sw_pin = 34; void setup() { // スイッチPinを入力に設定 pinMode(sw_pin,INPUT); // シリアルモニタの通信速度 Serial.begin(115200); Serial.println(); Serial.print("Connecting to "); Serial.println(ssid); // WiFi接続 WiFi.begin(ssid, password); // WiFiの接続状態を確認 while (WiFi.status() != WL_CONNECTED) { delay(500); Serial.print("."); } Serial.println(""); Serial.println("WiFi connected."); Serial.println("IP address: "); Serial.println(WiFi.localIP()); } // line通知 void send_line() { // HTTPSへアクセス(SSL通信)するためのライブラリ WiFiClientSecure client; // サーバー証明書の検証を行わずに接続する場合に必要 client.setInsecure(); Serial.println("Try"); //LineのAPIサーバにSSL接続(ポート443:https) if (!client.connect(host, 443)) { Serial.println("Connection failed"); return; } Serial.println("Connected"); // リクエスト送信 String query = String("message=") + String(message); String request = String("") + "POST /api/notify HTTP/1.1\r\n" + "Host: " + host + "\r\n" + "Authorization: Bearer " + token + "\r\n" + "Content-Length: " + String(query.length()) + "\r\n" + "Content-Type: application/x-www-form-urlencoded\r\n\r\n" + query + "\r\n"; client.print(request); // 受信完了まで待機 while (client.connected()) { String line = client.readStringUntil('\n'); if (line == "\r") { break; } } String line = client.readStringUntil('\n'); Serial.println(line); } // スイッチの変数宣言 int sw_val = 0; void loop(){ // スイッチの状態を読み取る sw_val = digitalRead(sw_pin); // スイッチがONのとき if (sw_val) { // Lineにリクエストを送信する send_line(); } }



0 件のコメント:

コメントを投稿