ThingSpeak est une plateforme d'analyse de données orientée vers l'Internet des Objets (IoT), qui permet aux utilisateurs de collecter, visualiser et analyser des données en temps réel provenant de capteurs connectés. Voici un aperçu de ses principales caractéristiques :
1- Collecte de données :
Les données peuvent être envoyées à ThingSpeak via des requêtes HTTP ou MQTT.
Compatible avec des dispositifs IoT comme Arduino, Raspberry Pi, ESP32, ou tout autre matériel capable de communiquer sur le web.
2- Visualisation en temps réel :
Permet de créer des graphiques pour afficher et suivre l'évolution des données collectées.
Offre une interface simple pour configurer des tableaux de bord avec des widgets.
3- Analyse et traitement de données :
Intégration avec MATLAB pour effectuer des analyses avancées.
Peut être utilisé pour des applications comme la détection de tendances, la prédiction ou le filtrage des données.
4- Notifications et alertes :
Peut envoyer des alertes par email ou via des services comme Twitter lorsque certaines conditions définies sont remplies.
5- API RESTful et MQTT :
ThingSpeak fournit une API REST pour la gestion des données (écriture et lecture).
Intégration avec le protocole MQTT pour une communication rapide et efficace.
L'objectif principal de connecter un Arduino avec un capteur DHT11 et un module ESP8266 à la plateforme ThingSpeak est de collecter, surveiller, analyser et visualiser les données environnementales en temps réel. Cela permet de tirer parti de l'Internet des Objets (IoT) pour automatiser le traitement et la gestion des données.
1- Surveillance en temps réel :
Mesurer la température et l'humidité d'un environnement à l'aide du capteur DHT11.
Envoyer ces données en temps réel à ThingSpeak pour un suivi continu.
2- Analyse et visualisation des données :
Utiliser les graphiques et tableaux de bord de ThingSpeak pour visualiser les tendances des données (par exemple, la variation de température et d'humidité au fil du temps).
Explorer et analyser les données grâce à l'intégration avec MATLAB, permettant des calculs statistiques ou prédictifs.
3- Centralisation des données :
Rassembler les données provenant de plusieurs dispositifs IoT dans un seul espace centralisé sur ThingSpeak.
Permettre un accès distant aux données via internet, sans avoir besoin d'une connexion directe avec l'appareil.
4- Automatisation et alertes :
Configurer des alertes ou des actions automatiques via ThingSpeak (par exemple, envoyer un email ou tweeter en cas de dépassement d'un seuil de température ou d'humidité).
Arduino UNO
C'est un microcontrôleur qui sert de cerveau du projet IoT. Il collecte les données du capteur DHT11 et communique avec le module ESP8266 pour les envoyer à ThingSpeak.
Capteur DHT11 (ou DHT22)
C'est un capteur numérique pour mesurer la température et l'humidité. Le DHT11 est abordable et largement utilisé pour des projets IoT de base.
Module Wi-Fi ESP8266
C'est un module Wi-Fi qui permet à l’Arduino de se connecter à Internet et de transmettre les données à la plateforme ThingSpeak.
Plateforme ThingSpeak
ThingSpeak est une plateforme IoT basée sur le cloud qui permet de collecter, stocker, analyser et visualiser des données en temps réel provenant de capteurs connectés.
Câble de connexion
Vous aurez besoin d'un câble pour connecter le capteur de sol et le module Wifi ESP826 à la carte Arduino UNO.
Plaque d'essai (Breadboard) :
On utilise la plaque d'essai pour faciliter le câblage des différents composants.
Module d’alimentation 3.3V/5V
Un module d’alimentation 3.3V/5V est un module de conversion de tension qui permet de fournir une tension de 3,3V ou de 5V à un circuit électronique. Il est souvent utilisé pour alimenter le module Wifi ESP8266.
1- Pour le module ESP8266, on connecte:
La broche RX à la broche 4 de la carte Arduino
La broche TX à la broche 3 de la carte Arduino
La broche GND au GND de la carte Arduino
Les deux broches 3V3 et EN à la broche 5V du module de l’alimentation
La broche RST à la broche 8 de la carte Arduino
les deux broches 3V3 et EN à la broche 5V du module de l’alimentation
2- Pour la capteur DHT11, on connecte:
la broche DATA à la broche N°5 de la carte Arduino
la broche VCC à la broche 3.3V de la carte Arduino
la broche GND à la broche GND de la carte Arduino
Créez un compte sur ThingSpeak.
Créez un nouveau Channel :
Donnez-lui un nom.
Ajoutez deux champs : Température et Humidité.
2- Notez la clé API d'écriture (Write API Key) du canal (nécessaire pour envoyer des données).
3- Ouvrez l’IDE Arduino.
4- Installez cette bibliothèque Adafruit_ESP8266
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 |
#include <Adafruit_ESP8266.h> #include <SoftwareSerial.h> #define ESP_RX 3 #define ESP_TX 4 #define ESP_RST 8 SoftwareSerial softser(ESP_RX, ESP_TX); // Must declare output stream before Adafruit_ESP8266 constructor; can be // a SoftwareSerial stream, or Serial/Serial1/etc. for UART. Adafruit_ESP8266 wifi(&softser, &Serial, ESP_RST); // Must call begin() on the stream(s) before using Adafruit_ESP8266 object. #define ESP_SSID "HUAWEI Y5 2019" // Your network name here #define ESP_PASS "b582058c4d86" // Your network password here String API = "KM7MYIGX8G2X6GA0"; // CHANGE ME #define HOST "api.thingspeak.com" // Find/Google your email provider's SMTP outgoing server name for unencrypted email #define PORT 80 // Find/Google your email provider's SMTP outgoing port for unencrypted email String field = "field1"; int count = 0; // we'll use this int to keep track of which command we need to send next bool send_flag = false; // we'll use this flag to know when to send the email commands #include <dht11.h> #define DHT11PIN 5 // broche DATA -> broche 4 dht11 DHT11; void setup() { char buffer[50]; // This might work with other firmware versions (no guarantees) // by providing a string to ID the tail end of the boot message: // comment/replace this if you are using something other than v 0.9.2.4! wifi.setBootMarker(F("Version:0.9.2.4]\r\n\r\nready")); softser.begin(9600); // Soft serial connection to ESP8266 Serial.begin(57600); while(!Serial); // UART serial debug // Test if module is ready Serial.print(F("Hard reset...")); if(!wifi.hardReset()) { Serial.println(F("no response from module.")); for(;;); } Serial.println(F("OK.")); Serial.print(F("Soft reset...")); if(!wifi.softReset()) { Serial.println(F("no response from module.")); for(;;); } Serial.println(F("OK.")); Serial.print(F("Checking firmware version...")); wifi.println(F("AT+GMR")); if(wifi.readLine(buffer, sizeof(buffer))) { Serial.println(buffer); wifi.find(); // Discard the 'OK' that follows } else { Serial.println(F("error")); } Serial.print(F("Connecting to WiFi...")); if(wifi.connectToAP(F(ESP_SSID), F(ESP_PASS))) { // IP addr check isn't part of library yet, but // we can manually request and place in a string. Serial.print(F("OK\nChecking IP addr...")); wifi.println(F("AT+CIFSR")); if(wifi.readLine(buffer, sizeof(buffer))) { Serial.println(buffer); wifi.find(); // Discard the 'OK' that follows Serial.print(F("Connecting to host...")); Serial.print("Connected.."); wifi.println("AT+CIPMUX=0"); // configure for single connection, //we should only be connected to one SMTP server wifi.find(); wifi.closeTCP(); // close any open TCP connections wifi.find(); Serial.println("Type \"send it\" to send an email"); } else { // IP addr check failed Serial.println(F("error")); } } else { // WiFi connection failed Serial.println(F("FAIL")); } } void loop() { send_flag = true; if(send_flag){ // the send_flat is set, this means we are or need to start sending SMTP commands if(do_next()){ // execute the next command count++; // increment the count so that the next command will be executed next time. } } } boolean do_next() { switch(count){ case 0: Serial.println("Connecting..."); return wifi.connectTCP(F(HOST), PORT); break; case 1: DHT11.read(DHT11PIN); char charVal2[100]; char charVal1[100]="GET /update?api_key=KM7MYIGX8G2X6GA0&field1="; //itoa(sensor, charVal2, 10); dtostrf((float)DHT11.temperature, 4, 2, charVal2); strcat(charVal1,charVal2); strcat(charVal1,"&field2="); dtostrf((float)DHT11.humidity, 4, 2, charVal2); strcat(charVal1,charVal2); return wifi.cipSend(charVal1); // Envoi des données au site Thinkspeak delay(60000); } } |
1- Téléversez le code dans l'Arduino via l'IDE.
2- Rendez-vous sur votre canal ThingSpeak pour voir les graphiques des champs Température et Humidité.
Exemple des valeurs de la température envoyées par la carte Arduino au site thinkspeak.com
Exemple des valeurs de l'humdité envoyées par la carte Arduino au site thinkspeak.com
La robotique éducative joue un rôle important dans l'éducation des enfants et des jeunes en les aidant à acquérir des compétences en science et technologie.
Dans ce cadre notre site web représente une excellente ressource pour les parents, les enseignants et les enfants qui souhaitent découvrir la robotique.
Zaouiet Kontech-Jemmel-Monastir-Tunisie
+216 92 886 231
medaliprof@gmail.com
Site robotique réalisé par Mohamed Ali-Prof Info