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

Station météo personnelle (Arduino+ ESP8266 + Thingspeak)

Composants et fournitures

Adafruit BMP180
× 1
Capteur de température et d'humidité DHT11 (4 broches)
× 1
LDR
Résistance dépendante de la lumière
× 1
Espressif ESP8266 ESP-01
× 1
Arduino Nano R3
× 1
Résistance 4.75k ohm
× 1
Résistance 51K
× 1
Module d'alimentation abaisseur DC-DC Buck Converter LM2596
× 1
Prise CC
× 1
commutateur
× 1
Adaptateur mural 12v-2A
× 1
PCB
× 1
En-tête masculin 40 position 1 rangée (0,1")
× 1
En-tête féminin 8 position 1 ligne (0,1")
× 5
boîte en plastique
× 1

Outils et machines nécessaires

dénudeur de fils
Pistolet à colle chaude (générique)
Fer à souder (générique)
tournevis
Fichier
utilisé pour l'artisanat

Applications et services en ligne

Arduino IDE
API ThingSpeak

À propos de ce projet

Intro :Créer une station météo personnelle

Assis dans votre chambre, vous commencez à transpirer ou à avoir froid; vous vous demandez quelle serait la température dans votre chambre ? ou quelle serait l'hygrométrie ? Cela m'est arrivé il y a quelque temps.

Cela a conduit à la création de Personal Weather Station, qui surveille la température, l'humidité, la pression et l'intensité lumineuse de votre pièce et la télécharge sur un canal privé sur Thingspeak.com.

Commençons.

Étape 1 : Vidéo rapide

Voici une petite vidéo, qui résume tout en 5 minutes.

Cliquez ici pour regarder sur youtube.

Étape 2 :Composants électroniques nécessaires pour la station météorologique personnelle

Description : Nous utiliserons DHT11 pour détecter l'humidité, BMP180 pour détecter la température et la pression et une résistance dépendante de la lumière (LDR) pour avoir une idée approximative de l'intensité lumineuse. Arduino nano collectera les données de ces capteurs et les enverra à ESP8266 pour les télécharger sur votre canal privé sur Thingspeak.com. Nous alimenterons notre Arduino nano à partir d'un adaptateur mural 12V-2A, les capteurs et l'ESP8266 recevront la tension convertie en baisse du convertisseur buck basé sur LM2596.

Liste des composants :

  • Capteur de pression et de température BMP180,
  • Capteur d'humidité DHT11,
  • Résistance dépendante de la lumière (LDR),
  • module wifi ESP8266 (micrologiciel prêt),
  • Arduino nano,
  • 2 résistances - 51 KOhm et 4,7 KOhm,
  • Convertisseur buck LM2596,
  • Prise CC,
  • Basculer et
  • Adaptateur mural 12 V-2 A.

Étape 3 : outils et éléments supplémentaires nécessaires pour la station météorologique personnelle

Description : Nous utiliserons une pince à dénuder pour dénuder le fil, une lime pour lisser les coupes/trous sur le boîtier, un pistolet à colle pour placer les composants à l'intérieur du boîtier, un tournevis pour fermer le couvercle du boîtier et un fer à souder avec fil à souder pour assembler le circuit sur une carte de circuit imprimé à usage général (GCB) . La boîte en plastique de 4x4x2 pouces sert de boîtier. Nous aurons également besoin d'une bande berg mâle et femelle ainsi que de connecteurs femelles pour un assemblage correct sur le GCB.

Liste des outils :

  • Dénudeur de fils,
  • Fichier,
  • Pistolet à colle
  • Tournevis et
  • Fer à souder et fil à souder.

Liste des éléments supplémentaires :

  • Boîte en plastique de 4 x 4 x 2 pouces (j'ai utilisé cette dimension, toutes les dimensions à proximité devraient convenir),
  • Carte de circuit imprimé à usage général,
  • bande de berg mâle et femelle et
  • connecteurs femelles.

Étape 4 :Configuration logicielle requise

Description :Afin de voir la valeur des données des capteurs, nous aurons besoin d'un canal privé sur Thingspeak.com. Nous aurons besoin d'Arduino IDE pour écrire le code arduino pour arduino nano. (Je suppose que vous êtes en possession d'un PC/ordinateur portable et d'une route wifi avec accès à Internet)

Liste des exigences logicielles :

  • Chaîne privée sur Thingspeak.com et
  • Arduino IDE (de préférence la dernière version).

Vous pouvez télécharger la dernière version d'Arduino IDE depuis arduino.cc. Créons maintenant une chaîne privée sur Thingspeak.com.

Étape 5 : Créer une chaîne privée sur Thingspeak.com

Pour créer une chaîne privée sur Thingspeak.com, procédez comme suit :

  • Ouvrez votre navigateur Web et accédez à Thingspeak.com et cliquez sur l'onglet "S'inscrire" dans le coin supérieur droit, (Image n°1)
  • Remplissez les détails et cliquez sur 'Créer un compte', (Image n°2)
  • Maintenant, cliquez sur l'onglet 'Nouvelle chaîne', (Image n°3)
  • Remplissez à nouveau les détails du canal et activez 4 champs (car nous enverrons 4 valeurs de capteur), faites défiler vers le bas et cliquez sur l'onglet "Enregistrer le canal", (Image n°4/5)
  • Sur cette page, cliquez sur l'onglet « Clés API » et notez votre « Écrire la clé API ».

C'est tout, maintenant vous avez votre chaîne privée ThingSpeak.

Maintenant, assemblons tous les composants électroniques.

Étape 6 :Schéma de la station météo personnelle

Ici, je joins l'image du schéma de la station météo personnelle. Je joins également un fichier fritzing pour le même. Les connexions sont assez simples.

  • BMP180 se connecte au port I2C d'arduino nano.
  • LDR est connecté à la manière d'un diviseur de tension avec une résistance de 51 KOhm et la jonction est connectée à la broche A1 de l'arduino nano.
  • La broche de données du DHT11 est tirée vers le haut avec une résistance de 4,7 KOhm et connectée à la broche A0 de l'arduino nano.
  • Les TX et RX de l'ESP8266 se connectent respectivement aux D10 et D11 d'arduino nano. Le CH_PD de l'ESP8266 se connecte au rail 3,3 V.
  • Ajustez la sortie du module LM2596 à 3,3 V en tournant le potentiomètre sur ce module. Connectez la sortie de ce module à Vcc et Gnd de BMP180, DHT11, LDR et ESP8266 Vcc et Gnd respectivement.
  • L'entrée du module LM2596 provient d'un adaptateur mural 12V-2A qui se connecte également à Vin et Gnd d'Arduino nano.

Nous devons assembler ce circuit sur une carte de circuit imprimé à usage général. Faisons cela.

Étape 7 :Assemblage du circuit sur une carte de circuit imprimé à usage général (GCB)

Les outils matériels et les éléments supplémentaires de l'étape 3 sont désormais opérationnels.

  • Utilisez une bande berg femelle pour le placement de l'Arduino nano et de l'ESP8288 sur le GCB,
  • Utilisez du fer à souder et du fil à souder pour les connecter électriquement à la carte,
  • Utilisez des connecteurs femelles pour étendre la portée de tous les capteurs et du module LM2596 car ils seront collés au couvercle et à la paroi du boîtier,
  • Utilisez une bande Berg mâle pour créer des points de connexion pour les extensions femelles faites ci-dessus,
  • Réaliser un schéma de circuit sur GCB à l'aide de fils (dénudez-les à l'aide d'une pince à dénuder) ou d'un rail de fil de soudure fondu et enfin,
  • Vérifiez les tris avant d'alimenter le circuit à l'aide d'un multimètre.

Maintenant que tout le matériel est placé sur GCB, regardons le code.

Étape 8 :Coder

Le code de la station météo personnelle est assez simple. J'ai commenté le code correctement pour faciliter la portabilité. Avant de graver le code, faites attention aux choses suivantes.

  • Assurez-vous que toutes les bibliothèques sont installées,
  • Remplacez les tirets par le SSID de votre point d'accès (routeur wifi) à la ligne 14 du code,
  • Remplacez les tirets par le MOT DE PASSE de votre réseau wifi à la ligne 15 du code,
  • Remplacez les traits d'union par la clé d'API d'écriture de votre canal privé de ThingSpeak à la ligne 17 et
  • Lors de la programmation de l'Arduino nano, assurez-vous que votre alimentation 12 V CC est éteinte.

Voici le lien vers github (Personal Weather Station) pour télécharger le code et les bibliothèques que j'ai utilisées.

Maintenant que notre matériel et nos logiciels sont en place, il ne reste plus qu'à l'emballage.

Étape 9 :Préparation de l'enceinte

Maintenant, nous devons faire des trous de différentes formes et tailles sur la boîte de 4x4x2 pouces. Nous devons faire des trous pour la prise CC et allumer n'importe quel mur d'enceinte préféré. Nous devons également faire des trous pour les capteurs sur le couvercle du boîtier.

J'ai joint une image montrant les dimensions des trous que nous devons faire sur l'enceinte.

Utilisez une lame chaude pour couper à travers le plastique.

Utilisez un fichier pour lisser les trous.

Votre enceinte est maintenant prête à accueillir votre circuit.

Étape 10 :Fermeture du couvercle

Mettez votre GCB assemblé à l'intérieur du boîtier.

Placez l'interrupteur et la prise CC dans les trous du mur ; capteurs sur les trous du couvercle. Finalisez leur position et utilisez un pistolet à colle pour les fixer. Enfin, utilisez un tournevis pour fermer le couvercle.

Voilà, votre station météo personnelle. Allumez l'alimentation et voyez la température, l'humidité, la pression et l'intensité lumineuse de votre pièce de n'importe où dans le monde via votre smartphone/PC/ordinateur portable/tablette sur votre canal privé ThingSpeak.

C'est tout pour ce projet. Commentez en cas de doute. Merci d'avoir lu.

Code

  • Code
CodeArduino
#include #include #include #include #define DEBUG 0 // changer la valeur en 1 pour activer le débogage à l'aide du moniteur série #define dht_pin A0 // définition de la broche A0 pour le capteur DHT#define lightSensor A1 // définition de la broche A1 comme broche d'entrée pour le diviseur de tension LDR DHT;Adafruit_BMP085 bmp;SoftwareSerial esp8266Module (10, 11); // RX, TXString réseau ="----"; // votre point d'accès SSIDString password ="-------------"; // votre mot de passe de point d'accès wifi#define IP "184.106.153.149" // Adresse IP de thingspeak.comString GET ="GET /update?key=----------------"; // remplace par votre canal keyvoid setup(){ if(DEBUG){ Serial.begin(9600); // Définition du débit en bauds série matériel sur 9600 } esp8266Module.begin(9600); // Réglage du débit en bauds softserial à 9600 if (!bmp.begin()) { if(DEBUG){ Serial.println("Impossible de trouver un capteur BMP085 valide, vérifiez le câblage!"); } while (1) {} } delay(2000);}void loop() { setupEsp8266(); DHT.read11(dht_pin); double humi =DHT.humidité; double bmp_temp =bmp.readTemperature(); double pression_bmp =bmp.readPressure(); int lightIntensity =analogRead(lightSensor); updateTemp(String(bmp_temp) ,String(lightIntensity),String(bmp_pressure),String(humi)); retard (30000);}//-------------------------------------------- -------------------------// Après avoir configuré la fonction esp8266, placez-le dans la station faite et // connectez-vous au point d'accès wifi.//- -------------------------------------------------- ---------------void setupEsp8266() { if(DEBUG){ Serial.println("Reseting esp8266"); } esp8266Module.flush(); esp8266Module.println(F("AT+RST")); retard (7000); if (esp8266Module.find("OK")) { if(DEBUG){ Serial.println("Trouvé OK"); Serial.println("Modification espmode"); } esp8266Module.flush(); modechangement(); retard (5000); esp8266Module.flush(); connecterAuWiFi(); } else { if(DEBUG){ Serial.println("OK non trouvé"); } }}//---------------------------------------------- ----------------------// La fonction suivante règle l'esp8266 en mode station//----------------- -------------------------------------------------- bool ChangingMode(){ esp8266Module.println(F("AT+CWMODE=1")); if (esp8266Module.find("OK")) { if(DEBUG){ Serial.println("Mode modifié"); } renvoie vrai ; } else if(esp8266Module.find("AUCUN CHANGEMENT")){ if(DEBUG){ Serial.println("Déjà en mode 1"); } renvoie vrai ; } else { if(DEBUG){ Serial.println("Erreur lors du changement de mode"); } renvoie faux ; }}//---------------------------------------------- ---------------------// La fonction suivante connecte esp8266 au point d'accès wifi //----------------- -------------------------------------------------- bool connectToWiFi(){ if(DEBUG){ Serial.println("à l'intérieur de connectToWiFi"); } Chaîne cmd =F("AT+CWJAP=\""); cmd +=réseau; cmd +=F("\",\""); cmd +=mot de passe; cmd +=F("\""); esp8266Module.println(cmd); retard (15000); if (esp8266Module.find("OK")) { if(DEBUG){ Serial.println("Connecté au point d'accès"); } renvoie vrai ; } else { if(DEBUG){ Serial.println("Impossible de se connecter au point d'accès"); } renvoie faux ; }}//---------------------------------------------- ---------------------// La fonction suivante envoie les données du capteur à Thingspeak.com //---------------- -------------------------------------------------- -void updateTemp(String voltage1,String voltage2,String voltage3,String voltage4){ String cmd ="AT+CIPSTART=\"TCP\",\""; cmd +=IP; cmd +="\",80"; esp8266Module.println(cmd); retard (5000); if(esp8266Module.find("Erreur")){ if(DEBUG){ Serial.println("ERREUR lors de l'ENVOI"); } retourner; } cmd =GET + "&field1=" + voltage1 + "&field2=" + voltage2 + "&field3=" + voltage3 + "&field4=" + voltage4 + "\r\n"; esp8266Module.print("AT+CIPSEND="); esp8266Module.println(cmd.length()); retard (15000); if(esp8266Module.find(">")) { esp8266Module.print(cmd); if(DEBUG){ Serial.println("Données envoyées"); } } else { esp8266Module.println("AT+CIPCLOSE"); if(DEBUG){ Serial.println("Connexion fermée"); } }}
Bibliothèque et code pour la station météo personnelle
Consultez le fichier Lisez-moihttps://github.com/jayraj4021/Personal-Weather-Station-14

Schémas

schema.fzz

Processus de fabrication

  1. Station météo basée sur Raspberry Pi
  2. Station météo Raspberry Pi 2
  3. Station météo Raspberry Pi
  4. Rejoignez l'IOT avec votre station météo – CWOP
  5. Weather Monitor
  6. Weather Station V 2.0
  7. Stores intelligents
  8. MKR1000 vers ThingSpeak.com
  9. Station météo portable Arduino (AWS) à 10 $