Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

Durstige twitternde Büropflanzen

Komponenten und Verbrauchsmaterialien

Arduino Due
× 1
Andium Anduino WiFi
× 1
Arduino Zero
× 1
Kapazitiver Bodenfeuchtigkeitssensor
× 1

Apps und Onlinedienste

Arduino-IDE
IFTTT
Adafruit IO

Über dieses Projekt

Motivation

Wir bei Andium freuen uns sehr, endlich unsere neuen Büroräume bezogen zu haben. Wir haben es mit Wänden, die mit Whiteboards bedeckt sind, neuer glänzender Technologie und allem Komfort von zu Hause ausgestattet. Es hat sich besonders angefühlt, sich wie zu Hause zu fühlen, als wir eine Handvoll dieser grünblättrigen Freunde im ganzen Raum platziert haben!

Nur haben wir vergessen, sie zu gießen und innerhalb einer Woche oder so sahen unsere grünen Freunde so aus...

Scheitern.

Wir sind ein IoT-Unternehmen, wir sind besser als das. Wie kommt es, dass unsere Anlagen nicht mit dem Internet verbunden sind! Bevor es für diesen kleinen Kerl zu spät ist, habe ich hoffentlich eine Lösung mit unserem anduinoWiFi-Shield und IFTTT zusammengestellt. Zeit, unseren Pflanzen eine Stimme zu geben!

Erste Schritte

Wenn Sie einen grünen Daumen haben, haben Sie wahrscheinlich schon aufgehört zu lesen, aber wenn Sie wie ich sind und Ihren Pflanzen die Möglichkeit geben müssen, digital um Gnade zu betteln und nach Wasser zu schreien, dann sind Sie hier richtig.

Um Ihren Pflanzen eine Stimme zu geben, benötigen Sie einen Arduino Due oder Zero, einen anduinoWiFi-Schild (oder einen anderen über WLAN verbundenen Arduino, der mit Adafruit IO sprechen kann) und schließlich einen 'kapazitiven Bodenfeuchtigkeitssensor'. Ach ja, und ein Glas Wasser. (Geben Sie es Ihrer Pflanze, wenn wir fertig sind, sie werden es Ihnen jetzt per E-Mail danken).

Feuchtigkeitssensor

Der Bodenfeuchtigkeitssensor ist ziemlich cool, es gibt nicht viele Sensoren, bei denen Sie tatsächlich dazu ermutigt werden, in nassen Schmutz einzutauchen, also genießen Sie das, solange Sie können. Aber nicht zu viel, beachte diese Zeile...

Was auch immer Sie tun, tauchen Sie Ihren Sensor nicht unter diese weiße Linie. Nichts darüber verträgt die Feuchtigkeit zu gut, seien Sie also vorsichtig, wenn Sie Ihre Pflanzen gießen, die diesen Sensor enthalten.

Wenn Sie sich zum nächsten Foto oben durchgeklickt haben, fragen Sie sich vielleicht, warum ich den Sensor in ein Glas Wasser getaucht habe. Nun, wundere dich nicht mehr!

Kalibrieren des 'kapazitiven Bodenfeuchtesensors'

Unser kapazitiver Sensor hat drei Drähte, die wir an 3,3 V (rot), Masse (schwarz) und (blaues Signal) analogen Pin A1 anschließen. Wenn wir unseren Sensor kalibrieren, werden wir den Kapazitätsmesswert aufzeichnen, wenn der Sensor vollständig trocken ist, und dann eine zweite Messung durchführen, wenn der Sensor (bis zur weißen Linie!) Dadurch erhalten wir unsere extremen Grenzwerte für die relative Luftfeuchtigkeit von 0-100 %.

Verdrahten Sie Ihren Sensor, führen Sie diese Skizze aus und notieren Sie Ihre Ergebnisse. Als Referenz war mein dryVal 807 und mein wetVal 415.

int inputPin =A1; Void setup () { Serial.begin (115200); Verzögerung (3000); aufrechtzuerhalten. Void Schleife () {Serial.print ( "Rohwert:"); Serial.println (readHumidity()); Verzögerung (3000); aufrechtzuerhalten. Int readHumidity () { Int sensorVal =analogRead (inputPin); RücklaufsensorVal; }  

Sobald Sie diese beiden Zahlen haben, können Sie die Zuordnung der relativen Luftfeuchtigkeit konfigurieren. Betrachten Sie sich als kalibriert!

Die Skizze

#include  #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" #include "AnduinoLCD.h" // WLAN-Parameter #define WLAN_SSID "Andium" #define WLAN_PASS "maybeitsjustpassword" // Adafruit IO #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "yourusername" #define AIO_KEY "dosifje0j230fj32lksdfj230ff23" WiFiClient-Client; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); /****************************** Einspeisungen ****************** *********************/ // Setup-Feed für Temperatur Adafruit_MQTT_Publish feuchtVal =Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/officePlants"); /*Eine Instanz des AnduinoLCD erstellen */ AnduinoLCD LCD =AnduinoLCD(ST7735_CS_PIN, ST7735_DC_PIN, ST7735_RST_PIN); int inputPin =A1; const int dryVal =807; const int wetVal =415; int Luftfeuchtigkeit =0; int FeuchtePrev =0; int relFeuchte =0; Void setup () { Serial.begin (115200); Verzögerung (3000); // Verbinden mit WiFi &Adafruit.IO connectToWiFi (); connectToAdafruit(); // LCD initialisieren LCD.begin (); LCDinit(); } void loop() { // Ping adafruit io ein paar Mal, um sicherzustellen, dass wir verbunden bleiben if(! mqtt.ping(3)) { // erneut mit adafruit io verbinden if(! mqtt.connected()) connect(); } Feuchtigkeit =readHumidity(); // int temp in char-Array umwandeln char b[4]; Zeichenfolge str; str=String(Feuchtigkeit); for(int i=0; i=0) mqtt.disconnect(); Serial.println (F ( "Verbindung wird erneut versucht ...")); Verzögerung (1000); } Serial.println (F ("Adafruit IO verbunden!")); aufrechtzuerhalten. aufrechtzuerhalten. Void displayHumidity (int Feuchte, int HumidtyPrev) {// den veralteten Wert löschen LCD.setTextColor (ST7735_BLACK); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(40,60); LCD.setTextSize(5); LCD.print (FeuchtigkeitZurück); LCD.setTextSize(2); LCD.print("%"); // Neuen Wert drucken LCD.setTextColor (ST7735_WHITE); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(40,60); LCD.setTextSize(5); LCD.print (Luftfeuchtigkeit); LCD.setTextSize(2); LCD.print("%"); aufrechtzuerhalten. Void connectToWiFi () {// Mit dem WLAN-Zugangspunkt verbinden. Verzögerung(10); Serial.print (F ("Verbinden mit")); Serial.println (WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); Während (WiFi.status () !=WL_CONNECTED) { Verzögerung (500); Serial.print (F(."")); } Serial.println (F ("WiFi verbunden!")); aufrechtzuerhalten. Void connectToAdafruit () {// Verbindung mit Adafruit io connect (); aufrechtzuerhalten. Void LCDinit () { LCD.setBacklight (ON); LCD.fillScreen(ST7735_BLACK); // den Bildschirm löschen LCD.showBanner (); // Andium Banner laden LCD.setTextColor (ST7735_WHITE); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(0,40); LCD.print("Luftfeuchtigkeit:"); aufrechtzuerhalten. Int readHumidity () { Int sensorVal =analogRead (inputPin); relHumidity =map(sensorVal, dryVal, wetVal, 0, 100); Serial.println ("relHumidity"); Serial.print (relHumidity); relHumidity zurückgeben; }  

Kopieren Sie diese Skizze und fügen Sie sie in Ihre IDE ein und stellen Sie sicher, dass diese Bibliotheken installiert sind.

  • WiFi101
  • Adafruit_MQTT
  • AnduinoLCD

Sowie Ihre persönlich kalibrierten...

const int dryVal =807; const int wetVal =415;  

Nass- und Trockenwerte. Am unteren Rand der Skizze verwenden wir diese Werte, um 0-100% relative Luftfeuchtigkeit abzubilden, wenn wir Humidity() lesen. Unsere Werte sind jetzt 0 % bei Trockenheit und 100 % bei vollständiger Sättigung.

relHumidity =map(sensorVal, dryVal, wetVal, 0, 100); 

Wenn alles gut geht und Ihr Arduino mit WiFi und Adafruit IO verbunden ist, sollten alle 10 Minuten Messwerte eingehen. Hier ist eine Momentaufnahme unserer heutigen Lesungen.

Vergessen Sie diese Ausreißer heute nicht, ich habe auch veröffentlicht, während ich meine rohe, nicht zugeordnete Kapazität gelesen habe, um meine Trocken- und Nasswerte zu bestimmen.

Toll, jetzt veröffentlichen wir alle 10 Minuten unseren Bodenfeuchtigkeitsmesswert. Jetzt ist es mir ziemlich egal, was die Messwerte sind, bis ich meine Pflanzen vor dem Absterben retten und sie gießen muss. Lassen Sie uns IFTTT verwenden, um einen Schwellenwert für die Luftfeuchtigkeit festzulegen und die Benachrichtigung zu konfigurieren, damit wir daran erinnert werden, unsere Pflanzen zu gießen!

IFTTT-Schwellenwert

Mit IFTTT habe ich einen Schwellenwert festgelegt, so dass unsere durstigen Pflanzen uns per Twitter (@andiumPlants) erreichen, wenn die relative Luftfeuchtigkeit unter 20% sinkt, und uns um Bewässerung bitten! Hier ist ein Blick auf die Einrichtung.

Das war's!

Was kommt als nächstes?

Das überlasse ich dir! Wie sonst können wir unseren Pflanzen kreativ eine Stimme geben und unsere Fauna vor dem Versagen bewahren. Schnapp dir ein anduinoWiFi und einen Bodensensor und fang an zu bauen!

Code

Anduino
Eine Arduino-Bibliothek für das Andium(Anduino)-Schild. Verwandeln Sie Ihr Arduino in einen AndiumNode.https://github.com/andium/Anduino

Herstellungsprozess

  1. Dünger
  2. Arduino Spybot
  3. FlickMote
  4. Selbstgemachter Fernseher B-Gone
  5. Hauptuhr
  6. Finde mich
  7. Arduino-Power
  8. Tech-TicTacToe
  9. Bestimmung der Pflanzengesundheit mit TinyML
  10. Arduino-Vierbeiner