ESPの電報ボットは、自宅に光があるかどうかを知るためです。ウクライナの実際。
したがって、過去2か月間、私はほぼ毎日12時間の光を持っていませんでした。時々機能するスケジュールがあるはずです。

あなたが家に光がないことを想像してください、そして、あなたは光が進むまでしばらく時間を過ごすために出かけます。そして、あなたはいつ光が続くかわかりません。家族や隣人が家にいる場合は電話をかけることができますが、それは私の場合ではありません。
以前は、自宅での光が進んでいる場合、 「オンライン」というメッセージで私に通知する植物の生命プロジェクトを作成しました。しかし、それは私にとって十分ではありませんでした。
いつ光が起こっているかを知ることに加えて、私は知りたいです:
Telegram Botを作成するというアイデアや、 「Lightbot」と呼ばれる方法を思いつきました。このボットの仕事の原則は簡単です。
ルーター用のUPSを作成しましたが、Wi-Fiがグリッドで直接オフにしない場合にのみ機能します(光が消えたときにメッセージをTelegramに送信するのに数秒かかります)!下の写真を見てみましょう。

電源は、光が消えた場合にESPを電力するために、Battetyを請求します。 OptoCouplerの助けを借りて、電源に電源があるかどうかを検出できました。
また、マニュアルがオンになっているジェネレーターもあります。そして、発電機またはグリッドから光が点灯しているかどうかを検出したかったのです。アイデアは、マイクの助けを借りてノイズのレベルを測定することでした。デバイスが家の中に設置されるため、それを検出する方法はありません。
しかし、最近、私はジェネレーターの検出でこのアイデアを放棄しました。手動でオンにするので、ライトボットを抜く必要があります。
次のメッセージを投稿するチャンネルがあります。光が点灯している場合、それは示しています:
? There is light from 18:27.
There was no light for 2 h. 12 min.
17h.57min.49sec.
3列目 "" 10秒ごとに更新して、どれだけの時間があるのかを知ります。光がオフの場合、メッセージを送信し、ライトスリープモードになります。
? There is no light from 12:26.
There was light for 17 h. 57 m.
電報でどのように見えるか
うん、OptoCouplerを使用するという感覚はありません。なぜなら、彼らは共通の基盤を持っているからですが、私はこれを普遍的にすることにしました。代わりにNPN-Transistorを使用できます。私はそれがどのように機能するかを確認しませんでしたが、d。軽い睡眠モードでは、充電せずに数ヶ月間機能します(これは決して起こりません)。

フラッシュとリセットボタンを追加することをお勧めします。これはあなたの人生を楽にします。
コンポーネントのリスト
| 額 | 名前 | 説明 |
|---|---|---|
| 1 | 電源5V | 古い電話充電器から |
| 1 | バッテリー充電器モジュールTP4056 | 低充電のないバッテリーの場合、バッテリー保護回路付き |
| 1 | Li-ionバッテリー3.7V> 200mA | 古い電話バッテリーを使用できます |
| 1 | AMS1117-3.3V電圧レギュレータ | MC電圧要件に依存します |
| 1 | ESP-8265 M3 | Wi-Fiモジュールを備えたマイクロコントローラー |
| 2 | 触覚ボタンスイッチ | Easer Flashとリセットに必要な場合 |
| 1 | OptoCoupler PC-817 | オプトカプラーまたは双極NPNトランジスタ |
| 1 | 抵抗500 om | OptoCouplerが使用されている場合 |
| 1 | 抵抗46 om | OptoCouplerを使用した場合、電流を制限します |
| 1 | NPN-トランジスタ | BC337、2N2222、2N3904 ....オプトカプラーの代わりに |
| 1 | 抵抗10k om | OptoCouplerの代わりに4K〜10Kの場合 |
| 1 | 抵抗200 om | OptoCouplerの代わりに、電流を制限する場合 |
// Wifi network station credentials
#define WIFI_SSID "SSID"
#define WIFI_PASSWORD "PASS"
// Telegram BOT Token (Get from Botfather)
#define BOT_TOKEN "1234567:Bot_TokeN"
String chat_id = "CHANNEL_ID" ;
int timezone = 2 ;https://arduino.esp8266.com/stable/package_esp8266com_index.jsonを追加します。充電器から古いケースを見つけました。