Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Plantes de bureau assoiffées de tweets

Composants et fournitures

Arduino Due
× 1
Andium Anduino WiFi
× 1
Arduino Zero
× 1
Capteur capacitif d'humidité du sol
× 1

Applications et services en ligne

Arduino IDE
IFTTT
Adafruit IO

À propos de ce projet

Motivation

Chez Andium, nous sommes très heureux d'avoir enfin emménagé dans notre nouvel espace de bureau. Nous l'avons décoré de murs recouverts de tableaux blancs, de nouvelles technologies brillantes et de tout le confort de la maison. On a surtout commencé à se sentir comme à la maison lorsque nous avons placé une poignée de ces amis à feuilles vertes dans tout l'espace !

Seulement, nous avons oublié de les arroser et en une semaine environ, nos amis feuillus ont commencé à ressembler à ça...

Échouer.

Nous sommes une entreprise IoT, nous sommes meilleurs que cela. Comment se fait-il que nos plantes ne soient pas connectées à Internet ! J'espère qu'avant qu'il ne soit trop tard pour ce petit gars, j'ai mis en place une solution en utilisant notre bouclier anduinoWiFi et IFTTT. Il est temps de donner la parole à nos plantes !

Mise en route

Si vous avez la main verte, vous avez probablement déjà arrêté de lire, mais si vous êtes comme moi et que vous avez besoin de donner à vos plantes la possibilité de demander grâce numériquement et de crier pour de l'eau, alors vous êtes au bon endroit.

Pour donner une voix à vos plantes, vous aurez besoin d'un Arduino Due, ou Zero, d'un blindage anduinoWiFi (ou de tout autre Arduino connecté au WiFi qui peut parler à Adafruit IO) et enfin d'un « capteur capacitif d'humidité du sol ». Oh, et un verre d'eau. (Donnez-le à votre usine lorsque nous aurons terminé, ils vous remercieront par e-mail maintenant).

Capteur d'humidité

Le capteur d'humidité du sol est plutôt cool, il n'y a pas beaucoup de capteurs où vous êtes réellement encouragé à vous immerger dans la saleté humide, alors profitez-en pendant que vous le pouvez. Pas trop cependant, notez bien cette ligne...

Quoi que vous fassiez, ne plongez pas votre capteur sous cette ligne blanche. Rien au-dessus ne tolérera trop bien l'exposition à l'humidité, alors soyez prudent lorsque vous arrosez vos plantes qui contiennent ce capteur.

Si vous avez cliqué sur la photo suivante ci-dessus, vous vous demandez peut-être pourquoi j'ai immergé le capteur dans un verre d'eau. Eh bien, ne vous posez plus la question !

Comment calibrer le « capteur capacitif d'humidité du sol »

