Inhaltsverzeichnis:
- Schritt 1: Was Sie brauchen
- Schritt 2: Steckbrett-Prototyp
- Schritt 3: Software-Setup
- Schritt 4: Solarladeplatine vorbereiten
- Schritt 5: Mikrocontroller-Schaltung aufbauen
- Schritt 6: Kabelverschraubungen installieren
- Schritt 7: Komplette Schaltungsbaugruppe
- Schritt 8: Sonnenkollektor vorbereiten
- Schritt 9: Testen Sie es
- Schritt 10: Verwenden Sie es draußen
Video: Solar Bodenfeuchtemesser mit ESP8266 - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:15
In diesem Instructable machen wir einen solarbetriebenen Bodenfeuchtigkeitsmonitor. Es verwendet einen ESP8266-WLAN-Mikrocontroller mit einem Low-Power-Code, und alles ist wasserdicht, sodass es draußen bleiben kann. Sie können dieses Rezept genau befolgen oder daraus nützliche Techniken für Ihre eigenen Projekte entnehmen.
Wenn Sie neu in der Mikrocontroller-Programmierung sind, sehen Sie sich bitte meine Arduino-Klasse und die Internet der Dinge-Klasse an, um sich mit den Grundlagen der Verkabelung, Codierung und Verbindung mit dem Internet zu vertraut zu machen.
Dieses Projekt ist Teil meines kostenlosen Solarkurses, in dem Sie mehr Möglichkeiten erfahren, wie Sie die Energie der Sonne durch Gravuren und Sonnenkollektoren nutzen können.
Folgen Sie mir auf YouTube, Instagram, Twitter, Pinterest und abonnieren Sie meinen Newsletter, um auf dem Laufenden zu bleiben, woran ich arbeite.
Schritt 1: Was Sie brauchen
Sie benötigen eine Solarbatterie-Ladeplatine und einen ESP8266-Breakout wie den NodeMCU ESP8266 oder Huzzah sowie einen Bodensensor, eine Batterie, einen Netzschalter, ein Kabel und ein Gehäuse, um Ihre Schaltung darin zu platzieren.
Hier sind die Komponenten und Materialien, die für den Bodenfeuchtemonitor verwendet werden:
- ESP8266 NodeMCU Mikrocontroller (oder ähnlich, Vin muss bis zu 6V tolerieren)
- Adafruit Solarladeboard mit optionalem Thermistor und 2,2K Ohm Widerstand
- 2200mAh Lithium-Ionen-Akku
- Perma-Protoboard
- Bodenfeuchte-/Temperatursensor
- 2 Kabelverschraubungen
- Wasserdichtes Gehäuse
- Wasserdichtes Gleichstromkabelpaar
- Schrumpfschlauch
- 3.5W Solarpanel
- Ein-/Ausschalter auf Knopfdruck
- Doppelstick-Schaumband
Hier sind die Werkzeuge, die Sie benötigen:
- Lötkolben und Lot
- Helfende Hände Werkzeug
- Abisolierzangen
- Spülschere
- Pinzette (optional)
- Heißluftpistole oder Feuerzeug
- Multimeter (optional, aber praktisch für die Fehlersuche)
- USB-A-microB-Kabel
- Schere
- Stufenbohrer
Sie benötigen kostenlose Konten auf den Cloud-Datenseiten io.adafruit.com und IFTTT.
Als Amazon-Partner verdiene ich an qualifizierten Käufen, die Sie über meine Affiliate-Links tätigen.
Schritt 2: Steckbrett-Prototyp
Es ist wichtig, für Projekte wie dieses einen lötfreien Breadboard-Prototyp zu erstellen, damit Sie sicherstellen können, dass Ihr Sensor und Ihr Code funktionieren, bevor Sie dauerhafte Verbindungen herstellen.
In diesem Fall hat der Bodensensor Litzendrähte, so dass es notwendig war, vorübergehend feste Kopfstücke mit Lötmittel, helfenden Händen und etwas Schrumpfschlauch an den Enden der Sensordrähte zu befestigen.
Folgen Sie dem Schaltplan, um die Strom-, Masse-, Takt- und Datenpins des Sensors zu verdrahten (die Daten erhalten auch einen 10K-Pull-up-Widerstand, der mit dem Bodensensor geliefert wird).
- Sensor grünes Kabel an GND
- Sensor rotes Kabel an 3.3V
- Sensor gelber Draht zu NodeMCU Pin D5 (GPIO 14)
- Blaues Kabel des Sensors zu NodeMCU-Pin D6 (GPIO 12)
- 10K Pull-Up-Widerstand zwischen blauem Datenpin und 3.3V
Sie können dies in Ihren bevorzugten Mikrocontroller übersetzen. Wenn Sie ein Arduino Uno oder ähnliches verwenden, wird Ihr Board bereits von der Arduino-Software unterstützt. Wenn Sie den ESP8266 verwenden, sehen Sie sich bitte meine Internet of Things-Klasse an, um Schritt-für-Schritt-Hilfe bei der Einrichtung des ESP8266 in Arduino zu erhalten (indem Sie zusätzliche URLs zum Feld URLs des zusätzlichen Boards-Managers in den Arduino-Einstellungen hinzufügen und dann nach und suchen Auswahl neuer Boards aus dem Board-Manager). Ich neige dazu, den Adafruit ESP8266 Huzzah-Board-Typ zu verwenden, um das NodeMCU ESP8266-Board zu programmieren, aber Sie können auch die generische ESP8266-Board-Unterstützung installieren und verwenden. Außerdem benötigen Sie den SiLabs-USB-Kommunikationschip-Treiber (verfügbar für Mac/Windows/Linux).
Um den Sensor mit meinem Arduino-kompatiblen Board zum Laufen zu bringen, habe ich die SHT1x Arduino-Bibliothek von der Github-Seite von Practical Arduino heruntergeladen, dann die Datei entpackt und den Bibliotheksordner in meinen Arduino / Bibliotheken-Ordner verschoben und dann in SHT1x umbenannt. Öffnen Sie die Beispielskizze ReadSHT1xValues und ändern Sie die Pinnummern auf 12 (dataPin) und 14 (clockPin), oder kopieren Sie die modifizierte Skizze hier:
#enthalten
#define dataPin 12 // NodeMCU-Pin D6 #define clockPin 14 // NodeMCU-Pin D5 SHT1x sht1x (dataPin, clockPin); // SHT1x-Objekt instanziieren void setup () { Serial.begin (38400); // Öffnen Sie die serielle Verbindung, um Werte an den Host Serial.println ("Starting up"); aufrechtzuerhalten. Void Schleife () { Float temp_c; Schwimmertemp_f; Schwebefeuchtigkeit; temp_c = sht1x.readTemperatureC(); // Werte vom Sensor lesen temp_f = sht1x.readTemperatureF (); Feuchtigkeit = sht1x.readHumidity(); Serial.print ("Temperatur: "); // Die Werte an den seriellen Port ausgeben Serial.print (temp_c, DEC); Serial.print("C/"); Serial.print (temp_f, DEC); Serial.print ("F. Luftfeuchtigkeit: "); Serial.print (Luftfeuchtigkeit); Serial.println("%"); Verzögerung (2000); }
Laden Sie diesen Code auf Ihr Board hoch und öffnen Sie den seriellen Monitor, um den Sensordatenstrom anzuzeigen.
Wenn Ihr Code nicht kompiliert wird und sich darüber beschwert, dass SHT1x.h nicht gefunden wird, haben Sie die erforderliche Sensorbibliothek nicht richtig installiert. Überprüfen Sie Ihren Arduino / Bibliotheken-Ordner auf einen namens SHT1x, und wenn er sich woanders befindet, wie in Ihrem Download-Ordner, verschieben Sie ihn in Ihren Arduino-Bibliotheken-Ordner und benennen Sie ihn bei Bedarf um.
Wenn Ihr Code kompiliert, aber nicht auf Ihr Board hochgeladen wird, überprüfen Sie Ihre Board-Einstellungen, stellen Sie sicher, dass Ihr Board angeschlossen ist, und wählen Sie den richtigen Port aus dem Menü Extras aus.
Wenn Ihr Code hochgeladen wird, Ihr serieller Monitoreingang jedoch nicht erkannt wird, überprüfen Sie, ob Ihre Baudrate mit der in Ihrer Skizze angegebenen übereinstimmt (in diesem Fall 38400).
Wenn Ihr serieller Monitoreingang nicht korrekt erscheint, überprüfen Sie Ihre Verkabelung anhand des Schaltplans. Befindet sich Ihr 10K-Pull-up-Widerstand zwischen dem Datenpin und 3,3 V? Sind Daten und Takt an die richtigen Pins angeschlossen? Sind Strom und Masse im gesamten Stromkreis so verbunden, wie sie sein sollten? Fahren Sie nicht fort, bis diese einfache Skizze funktioniert!
Der nächste Schritt ist spezifisch für den ESP8266 und konfiguriert den optionalen drahtlosen Sensorberichtsteil des Beispielprojekts. Wenn Sie einen standardmäßigen (nicht drahtlosen) Arduino-kompatiblen Mikrocontroller verwenden, entwickeln Sie Ihre endgültige Arduino-Skizze weiter und fahren Sie mit Vorbereiten der Solarladeplatine fort.
Schritt 3: Software-Setup
Um den Code für dieses Projekt mit dem ESP8266 zu kompilieren, müssen Sie einige weitere Arduino-Bibliotheken installieren (verfügbar über den Bibliotheksmanager):
- Adafruit IO Arduino
- Adafruit MQTT
- ArduinoHttpClient
Laden Sie den diesem Schritt beigefügten Code herunter, entpacken Sie die Datei und öffnen Sie Solar_Powered_Soil_Moisture_Monitor_Tutorial in Ihrer Arduino-Software.
#enthalten
#include #include #include #include // Daten- und Taktverbindungen angeben und SHT1x-Objekt instanziieren #define dataPin 12 // NodeMCU-Pin D6 #define clockPin 14 // NodeMCU-Pin D5 SHT1x sht1x (dataPin, clockPin); // Feed einrichten AdafruitIO_Feed *humidity = io.feed("humidity"); AdafruitIO_Feed *temperature = io.feed("temperatur"); const int sleepTime = 15; // 15 Minuten
Void-Setup ()
{Seriell.begin(115200); // Öffnen Sie die serielle Verbindung, um Werte an den Host Serial.println ("Starting up"); // Verbindung zu io.adafruit.com Serial.print ("Verbindung mit Adafruit IO herstellen"); io.connect(); // auf eine Verbindung warten während (io.status () < AIO_CONNECTED) { Serial.print ("."); Verzögerung (500); } // wir sind verbunden Serial.println (); Serial.println (io.statusText()); }
Leere Schleife ()
{io.run(); // io.run(); hält den Client in Verbindung und ist für alle Skizzen erforderlich. float temp_c; Schwimmertemp_f; schweben Feuchtigkeit; temp_c = sht1x.readTemperatureC(); // Werte vom Sensor lesen temp_f = sht1x.readTemperatureF (); Feuchtigkeit = sht1x.readHumidity(); Serial.print ("Temperatur: "); // Die Werte an den seriellen Port ausgeben Serial.print (temp_c, DEC); Serial.print("C/"); Serial.print (temp_f, DEC); Serial.print ("F. Luftfeuchtigkeit: "); Serial.print (Feuchtigkeit); Serial.println("%"); Feuchtigkeit->Speichern (Feuchtigkeit); Temperatur->Speichern(temp_f); Serial.println ("ESP8266 schläft …"); ESP.deepSleep(sleepTime * 1000000 * 60); // Schlaf }
Dieser Code ist ein Mashup des Sensorcodes von früher in diesem Tutorial und ein einfaches Beispiel aus dem Cloud-Datendienst Adafruit IO. Das Programm wechselt in den Energiesparmodus und schläft die meiste Zeit, wacht aber alle 15 Minuten auf, um die Temperatur und Luftfeuchtigkeit des Bodens abzulesen und meldet seine Daten an Adafruit IO. Navigieren Sie zur Registerkarte config.h und geben Sie Ihren Adafruit IO-Benutzernamen und -Schlüssel sowie Ihren lokalen WLAN-Netzwerknamen und Ihr Passwort ein. Laden Sie dann den Code auf Ihren ESP8266-Mikrocontroller hoch.
Auf io.adafruit.com müssen Sie sich ein wenig vorbereiten. Nachdem Sie Feeds für Temperatur und Luftfeuchtigkeit erstellt haben, können Sie ein Dashboard für Ihren Monitor erstellen, das eine Grafik der Sensorwerte und der Daten der beiden eingehenden Feeds enthält. Wenn Sie eine Auffrischung der ersten Schritte mit Adafruit IO benötigen, sehen Sie sich diese Lektion in meinem Internet der Dinge-Kurs an.
Schritt 4: Solarladeplatine vorbereiten
Bereiten Sie die Solarladeplatine vor, indem Sie ihren Kondensator und einige Drähte an die Lastausgangspads löten. Ich passe meinen so an, dass er mit einem optionalen Zusatzwiderstand (2,2K über PROG gelötet) schneller aufgeladen wird und es sicherer ist, unbeaufsichtigt zu bleiben, indem ich den SMD-Widerstand durch einen 10K-Thermistor ersetzt, der an der Batterie selbst angebracht ist. Dadurch wird das Laden auf einen sicheren Temperaturbereich begrenzt. Ich habe diese Änderungen in meinem Solar-USB-Ladegerät-Projekt ausführlicher behandelt.
Schritt 5: Mikrocontroller-Schaltung aufbauen
Löten Sie die Mikrocontroller-Platine und den Netzschalter auf eine Perma-Proto-Platine.
Verbinden Sie den Stromausgang des Solarladegeräts mit dem Eingang Ihres Schalters, der für mindestens 1 Ampere ausgelegt sein sollte.
Erstellen und löten Sie die im Schaltplan oben beschriebenen Steckbrett-Drahtverbindungen (oder nach den Spezifikationen Ihrer persönlichen Version), einschließlich des 10K-Pull-up-Widerstands an der Datenleitung des Sensors.
Die Load-Pins des Solarladegeräts liefern 3,7 V Batteriestrom, wenn kein Solarstrom vorhanden ist, werden jedoch direkt vom Solarpanel mit Strom versorgt, wenn es eingesteckt und sonnig ist. Daher muss der Mikrocontroller in der Lage sein, eine Vielzahl von Spannungen zu tolerieren, so niedrig wie 3,7 V und bis zu 6 V DC. Für diejenigen, die 5 V benötigen, kann ein PowerBoost (500 oder 1000, je nach benötigtem Strom) verwendet werden, um die Lastspannung auf 5 V zu modulieren (wie im Projekt Solar USB Charger gezeigt). Hier sind einige gängige Boards und ihre Eingangsspannungsbereiche:
- NodeMCU ESP8266 (hier verwendet): 5V USB oder 3,7V-10V Vin
- Arduino Uno: 5V USB oder 7-12V Vin
- Adafruit Huzzah ESP8266 Breakout: 5V USB oder 3,4-6V VBat
Um eine möglichst lange Akkulaufzeit zu erreichen, sollten Sie sich etwas Zeit nehmen, um den Gesamtstrom Ihrer Stromaufnahme zu berücksichtigen und zu optimieren. Der ESP8266 verfügt über eine Deep-Sleep-Funktion, die wir in der Arduino-Skizze verwendet haben, um seinen Stromverbrauch drastisch zu reduzieren. Es wacht auf, um den Sensor zu lesen und zieht mehr Strom, während es sich mit dem Netzwerk verbindet, um den Wert des Sensors zu melden, und geht dann für eine bestimmte Zeit wieder in den Ruhezustand. Wenn Ihr Mikrocontroller viel Strom verbraucht und nicht leicht in den Ruhezustand versetzt werden kann, sollten Sie Ihr Projekt auf ein kompatibles Board portieren, das weniger Strom verbraucht. Schreiben Sie eine Frage in die Kommentare unten, wenn Sie Hilfe benötigen, um herauszufinden, welches Board das richtige für Ihr Projekt sein könnte.
Schritt 6: Kabelverschraubungen installieren
Um wetterfeste Einführungspunkte für das Solarmodulkabel und das Sensorkabel zu schaffen, installieren wir zwei Kabelverschraubungen an der Seite des wetterfesten Gehäuses.
Passen Sie Ihre Komponenten an, um die ideale Platzierung zu ermitteln, und markieren und bohren Sie dann mit einem Stufenbohrer Löcher in einem wasserdichten Gehäuse. Installieren Sie die beiden Kabelverschraubungen.
Schritt 7: Komplette Schaltungsbaugruppe
Stecken Sie die Anschlussseite eines wasserdichten Stromkabels in eines und löten Sie es an den DC-Eingang des Solarladegeräts (rot an + und schwarz an -).
Bodensensor durch die andere Verschraubung stecken und gemäß Schaltplan an perma-proto anschließen.
Kleben Sie die Thermistorsonde an die Batterie. Dadurch wird das Laden auf einen sicheren Temperaturbereich begrenzt, während das Projekt unbeaufsichtigt draußen bleibt.
Das Aufladen bei zu hoher oder zu kalter Temperatur kann den Akku beschädigen oder einen Brand auslösen. Extreme Temperaturen können Schäden verursachen und die Lebensdauer des Akkus verkürzen. Bringen Sie ihn also ins Haus, wenn er unter dem Gefrierpunkt oder über 45℃/113F liegt.
Ziehen Sie die Kabelverschraubungen fest, um eine wetterfeste Abdichtung um die entsprechenden Kabel zu gewährleisten.
Schritt 8: Sonnenkollektor vorbereiten
Folgen Sie meinem Instructable, um das Kabel für Ihr Solarpanel mit der Steckerseite des wasserdichten Gleichstromkabelsatzes zu spleißen.
Schritt 9: Testen Sie es
Stecken Sie Ihre Batterie ein und schalten Sie den Stromkreis ein, indem Sie den Netzschalter drücken.
Testen Sie es und stellen Sie sicher, dass es an das Internet meldet, bevor Sie das Gehege schließen und den Sensor in Ihrem Kräutergarten, einer wertvollen Topfpflanze oder einem anderen Boden innerhalb der Signalreichweite Ihres WLAN-Netzwerks installieren.
Sobald die Daten des Sensors online protokolliert wurden, ist es einfach, ein Rezept für E-Mail- oder Textwarnungen auf der API-Gateway-Site If This Then That einzurichten. Ich habe meine so konfiguriert, dass sie mir eine E-Mail sendet, wenn die Bodenfeuchtigkeit unter 50 sinkt.
Um es zu testen, ohne darauf zu warten, dass meine Pflanze austrocknet, habe ich manuell einen Datenpunkt zu meinem Feuchtigkeitsfeed auf Adafruit IO eingegeben, der unter den Schwellenwert fiel. Wenige Augenblicke später kommt die E-Mail! Wenn der Bodenwert unter meinen angegebenen Wert fällt, erhalte ich jedes Mal eine E-Mail, wenn der Feed aktualisiert wird, bis ich den Boden bewässere. Aus Gründen der Vernunft habe ich meinen Code aktualisiert, um den Boden viel seltener als alle 15 Minuten zu beproben.
Schritt 10: Verwenden Sie es draußen
Dies ist ein unterhaltsames Projekt, das an den Flüssigkeitsbedarf Ihrer Anlage angepasst werden kann, und es ist einfach, Sensoren auszutauschen oder hinzuzufügen oder die Solarstromfunktionen in Ihre anderen Arduino-Projekte zu integrieren.
Danke fürs Mitmachen! Ich würde gerne hören, was Sie denken; bitte in die Kommentare posten. Dieses Projekt ist Teil meiner kostenlosen Solar Class, in der Sie einfache Hinterhofprojekte und weitere Lektionen zur Arbeit mit Sonnenkollektoren finden. Schauen Sie rein und melden Sie sich an!
Wenn Ihnen dieses Projekt gefällt, interessieren Sie sich vielleicht für einige meiner anderen:
- kostenlose Internet-of-Things-Klasse
- YouTube-Abonnentenzähler mit ESP8266
- Social Stats Tracker-Display mit ESP8266
- WiFi-Wetteranzeige mit ESP8266
- Internet-Valentinstag
Folgen Sie mir auf YouTube, Instagram, Twitter, Pinterest und Snapchat, um auf dem Laufenden zu bleiben, woran ich arbeite.
Empfohlen:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Raspberry Pi mit Node.js mit der Cloud verbinden – wikiHow
So verbinden Sie Raspberry Pi mit Node.js mit der Cloud: Dieses Tutorial ist nützlich für alle, die einen Raspberry Pi mit Node.js mit der Cloud, insbesondere mit der AskSensors IoT-Plattform, verbinden möchten. Sie haben keinen Raspberry Pi? Wenn Sie derzeit keinen Raspberry Pi besitzen, empfehle ich Ihnen, sich einen Raspberry Pi zuzulegen
DIY Circuit Activity Board mit Büroklammern - HERSTELLER - STEM: 3 Schritte (mit Bildern)
DIY Circuit Activity Board mit Büroklammern | HERSTELLER | STEM: Mit diesem Projekt können Sie den Weg des elektrischen Stroms ändern, um durch verschiedene Sensoren zu laufen. Mit diesem Design können Sie zwischen dem Aufleuchten einer blauen LED oder dem Aktivieren eines Summers wechseln. Sie haben auch die Wahl, einen lichtabhängigen Widerstand mit
So stellen Sie ein Solar-USB-Ladegerät her! (einfach!): 6 Schritte (mit Bildern)
So stellen Sie ein Solar-USB-Ladegerät her! (einfach!): Danke für all die Ansichten Jungs! Wenn Sie meinen Newsletter lesen möchten, klicken Sie hier Willkommen! Ich zeige Ihnen, wie Sie ein Solar-USB-Ladegerät herstellen, das etwa 6 V ausgibt und sich perfekt zum Aufladen von Geräten eignet, die USB verwenden. Dies ist perfekt für jemanden, der neu in s