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

EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante

Composants et fournitures

Arduino Nano R3 × 1
Capteur d'humidité du sol DFRobot Gravity analogique pour Arduino × 1
Écran OLED I2C 0,96" × 1

Outils et machines nécessaires

Applications et services en ligne

À propos de ce projet

Dans ce projet, j'ai réalisé un pot de fleurs intelligent qui peut montrer l'émotion d'une plante 😜. Il utilise un capteur d'humidité du sol pour surveiller l'humidité et affiche une expression émotionnelle correspondant à ce niveau. Comme on sait que les plantes ont besoin d'eau pour vivre et que c'est comme de la nourriture pour elles, on peut dire que ça a du sens 😋. C'est un petit projet amusant pour faire un pot intelligent et surveiller visuellement le niveau d'humidité.

Ce pot affiche différentes expressions émotionnelles pour différents niveaux d'eau.

Après avoir réalisé ce projet, vous apprendrez :

Partie matériel

Pour ce projet, il faut d'abord un pot de fleurs. J'ai conçu le pot avec un compartiment pour l'électronique en utilisant Fusion 360. Si vous avez une imprimante 3D, vous pouvez l'imprimer vous-même. Si vous n'en avez pas, pas de problème ! Vous pouvez utiliser n'importe quel pot de fleurs et faire une boîte pour l'électronique.

EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante
EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante
EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante
EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante
EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante
EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante
EmoPot : Pot de fleurs intelligent qui visualise la santé de votre plante

Pour la partie électronique, connectez :

Programmation

Le code a l'air compliqué mais il est très simple ! Au début, j'inclus quelques bibliothèques (vous devrez peut-être les télécharger) :

Après avoir ajouté ces bibliothèques, je crée des fonctions pour chaque frame d'animation pour chaque expression émotionnelle (Croyez-moi, ça prend une éternité). Dans la section setup, j'initialise l'affichage. Et dans la boucle loop, je lis la valeur du capteur en analogique sensorValue = analogRead(A0); puis je fais des conditions pour différents niveaux d'humidité et affiche les frames correspondantes à cette expression émotionnelle.

Voici quelques vidéos pour les différentes expressions émotionnelles selon le niveau d'humidité


Code complet (EmoPot Code)

#include  
#include  
#include  
#include  
#include  

#define OLED_RESET 0 
Adafruit_SSD1306 display(OLED_RESET); 

int sensorValue = 0; 
int xx = 40; 

/****************************************** TRISTE ****************************************************/ 
// Frames d'animation pour l'expression "triste" (frame01 à frame121) 
// ... (tableaux de bitmaps omis pour la brièveté, voir code source complet) 

/************************************************* SOURIRE *************************************************/ 
// Frames d'animation pour l'expression "sourire" (frame02 à frame132) 
// ... (tableaux de bitmaps omis pour la brièveté) 

/************************************** NEUTRE ***************************************************/ 
// Frames d'animation pour l'expression "neutre" (frame03 à frame83) 
// ... (tableaux de bitmaps omis pour la brièveté) 

/*************************************** ÉBAHISSEMENT **************************************************************/ 
// Frames d'animation pour l'expression "ébahissement" (frame04 à frame94) 
// ... (tableaux de bitmaps omis pour la brièveté) 

/**************************************************** PLEURS **********************************************/ 
// Frames d'animation pour l'expression "pleurs" (frame05 à frame95) 
// ... (tableaux de bitmaps omis pour la brièveté) 

// Expression "confus" 
const unsigned char PROGMEM framec[] = { 
  // ... (bitmap omis pour la brièveté) 
}; 

/********************************************************************************************************************************/ 

void setup() { 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C); 
  display.clearDisplay(); 
  display.setFont(&FreeSans9pt7b); 
  display.setTextColor(WHITE); 
  display.setCursor(0,0); 
} 

void loop() { 
  sensorValue = analogRead(A0); // lecture analogique du capteur 
  
  if(sensorValue >= 80 && sensorValue < 250) { 
    // Sourire - humidité bonne 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, frame02, 48, 48, 1); 
    display.display(); 
    delay(30); 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, frame012, 48, 48, 1); 
    display.display(); 
    delay(30); 
    // ... (autres frames sourire) 
  } 
  else if(sensorValue >= 250 && sensorValue < 350) { 
    // Ébahissement 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, frame04, 48, 48, 1); 
    display.display(); 
    delay(50); 
    // ... (autres frames ébahissement) 
  } 
  else if(sensorValue >= 350 && sensorValue < 550) { 
    // Neutre 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, frame03, 48, 48, 1); 
    display.display(); 
    delay(60); 
    // ... (autres frames neutre) 
  } 
  else if(sensorValue >= 550 && sensorValue < 700) { 
    // Triste - manque d'eau 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, frame011, 48, 48, 1); 
    display.display(); 
    delay(70); 
    // ... (autres frames triste) 
  } 
  else if(sensorValue >= 700 && sensorValue < 800) { 
    // Pleurs - très sec 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, frame05, 48, 48, 1); 
    display.display(); 
    delay(30); 
    // ... (autres frames pleurs) 
  } 
  else { 
    // Confus - valeur hors plage 
    display.clearDisplay(); 
    display.drawBitmap(xx, 0, framec, 48, 48, 1); 
    display.display(); 
    delay(30); 
  } 
}

Note : Les tableaux de bitmaps complets pour chaque frame d'animation sont très longs et ont été omis ici pour la lisibilité. Le code complet est disponible dans les fichiers du projet.

Processus de fabrication

  1. Centrale nucléaire Susquehanna : maintenance planifiée terminée, Unité 2 redémarrée
  2. Prévenir les Accidents de Chariot Élévateur : Conseils Essentiels pour Zéro Basculement
  3. La technologie d'horloge atomique réduit le vol de colis dans les livraisons en ligne
  4. Détection d'odeurs par IA : la technologie d'Aryballe révolutionne le business et les supply chains
  5. Facteurs critiques influençant les coûts de fabrication CNC – Partie II
  6. 7 indicateurs clés qu'il est temps de mettre à niveau votre générateur
  7. Pourquoi les pièces usinées sur mesure surpassent les pièces d'usine dans 4 domaines clés
  8. 10 projets DIY open-source innovants tirant parti de l'impression 3D
  9. Pelles expliquées : Types, utilisations et comment choisir la bonne pour votre projet