För att skapa en effektiv och automatiserad kommunikationslösning via WhatsApp och Telegram, använder vi CallMeBot API tillsammans med ESP32-mikrokontrollern. Den här processen gör det möjligt att skicka meddelanden från ESP32-enheten till både WhatsApp och Telegram, vilket är användbart i olika tillämpningar, som till exempel växtövervakning eller andra IoT-projekt.
För att komma igång med att skicka meddelanden, börja med att lägga till +34 644 51 95 23 som en kontakt i telefonens adressbok. Detta nummer tillhör CallMeBot API:s WhatsApp-nummer. När kontakten är skapad, skicka ett meddelande där du ger tillåtelse för CallMeBot att skicka meddelanden till din telefon via WhatsApp. Efter att du skickat detta meddelande, kommer du att få ett svar med din API-nyckel som gör att du kan använda CallMeBot API för att skicka WhatsApp-meddelanden.
Nästa steg är att testa API:t genom att klistra in en länk i webbläsaren som ger en testmeddelande via WhatsApp. När du har fått detta meddelande på WhatsApp, är allt korrekt inställt och vi kan gå vidare till nästa del – att konfigurera Telegram.
För att skicka Telegram-meddelanden använder vi samma CallMeBot API. Först måste du autentisera dig genom att klicka på en länk i webbläsaren som leder till Telegrams autentiseringssida. När du loggar in på Telegram och bekräftar begäran, kan du skicka ett testmeddelande från API:t och få meddelandet på din Telegram-applikation. Detta säkerställer att API:t är korrekt konfigurerat och att meddelanden kan tas emot från båda plattformarna.
När vi har testat både WhatsApp och Telegram via webbläsaren och fått bekräftelsemeddelanden, kan vi börja skriva koden för att skicka meddelanden automatiskt via ESP32. Detta innebär att vi skriver funktioner som anropar CallMeBot API och skickar meddelanden till respektive plattform. Funktionen för att skicka WhatsApp-meddelanden kommer att konstruera en API-URL, göra en HTTP-begäran och kontrollera svarskoden. Om svaret är positivt, kommer meddelandet att skickas framgångsrikt. En liknande funktion skapas för att skicka Telegram-meddelanden.
För att skicka meddelanden till både WhatsApp och Telegram från ESP32, laddar vi upp den nödvändiga koden i mikrokontrollern. Genom att använda en enkel HTTP-begäran kan ESP32 skicka meddelanden till båda tjänsterna, vilket gör det till en praktisk lösning för automatiserade meddelanden, exempelvis för att informera om växtstatus eller annan övervakning.
För att fullständigt implementera denna lösning behöver du konfigurera autentiseringsuppgifter för varje plattform och använda dessa i koden. Det är också viktigt att förstå att API:erna för både WhatsApp och Telegram är externa tjänster som kräver specifika autentiseringar och nycklar, vilket innebär att noggrann konfiguration och säker hantering av dessa uppgifter är nödvändigt.
Förutom dessa grundläggande steg, finns det flera aspekter som kan vara viktiga att tänka på. För det första kan du vilja överväga att sätta upp ett system för att hantera eventuella fel som kan uppstå vid skickande av meddelanden, till exempel om API-nyckeln har gått ut eller om servern är nere. Ett annat viktigt moment är att optimera koden för att hantera olika typer av meddelanden, som text, bilder eller annan media, beroende på vilken typ av data du planerar att skicka från din ESP32-enhet. Detta kan göras genom att anpassa API-anropen och lägga till lämplig funktionalitet i koden för att stödja olika format.
Ytterligare kan det vara användbart att inkludera loggning och övervakning för att se till att meddelandena skickas korrekt och att eventuella problem identifieras och hanteras i realtid. Detta kan förbättra tillförlitligheten i systemet och ge insikt i prestanda.
Hur man konfigurerar InfluxDB Cloud och loggar data med ESP32
För att effektivt logga och övervaka data från sensorer som är anslutna till en ESP32-enhet är det viktigt att konfigurera rätt databas och säkerställa att kommunikationen mellan mikrokontrollern och databasen sker utan hinder. InfluxDB Cloud är en utmärkt lösning för denna typ av uppgift, då den erbjuder en skalbar och säker plattform för lagring av tidsseriedata. Här går vi igenom processen för att konfigurera InfluxDB Cloud och logga data från ESP32.
Steg för att skapa InfluxDB Cloud-konto och få nödvändiga autentiseringstoken
För att börja med, behöver du skapa ett konto på InfluxDB Cloud om du inte redan har gjort det. När du har loggat in på din InfluxDB-plattform, gå till inställningssidan för din organisation. Där hittar du ditt Organization ID samt Cluster URL (Host Name), som du måste kopiera och spara för framtida användning. Dessa värden är avgörande för att koppla din ESP32 till rätt databas.
Nästa steg är att skapa ett API-token. För att göra detta, gå till fliken "GO TO TOKENS", som visas i din InfluxDB-plattform. Om du redan har skapat några tokens kan du välja en från listan, annars klickar du på "GENERATE API TOKEN". Välj sedan All Access API Token för att få full behörighet till att skriva och läsa data i databasen.
När du har genererat token, ge det ett namn och spara det på en säker plats. Det är viktigt att notera att du inte kommer att kunna komma åt detta token igen efter att du har stängt fönstret, så säkerställ att det är kopierat och bevarat.
Med dessa inställningar klara har du nu all nödvändig information för att logga data till din InfluxDB Cloud: Bucket Name, Bucket ID, Organization ID, Cluster URL, och API Token. Dessa värden ska sedan användas i din kod för att koppla ESP32 till databasen.
Skapa och ladda upp kod för att logga data till InfluxDB
För att logga data från dina sensorer till InfluxDB behöver du först konfigurera din ESP32 med rätt bibliotek och kod. Du kommer att använda Arduino IDE för att skriva och ladda upp koden till din ESP32. Följande är en grundläggande kod som använder de bibliotek som behövs för att interagera med sensorerna och InfluxDB. Koden hittar du på GitHub, och den inkluderar bibliotek som Adafruit_Sensor, DHT_U för DHT-sensorn, WiFiMulti för att hantera Wi-Fi-anslutningar, och InfluxDbClient för att kommunicera med InfluxDB.
När du har installerat alla bibliotek och definierat dina InfluxDB-uppgifter, såsom Cluster URL, API Token, Organization ID, och Bucket Name, kan du börja skapa funktioner för att läsa sensorvärden och skriva dem till databasen.
En viktig aspekt av koden är hanteringen av Wi-Fi och tidszoner. Funktionen setupWifi() ansvarar för att ansluta ESP32 till det angivna Wi-Fi-nätverket, medan setupSensors() initierar sensorerna och synkroniserar tiden för korrekt tidsstämpling av den data som loggas. Funktionen readSensors() läser värden från temperatur- och fuktighetssensorer, rörelsesensorer och ljusstyrka från en LDR (Light Dependent Resistor), och lägger dessa värden i en datalogg.
För att skriva data till InfluxDB använder vi funktionen writeToInfluxDB(), där vi försöker skicka data till databasen och fånga eventuella felmeddelanden vid problem. Efter att koden har laddats upp till din ESP32, kan du börja logga sensorvärden. När du öppnar InfluxDB-UI, kommer de lagrade data att visas i en tabell eller graf, beroende på hur du har ställt in vyerna.
Multirumsloggning med flera ESP32-enheter
För att utöka detta system till flera rum, t.ex. kök, vardagsrum och sovrum, laddar du upp samma kod till andra ESP32-enheter men byter ut enhetsnamnet i koden, specifikt i #define DEVICE "kitchen" för att matcha rummet. Genom att göra detta kan du hålla koll på data från varje rum individuellt. När alla enheter är installerade och uppkopplade till InfluxDB, kommer du kunna se alla dessa data i en enda tabell som sammanställer informationen från olika delar av hemmet.
Viktigt att tänka på
För att säkerställa att datalagring och visning sker utan problem är det viktigt att noggrant hantera autentisering och konfigurera rätt parametrar för varje enhet. Säkerställ att API-token och URL-värden är korrekta och att alla sensorer är rätt anslutna och fungerar som de ska. Om någon sensor misslyckas med att ge korrekt data eller om Wi-Fi-anslutningen inte upprättas, kan detta påverka noggrannheten och tillförlitligheten hos den data som lagras i InfluxDB. Dessutom kan det vara bra att skapa en säkerhetskopiering av dina API-nycklar och tokens för att undvika att de går förlorade om något skulle hända med din konfiguration.
För en mer effektiv övervakning och visualisering av datan är det dessutom viktigt att använda verktyg som Grafana för att skapa dashboards och få en tydlig överblick över de loggade värdena. Grafana gör det möjligt att skapa interaktiva och anpassningsbara visualiseringar av realtidsdata från InfluxDB, vilket gör det enklare att analysera och ta beslut baserade på den insamlade informationen.

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский