Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Dorstige tweeting kantoorplanten

Componenten en benodigdheden

Arduino Due
× 1
Andium Anduino WiFi
× 1
Arduino Zero
× 1
Capacitieve bodemvochtsensor
× 1

Apps en online services

Arduino IDE
IFTTT
Adafruit IO

Over dit project

Motivatie

Hier bij Andium zijn we super enthousiast dat we eindelijk naar onze nieuwe kantoorruimte zijn verhuisd. We hebben het uitgedost met muren bedekt met whiteboards, nieuwe glanzende technologie en alle gemakken van thuis. Het begon vooral als thuis te voelen toen we een handvol van deze groene bladvrienden door de ruimte plaatsten!

Alleen waren we vergeten ze water te geven en binnen een week of zo begonnen onze groene vrienden er zo uit te zien...

Mislukking.

We zijn een IoT-bedrijf, we zijn beter dan dit. Hoe komt het dat onze planten niet verbonden zijn met internet! Hopelijk voordat het te laat is voor deze kleine man, heb ik een oplossing samengesteld met behulp van ons anduinoWiFi-schild en IFTTT. Tijd om onze planten een stem te geven!

Aan de slag

Als je groene vingers hebt, ben je waarschijnlijk al gestopt met lezen, maar als je net als ik bent en je planten de mogelijkheid wilt geven om digitaal om genade te smeken en om water te schreeuwen, dan ben je hier op de juiste plek.

Om je planten een stem te geven, heb je een Arduino Due, of Zero, een anduinoWiFi-schild nodig (of een andere op WiFi aangesloten Arduino die met Adafruit IO kan praten) en tot slot een 'Capacitive Soil Moisture Sensor'. Oja, en een glas water. (Geef het aan je plant als we klaar zijn, ze zullen je nu via e-mail bedanken).

Vochtsensor

De bodemvochtsensor is best cool, er zijn niet veel sensoren waarbij je echt wordt aangemoedigd om onder te dompelen in nat vuil, dus geniet ervan zolang het kan. Maar niet te veel, let op deze regel...

Wat je ook doet, dompel je sensor niet onder die witte lijn. Niets daarboven verdraagt ​​de blootstelling aan vocht te goed, dus wees voorzichtig bij het water geven van uw planten die deze sensor bevatten.

Als je hebt doorgeklikt naar de volgende foto hierboven, vraag je je misschien af ​​waarom ik de sensor in een glas water heb ondergedompeld. Nou, vraag je niet meer af!

Hoe de 'Capacitieve bodemvochtsensor' te kalibreren

Onze capacitieve sensor heeft drie draden die we verbinden met 3.3v (rood), aarde (zwart) en (blauw signaal) analoge pin A1. Wanneer we onze sensor kalibreren, gaan we de capaciteitsmeting opnemen wanneer de sensor volledig droog is, en dan een tweede meting doen wanneer de sensor ondergedompeld is (tot aan de witte lijn!) in een glas water. Dit levert ons onze extreme 0-100% relatieve vochtigheidsdrempels op.

Sluit uw sensor aan, voer deze schets uit en noteer uw resultaten. Ter referentie, mijn dryVal was 807 en mijn wetVal was 415.

int inputPin =A1; void setup() { Serial.begin(115200); vertraging (3000); } void loop() { Serial.print("Onbewerkte waarde:"); Serial.println(readVochtigheid()); vertraging (3000); } int readHumidity() {int sensorVal =analogRead(inputPin); retour sensorVal; }  

Zodra u deze twee cijfers heeft, bent u klaar om de relatieve vochtigheidstoewijzing te configureren. Beschouw jezelf als gekalibreerd!

De schets

#include  #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" #include "AnduinoLCD.h" // WiFi-parameters #define WLAN_SSID "Andium" #define WLAN_PASS "maybeitsjustpassword" // Adafruit IO #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "yourusernname" #define AIO_KEY "dosifje0j230fj32lksdfj230ff23" WiFiClient-client; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); /****************************** Feeds **************** *********************/ // Setup feed voor temperatuur Adafruit_MQTT_Publish vochtigheidVal =Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/officePlants"); /*Maak een instantie van de AnduinoLCD */ AnduinoLCD LCD =AnduinoLCD (ST7735_CS_PIN, ST7735_DC_PIN, ST7735_RST_PIN); int inputPin =A1; const int dryVal =807; const int wetVal =415; int. vochtigheid =0; int vochtigheidPrev =0; int relVochtigheid =0; void setup() { Serial.begin(115200); vertraging (3000); //Verbind met WiFi &Adafruit.IO connectToWiFi(); connectToAdafruit(); // Initialiseer LCD LCD.begin (); LCDinit(); } void loop() { // adafruit io een paar keer pingen om er zeker van te zijn dat we verbonden blijven if(! mqtt.ping(3)) { // maak opnieuw verbinding met adafruit io if(! mqtt.connected()) connect(); } vochtigheid =readHumidity(); //converteer int temp naar char array char b [4]; String str; str=String(vochtigheid); for(int i=0; i=0) mqtt.disconnect(); Serial.println(F("Verbinding opnieuw proberen...")); vertraging (1000); } Serial.println(F("Adafruit IO Verbonden!")); } void displayHumidity (int vochtigheid, int vochtigheidPrev) {// wis de oude waarde LCD.setTextColor (ST7735_BLACK); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(40,60); LCD.setTextSize(5); LCD.print(vochtigheidVorige); LCD.setTextSize(2); LCD.print("%"); // Print nieuwe waarde LCD.setTextColor (ST7735_WHITE); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(40,60); LCD.setTextSize(5); LCD.afdruk (vochtigheid); LCD.setTextSize(2); LCD.print("%"); } void connectToWiFi() { // Maak verbinding met wifi-toegangspunt. vertraging(10); Serial.print(F("Verbinden met ")); Serieel.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() !=WL_CONNECTED) { delay(500); Serial.print(F(".")); } Serial.println(F("WiFi verbonden!")); } void connectToAdafruit() {// verbind met adafruit io connect(); } void LCDinit() { LCD.setBacklight(ON); LCD.fillScreen(ST7735_BLACK); // wis het scherm LCD.showBanner(); // laad Andium Banner LCD.setTextColor (ST7735_WHITE); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(0,40); LCD.print("Vochtigheid:"); } int readHumidity() {int sensorVal =analogRead(inputPin); relHumidity =map(sensorVal, dryVal, wetVal, 0, 100); Serial.println("relVochtigheid"); Serial.print(relVochtigheid); retour relVochtigheid; }  

Kopieer en plak deze schets in je IDE en zorg ervoor dat deze bibliotheken zijn geïnstalleerd.

  • WiFi101
  • Adafruit_MQTT
  • AnduinoLCD

Evenals uw persoonlijk gekalibreerde...

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

natte en droge waarden. Naar de onderkant van de schets wanneer we Vochtigheid() lezen, gebruiken we deze waarden om de relatieve vochtigheid van 0-100% in kaart te brengen. Dus nu zullen onze waarden 0% zijn wanneer ze droog zijn en 100% wanneer ze volledig verzadigd zijn.

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

Als alles goed gaat en je arduino verbinding maakt met wifi en Adafruit IO, zou je elke 10 minuten metingen moeten zien binnenkomen. Hier is een momentopname van onze metingen van vandaag.

Let niet op die uitschieters eerder vandaag, ik was ook aan het publiceren terwijl ik mijn onbewerkte niet-toegewezen capaciteit las om mijn droge en natte waarden te bepalen.

Geweldig, nu publiceren we elke 10 minuten onze bodemvochtmeting. Nu kan het me eigenlijk niet schelen wat de meetwaarden zijn, totdat ik mijn planten moet redden van het sterven en ze water moet geven. Laten we IFTTT gebruiken om een ​​drempelwaarde voor vochtigheid in te stellen en een melding te configureren die moet worden verzonden, zodat we eraan worden herinnerd onze planten water te geven!

IFTTT-drempel

Met behulp van IFTTT heb ik een drempel ingesteld zodat wanneer de relatieve vochtigheid van de grond onder de 20% zakt, onze dorstige planten via twitter (@andiumPlants) contact met ons opnemen met het verzoek om water! Hier is een blik op de set-up.

Dat is het!

Wat nu?

Dat laat ik aan jou over! Hoe kunnen we anders onze planten creatief een stem geven en voorkomen dat onze fauna faalt. Pak een anduinoWiFi en een bodemsensor en begin met maken!

Code

Anduino
Een Arduino-bibliotheek voor het Andium(Anduino)-schild. Transformeer uw Arduino in een AndiumNode.https://github.com/andium/Anduino

Productieproces

  1. Meststof
  2. Arduino Spybot
  3. FlickMote
  4. Zelfgemaakte tv B-Gone
  5. Hoofdklok
  6. Vind mij
  7. Arduino Power
  8. Tech-TicTacToe
  9. De gezondheid van planten bepalen met TinyML
  10. Arduino Quadruped
  11. Arduino-joystick