Inhoudsopgave:
Video: Plantmonitor met ESP32 Thing en Blynk - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Overzicht
Het doel van dit project is om een compact apparaat te maken dat de omstandigheden van een kamerplant kan monitoren. Het apparaat stelt de gebruiker in staat om het bodemvochtgehalte, het vochtigheidsniveau, de temperatuur en de "voelt-als" temperatuur vanaf een smartphone te controleren met behulp van de Blynk-app. Bovendien ontvangt de gebruiker een e-mailwaarschuwing wanneer de omstandigheden ongeschikt worden voor de plant. De gebruiker ontvangt bijvoorbeeld een herinnering om de plant water te geven wanneer het bodemvochtgehalte onder een geschikt niveau zakt.
Stap 1: Vereisten
Dit project maakt gebruik van een Sparkfun ESP32-ding, een DHT22-sensor en een elektronische bodemvochtsensor. Daarnaast zijn een wifi-netwerk en de Blynk-app vereist. Bij voorkeur moet er een waterdichte behuizing worden gemaakt om het ESP32-ding te bevatten. Hoewel in dit voorbeeld een standaard stopcontact voor een stroombron wordt gebruikt, zou de toevoeging van een oplaadbare batterij, zonnepaneel en laadregelaar het mogelijk maken om het apparaat van stroom te voorzien via hernieuwbare energie.
Stap 2: Blynk
Download de Blynk-app en maak een nieuw project aan. Noteer het authenticatietoken - het zal in de code worden gebruikt. Maak nieuwe weergavewidgets in de Blynk-app en selecteer de bijbehorende virtuele pinnen die in de code zijn gedefinieerd. Stel het vernieuwingsinterval in om te pushen. Elke widget moet zijn eigen virtuele pin krijgen.
Stap 3: Arduino IDE
Arduino-IDE downloaden. Volg de download-instructies voor het ESP32-stuurprogramma en de demo om wifi-connectiviteit te garanderen. Download de Blynk- en DHT-bibliotheken die in de code zijn opgenomen. Vul de authenticatietoken, wifi-wachtwoord, wifi-gebruikersnaam en e-mail in de definitieve code in. Gebruik de democode voor de bodemvochtsensor om de minimum- en maximumwaarden voor het bodemtype te vinden. Noteer en vervang deze waarden in de definitieve code. Vervang de minimumwaarden voor de temperatuur, bodemvochtigheid en vochtigheid voor de plant in de definitieve code. Upload de code.
Stap 4: Bouw het
Sluit eerst de bodemvochtsensor aan op 3,3 V, aarde en ingangspen 34. Let op, het is integraal dat de schakelaar op A staat omdat de analoge instelling voor deze sensor wordt gebruikt. Sluit vervolgens de DHT-sensor aan op 3,3 V, aarde en ingangspin 27. De DHT22-sensor vereist een weerstand van 10K Ohm tussen de VCC en de data-uitgangspin. Zorg ervoor dat u het DHT-diagram controleert om er zeker van te zijn dat het correct is aangesloten. Configureer de ESP32 in een waterdichte behuizing met de vochtsensor in de bodem en de DHT-sensor boven het oppervlak. Sluit aan op een stroombron en geniet van gegevens over de omgeving van uw fabriek.
Stap 5: Coderen
//Inbegrepen bibliotheken
#define BLYNK_PRINT Serie
#include #include #include #include "DHT.h"
// DHT-sensorinformatie
#define DHTTYPE DHT22 // DHT 22 (AM2302), AM2321 #define DHTPIN 27 // Digitale pin aangesloten op de DHT-sensor DHT dht(DHTPIN, DHTTYPE); // Initialiseer de DHT-sensor.
//definieer input pinnen en outputs
int bodemsensor = 34; //definieer het analoge ingangspinnummer aangesloten op de vochtsensor
int output_value;//definieer als output
int vochtigheidsniveau;//definieer als uitvoer
int aangemeld = 0; //definieer gemeld als 0
int tijdvertraging = 60000L; // stel timer in om gegevens eenmaal per minuut of 60, 000 milliseconden op te halen
// stel minimumwaarden in voor plant
int min_vocht =20; int min_temperatuur =75; int min_humidity =60;
// Je zou Auth Token moeten krijgen in de Blynk-app.
char auth = "Auth_Token_Here";
// Uw WiFi-inloggegevens.
char ssid = "Wifi_Netwerk_Hier"; char pass = "Wifi_Password_Here";
BlynkTimer-timer;
// Deze functie stuurt Arduino's uptime elke seconde naar Virtual Pin (5).
// In de app moet de leesfrequentie van Widget worden ingesteld op PUSH. Dit betekent // dat u bepaalt hoe vaak gegevens naar de Blynk-app moeten worden verzonden.
void Sensors () // hoofdfunctie om sensoren te lezen en te duwen om te blynk
{output_value = analogRead (soil_sensor);// Lees analoog signaal van bodem_sensor en definieer als output_value // Kaart output_vlaue van min, max waarden tot 100, 0 en beperk tussen 0, 100 // Gebruik voorbeeldcode en seriële monitor om min en max waarden voor individuele sensor en bodemtype voor betere kalibratie vochtigheidsniveau = constrain (map(output_value, 1000, 4095, 100, 0), 0, 100); float h = dht.readHumidity(); // Lees vochtigheid float t = dht.readTemperature (); // Lees temperatuur als Celsius (de standaard) float f = dht.readTemperature (true); // Lees temperatuur als Fahrenheit (isFahrenheit = true) // Bereken warmte-index in Fahrenheit (de standaard) float hif = dht.computeHeatIndex (f, h); // Controleer of het lezen is mislukt en sluit vroeg af (om het opnieuw te proberen). if (isnan(h) || isnan(t) || isnan(f)) { Serial.println(F("Kan niet lezen van DHT-sensor!")); opbrengst; } // Dit verbindt vales met virtuele pinnen die zijn gedefinieerd in de widgets in de Blynk-app Blynk.virtualWrite (V5, vochtigheidsniveau);// Stuur vochtniveau naar virtuele pin 5 Blynk.virtualWrite (V6, f);// Stuur temperatuur naar virtueel pin 6 Blynk.virtualWrite(V7, h);// Stuur vochtigheid naar virtuele pin 7 Blynk.virtualWrite(V8, hif);// Stuur warmte-index naar virtuele pin 8
if (aangemeld==0)
{ if (moisturelevel <= min_moisture) // Als het vochtgehalte gelijk is aan of lager is dan de min value { Blynk.email("Email_Here", "Plant Monitor", "Water Plant!"); // Stuur e-mail naar waterplant } vertraging (15000); // Blynk-e-mails moeten 15 seconden uit elkaar liggen. Vertraging 15000 milliseconden als (f <= min_temperatuur) // Als de temperatuur gelijk is aan of lager is dan de min-waarde { Blynk.email ("Email_Here", "Plant Monitor", "Temperature Low!"); // Stuur een e-mail dat de temperatuur laag is
}
vertraging (15000); // Blynk-e-mails moeten 15 seconden uit elkaar liggen. Vertraging 15000 milliseconden als (h <= min_humidity) // Als de vochtigheid gelijk is aan of lager is dan de min-waarde { Blynk.email ("Emial_Here", "Plant Monitor", "Humidity Low!"); // Stuur een e-mail dat de luchtvochtigheid laag is } aangemeld = 1; timer.setTimeout (tijdvertraging *5, resetNotified); // vermenigvuldig de tijdvertraging met het aantal gewenste minuten tussen herhaalde waarschuwingsmails } }
void resetNotified () // functie aangeroepen om e-mailfrequentie opnieuw in te stellen
{ aangemeld = 0; }
ongeldige setup()
{ Serieel.begin (9600); // Debug-console Blynk.begin (auth, ssid, pass); // maak verbinding met blynk timer.setInterval (tijdvertraging, sensoren); // Stel een functie in die elke minuut moet worden aangeroepen of welke tijdvertraging is ingesteld op dht.begin(); // voer DHT-sensor uit}
//Void-lus mag alleen blynk.run en timer bevatten
void loop() { Blynk.run(); // Voer blynk timer.run uit (); // Start BlynkTimer}
Aanbevolen:
Social Distance Thing: 9 stappen (met afbeeldingen)
Social Distance Thing: een persoonlijke laserprojector voor sociale afstand Deze build is bedoeld als een snel en eenvoudig project om bewustzijn te creëren over sociale afstand. Toen social distancing voor het eerst werd geïntroduceerd, was het duidelijk dat niet iedereen het op de juiste manier to
Modified Wild Thing - Joystickbesturing - Nieuw en verbeterd: 7 stappen (met afbeeldingen)
Gemodificeerd Wild Thing - Joystickbesturing - Nieuw en verbeterd: Update 1-8-2019: Twee jaar na het voltooien van dit project heb ik verschillende printplaten ontworpen en vervaardigd om het ombouwen van deze rolstoelen te vergemakkelijken. De eerste printplaat is bijna hetzelfde als het aangepaste protoboard dat hier is gesoldeerd, maar in plaats daarvan
Aan de slag met ESP32 - ESP32-kaarten installeren in Arduino IDE - ESP32-knippercode: 3 stappen
Aan de slag met ESP32 | ESP32-kaarten installeren in Arduino IDE | ESP32-knippercode: in deze instructie zullen we zien hoe we met esp32 kunnen werken en hoe we esp32-kaarten in Arduino IDE kunnen installeren en we zullen esp 32 programmeren om knippercode uit te voeren met behulp van arduino ide
Hallo Blynk! De SPEEEduino koppelen met de Blynk-app: 5 stappen
Hallo Blynk! De SPEEEduino koppelen met de Blynk-app: wat is de SPEEEduino? De SPEEEduino is een voor wifi geschikte microcontrollerkaart gebaseerd op het Arduino-ecosysteem, gebouwd voor opvoeders. De SPEEEduino combineert de vormfactor en de microcontroller van de Arduino met de ESP8266 Wi-Fi SoC, waardoor
Plantmonitor: 12 stappen (met afbeeldingen)
Plantmonitor: Het doel van de plantmonitor is het scannen en indien nodig water toedienen aan een plant die is aangesloten op de gegeven analoge bodemsensor.Benodigde onderdelen voor dit project zijn: 1x Arduino Uno1x LCD-scherm1x Servomotor1x Bodemsensoreenheid1x Potentiometer1x Medical 30c