DIY - Alarmierung LDR an Telegram - Waschmaschine Wäschetrockner etc.

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • DIY - Alarmierung LDR an Telegram - Waschmaschine Wäschetrockner etc.

      Hallo Leute,

      ein Freund meinte er vergesse seine Waschmaschine immer ^^ .
      Also ratter ratter... Ich kann dir da was bauen.

      Da er keinen Homeserver oder überhaupt so etwas in diese Richtung hat, war für mich klar das ganze über die App Telegram zu machen.
      Denn ein Smartphone hat heutzutage jeder immer in seiner Tasche und Wlan auch.

      Der Code ist sehr simpel aufgebaut.
      Wenn die Waschmaschine fertig ist und die LED leuchtet, wird eine Nachricht versendet und die erscheint auf deinem Smartphone.
      Da die LED verdeckt wird durch das angebrachte Teil habe ich noch eine LED extern angebracht.


      Die Schritte:

      • Teile drucken
      • Die Telegram App auf dem Telefon installieren ( Gibt es auch für den PC, Tablet,IOS...)
      • Den BotFather anschreiben mit /newbot (alles weitere erklärt der Bot)
      • Das Token für den Bot kann man gleich in den Arduino Sketch einfügen bei #define BOTtoken "MEIN_BOT_TOKEN"
      • Dann den Bot suchen und ihn starten, /start . Einfach auch mal eine Nachricht an ihn senden damit er weiß wer man ist.
      • Dann wieder links oben nach get id_bot suchen und diesem Bot /my_id zu senden. Der Bot antwortet dann mit deiner Chat ID
      • Deine bekommene Chat ID in den Arduino Sketch eintragen unter #define CHAT_ID "123456789"
      • Im Arduino Sketch oben findet man auch noch die Einträge für die WLAN SSID und das WLAN Passwort
      • löten
      • Sketch auf den Wemos D1 mini hochladen
      • an der Maschine anbringen
      Löten und verkabeln:

      Es braucht:

      - 5 Volt Usb Netzteil
      - Micro Usb Kabel
      - Etwas Schrumpfschlauch, Lötkolben, Werkzeug
      - 1x Wemos D1 mini
      - 1x LDR ( Lichtsensor)
      - 1x LED rot
      - 1x Widerstand für die LED (je nach LED Strom!, ich nutze 220 Ohm an 5V )
      - 1x Widerstand 10K Ohm für LDR


      Die LED muss mit + ( langer Fuß) an den Widerstand vom Widerstand geht es auf den Wemos D1 an Pin D4

      Der LDR muss mit einem Bein auf GND
      Das zweite Bein muss an den 10K Ohm Widerstand vom Widerstand auf den Wemos D1 an 5V
      Bei dem Bein wo der Widerstand sitzt muss man direkt vom Bein noch auf den Wemos D1 auf A0 - Dies ist für den Lichtwert




      Sketch:



      Bitte lest euch oben im Sketch alles durch, denn es gibt ein paar Dinge zu beachten![/size]

      C Source Code

      1. // Zum übermitteln vom Status einer LED über Wlan an Telegram für z.b
      2. // Waschmaschine/ Wäschetrockner / Geschirrspüler / Etc.
      3. // Wenn die LED leuchtet am Gerät wird ein Telegram an einen Telegram Bot versendet das die Maschine fertig ist.
      4. // WICHTIG!!!
      5. // JSON muss Version 5.13.2 sein
      6. // ESP8266 muss Version 2.4.2 sein
      7. // Ansonsten funktioniert das Telegram senden nicht!!! Die anderen Versionen sind noch im Beta Stadion und es funktioniert wirklich nicht!...
      8. // BOT angelegen im Telegram und dem Bot einmal /start schicken
      9. // CHAT_ID heraus finden: In Telegram den Bot get id_bot anschreiben mit /my_id dann bekommt man seine Chat ID, diese unten eintragen
      10. // Test Nachricht vom PC aus senden
      11. //https://api.telegram.org/bot[BOT_API_KEY]/sendMessage?chat_id=[MY_CHANNEL_NAME]&text=[MY_MESSAGE_TEXT]
      12. //BEISPIEL: https://api.telegram.org/bot4321789:ABCDefgHiJkLmNoPqrstuvwhdkfg/sendMessage?chat_id=12345678&text="Test Nachricht"
      13. // Dieses Projekt ist OpenSource aber nicht für den kommerziellen Einsatz gedacht!
      14. // This Project is Open Source but not for commercial use!
      15. // Grüße KampfHund
      16. // Vom www.cnc-aus-holz.at Team - Link zum Thread - www.cnc-aus-holz.at
      17. #include <ArduinoJson.h>
      18. #include <UniversalTelegramBot.h>
      19. #include <ESP8266WiFi.h>
      20. #include <WiFiClientSecure.h>
      21. //WLAN
      22. char ssid[] = "MEINE_SSID"; // WLAN SSID
      23. char password[] = "MEIN_WLAN_PASSWORT"; // WLAN Passwort
      24. // TELEGRAM
      25. #define BOTtoken "MEIN_BOT_TOKEN" // Dein Bot Token (Get from Botfather)
      26. #define CHAT_ID "123456789" //Nutzer XY sendet Telegram an Bot
      27. /////////////////////////////////////////////////////////////////////////
      28. // Initialisieren
      29. int led = D4; // D4 Digitaler Ausgang
      30. int ldr = A0; // A0 Analog Eingang
      31. int ldrValue = 0;
      32. int LDRDelay = 250;
      33. unsigned long ldrTime;
      34. bool ldrStatus = false;
      35. bool TelegramGesendet = false;
      36. // HIER können die Werte eingestellt werden /////////////////////////////////////////////////////////////////////////////////////////////////
      37. // Einstellungen /////////
      38. int ldrTrig = 80; // Bei dieser Helligkeit auslösen ( Hell = 100, Dunkel = 0 ) /////////
      39. int ldrBack = 40; // Bei dieser Helligkeit zurücksetzen ( Hell = 100, Dunkel = 0 ) /////////
      40. char TelegramString[] = "Die Waschmaschine ist fertig"; ///////// //////////
      41. // DEBUG MONITOR aktivieren = // entfernen /////////
      42. // #define DEBUG /////////
      43. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
      44. WiFiClientSecure client;
      45. UniversalTelegramBot bot(BOTtoken, client);
      46. String ipAddress = "";
      47. void setup() {
      48. delay(0); // wdt reset anscheinend hilfreich
      49. pinMode(led, OUTPUT);
      50. pinMode(ldr, INPUT);
      51. digitalWrite(led, LOW);
      52. Serial.begin(115200);
      53. WiFi.mode(WIFI_STA);
      54. WiFi.disconnect();
      55. delay(100);
      56. Serial.print("Connecting Wifi: ");
      57. Serial.println(ssid);
      58. WiFi.begin(ssid, password);
      59. while (WiFi.status() != WL_CONNECTED) {
      60. Serial.print(".");
      61. delay(500);
      62. }
      63. Serial.println("");
      64. Serial.println("WiFi connected");
      65. Serial.println("IP address: ");
      66. IPAddress ip = WiFi.localIP();
      67. Serial.println(ip);
      68. ipAddress = ip.toString();
      69. Serial.println("Nachricht senden");
      70. String message = ("Waschmaschine - Alarmierung online und bereit, Powerd By KampfHund - www.cnc-aus-holz.at");
      71. message.concat("\n");
      72. if (bot.sendMessage(CHAT_ID, message, "Markdown")) {
      73. Serial.println("Telegram wurde versendet");
      74. }
      75. }
      76. void loop() {
      77. unsigned long nowldr = millis();
      78. if (nowldr >= ldrTime) {
      79. int ldrValue = checkLDR();
      80. if (ldrValue >= ldrTrig && TelegramGesendet == false) {
      81. bot.sendMessage(CHAT_ID, TelegramString); // Telegram senden das die Waschmaschine fertig ist
      82. digitalWrite(led, HIGH);
      83. TelegramGesendet = true;
      84. }
      85. ldrTime = nowldr + LDRDelay;
      86. }
      87. int ldrValue = checkLDR(); // LDR abfragen ob die Leuchte der Waschmaschine AUS ist
      88. if (ldrValue <= ldrBack) {
      89. digitalWrite(led, LOW);
      90. TelegramGesendet = false;
      91. #ifdef DEBUG
      92. Serial.println("ldr Status wurde zurückgesetzt");
      93. #endif
      94. }
      95. }
      96. int checkLDR() { // A0 Lichtsensor einlesen
      97. int value = analogRead(ldr);
      98. value = map (value, 0, 1023, 100, 0); // Analog Werte umwandeln zu 0 = Dunkel 100 = Hell
      99. #ifdef DEBUG
      100. Serial.print("LDR Wert: ");
      101. Serial.println(value);
      102. #endif
      103. return value;
      104. }
      Display All

      Fein Tuning:

      Im Arduino Sketch ist ein Absatz Einstellungen:

      Hier kann man die Helligkeit der LED der Waschmaschine einstellen und auch die AUS Helligkeit damit das ganze wieder zurück gesetzt wird.
      0 = Dunkel
      100 = Hell
      Voreingestellt ist:
      LED: 80
      Rücksetzen: 40

      Wenn man die Werte sehen will was der Lichtsensor liefert muss man die // Striche vor dem #define DEBUG entfernen. Dann wird im Seriellen Monitor von der Arduino IDE der Wert ausgegeben.
      Man sieht auch wann das Rücksetzen war.

      Die Nachricht was ans Telefon gesendet wird kann man auch unter den Einstellungen abändern. Falls man das ganze an einem Trockner oder einer anderen Maschine nutzen möchte.


      3D- Dateien:

      Wer einen 3D Drucker hat kann sich die Teile gleich ausdrucken.

      Wer keinen hat wird bei uns im Forum ganz unten bei der Suche bestimmt fündig. Wir haben ja einige 3D Drucker 8o
      Ich habe die Dateien bei Thingiverse hochgeladen.


      Ein paar kleine Änderungen hat es gegeben damit die Drähte besser Platz haben.
      Ich habe dort wo jetzt die Ausbuchtung innen ist bei meiner ersten Version den Wemos D1 in der Ecke etwas zurecht geschnitten. Die Platine hat in der Ecke keine Leiterbahn von dem her macht es dem Wemos nichts, sollte es noch immer nicht ganz genau passen.


      Ergebnis:


      Ein hoffentlich nicht mehr vergessender Freund.




      Bei Fragen einfach fragen :D .