Notre capteur capacitif a trois fils que nous connecterons à la broche analogique A1 de 3,3 V (rouge), à ​​la terre (noir) et (signal bleu). Lorsque nous étalonnons notre capteur, nous allons enregistrer la lecture de la capacité lorsque le capteur est complètement sec, puis effectuer une deuxième lecture lorsque le capteur est immergé (jusqu'à la ligne blanche !) dans un verre d'eau. Cela nous donne nos seuils extrêmes d'humidité relative de 0 à 100 %.

Branchez votre capteur, exécutez ce croquis et notez vos résultats. Pour référence, mon dryVal était de 807 et mon wetVal était de 415.

int inputPin =A1; void setup() { Serial.begin(115200); retard (3000); } void loop() { Serial.print("Raw val:"); Serial.println(readHumidity()); retard (3000); } int readHumidity() { int sensorVal =analogRead(inputPin); retour sensorVal; }  

Une fois que vous avez ces deux chiffres, vous êtes prêt à configurer la cartographie de l'humidité relative. Considérez-vous calibré !

Le croquis

#include  #include "Adafruit_MQTT.h" #include "Adafruit_MQTT_Client.h" #include "AnduinoLCD.h" // Paramètres WiFi #define WLAN_SSID "Andium" #define WLAN_PASS "peut-être juste le mot de passe" // Adafruit IO #define AIO_SERVER "io.adafruit.com" #define AIO_SERVERPORT 1883 #define AIO_USERNAME "votrenom d'utilisateur" #define AIO_KEY "dosifje0j230fj32lksdfj230ff23" WiFiClient client ; Adafruit_MQTT_Client mqtt(&client, AIO_SERVER, AIO_SERVERPORT, AIO_USERNAME, AIO_KEY); /****************************** Flux ****************** *********************/ // Configuration du flux pour la température Adafruit_MQTT_Publish humidityVal =Adafruit_MQTT_Publish(&mqtt, AIO_USERNAME "/feeds/officePlants"); /*Créer une instance de l'AnduinoLCD */ AnduinoLCD LCD =AnduinoLCD(ST7735_CS_PIN, ST7735_DC_PIN, ST7735_RST_PIN); int inputPin =A1; const int dryVal =807 ; const int wetVal =415 ; humidité int =0; int humiditéPrev =0; int relHumidity =0; void setup() { Serial.begin(115200); retard (3000); //Connectez-vous au WiFi et à Adafruit.IO connectToWiFi(); connectToAdafruit(); //Initialisation de l'écran LCD LCD.begin(); LCDinit(); } void loop() { // ping adafruit io plusieurs fois pour s'assurer que nous restons connectés if(! mqtt.ping(3)) { // se reconnecter à adafruit io if(! mqtt.connected()) connect(); } humidité =readHumidity(); //convertit int temp en tableau de caractères char b[4]; Chaîne str; str=String(humidité); for(int i=0; i=0) mqtt.disconnect(); Serial.println(F("Nouvelle tentative de connexion...")); retard(1000); } Serial.println(F("Adafruit IO connecté !")); } void displayHumidity(int humidty, int humidtyPrev) { //efface la valeur périmée LCD.setTextColor(ST7735_BLACK); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor (40,60); LCD.setTextSize(5) ; LCD.print(humiditéPrécédent); LCD.setTextSize(2); LCD.print("%"); //Imprimer la nouvelle valeur LCD.setTextColor(ST7735_WHITE); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor (40,60); LCD.setTextSize(5) ; LCD.print (humidité); LCD.setTextSize(2); LCD.print("%"); } void connectToWiFi() { // Se connecter au point d'accès WiFi. retard(10) ; Serial.print(F("Connexion à ")); Serial.println(WLAN_SSID); WiFi.begin(WLAN_SSID, WLAN_PASS); while (WiFi.status() !=WL_CONNECTED) { delay(500); Serial.print(F(".")); } Serial.println(F("WiFi connecté !")); } void connectToAdafruit() { // se connecte à adafruit io connect(); } void LCDinit() { LCD.setBacklight(ON); LCD.fillScreen(ST7735_BLACK); //efface l'écran LCD.showBanner(); //charge Andium Banner LCD.setTextColor(ST7735_WHITE); LCD.setTextSize(2); LCD.setTextWrap(true); LCD.setCursor(0,40); LCD.print("Humidité:"); } int readHumidity() { int sensorVal =analogRead(inputPin); relHumidity =map(sensorVal, dryVal, wetVal, 0, 100); Serial.println("relHumidité"); Serial.print(relHumidity); retour relHumidity; }  

Copiez et collez ce croquis dans votre IDE et assurez-vous que ces bibliothèques sont installées.

  • WiFi101
  • Adafruit_MQTT
  • AnduinoLCD

Ainsi que votre calibré personnel...

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

valeurs humides et sèches. Vers le bas du croquis, lorsque nous lisons Humidity(), nous utilisons ces valeurs pour cartographier 0-100 % d'humidité relative. Alors maintenant, nos valeurs indiqueront 0 % lorsqu'elles sont sèches et 100 % lorsqu'elles sont complètement saturées.

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

Si tout se passe bien et que votre arduino se connecte au WiFi et à Adafruit IO, vous devriez commencer à voir des lectures toutes les 10 minutes. Voici un aperçu de nos lectures d'aujourd'hui.

Ne vous occupez pas de ces valeurs aberrantes plus tôt dans la journée, je publiais également pendant que je lisais ma capacité brute non mappée pour déterminer mes valeurs sèches et humides.

Super, maintenant toutes les 10 minutes, nous publions notre lecture de l'humidité du sol. Maintenant, je ne me soucie vraiment pas des lectures jusqu'à ce que je doive sauver mes plantes de la mort et les arroser. Utilisons IFTTT pour définir un niveau d'humidité seuil et configurer la notification à envoyer afin qu'on nous rappelle d'arroser nos plantes !

Seuil IFTTT

En utilisant IFTTT, j'ai défini un seuil tel que lorsque l'humidité relative du sol tombe en dessous de 20%, nos plantes assoiffées nous contactent via twitter (@andiumPlants) pour demander à être arrosées ! Voici un aperçu de la configuration.

C'est tout !

Quelle est la prochaine étape ?

Je vous laisse ça ! Sinon, comment pouvons-nous donner une voix à nos plantes de manière créative et empêcher notre faune de tomber en panne. Prenez un anduinoWiFi et un capteur de sol et commencez à faire !

Code

Anduino
Une bibliothèque Arduino pour le bouclier Andium (Anduino). Transformez votre Arduino en AndiumNode.https://github.com/andium/Anduino

Processus de fabrication

  1. Engrais
  2. Arduino Spybot
  3. FlickMote
  4. Téléviseur maison B-Gone
  5. horloge maîtresse
  6. Trouvez-moi
  7. Puissance Arduino
  8. Tech-TicTacToe
  9. Détermination de la santé des plantes avec TinyML