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

Télécharger les données du capteur DHT11 vers ThingSpeak avec Arduino MKR1000

Composants et fournitures

Composant Quantité
Capteur de température et d'humidité DHT11 (4 broches) 1
Arduino MKR1000 1

À propos de ce projet

J'avais déjà développé un code pour l'ESP8266 12-E afin de récupérer les données environnementales du capteur DHT11 et de les envoyer sans fil vers le site ThingSpeak pour y être graphiques. Il ne me restait plus qu'à apporter quelques modifications mineures pour le faire fonctionner avec le nouvel Arduino MKR1000.

Étape 1 : Connexion du capteur

Connectez la broche de données du DHT11 à la broche 1 du MKR1000 (étiquetée « 1 » au dos de la carte).

Étape 2 : Installation des bibliothèques

Téléchargez les bibliothèques suivantes :

Étape 3 : Configuration du gestionnaire de cartes

Dans l'IDE Arduino :

  1. Allez dans Outils > Carte > Gestionnaire de cartes
  2. Recherchez « Arduino SAMD Boards (32-bits ARM Cortex M0+) »
  3. Installez la version 1.6.3 (la version 1.6.4 posait des problèmes d'installation de la carte MKR1000)

Étape 4 : Configuration ThingSpeak

  1. Créez un compte gratuit sur ThingSpeak.com
  2. Configurez les champs pour afficher l'humidité et les températures
  3. Copiez votre clé API « Write » dans le sketch fourni, ainsi que votre SSID WiFi et votre mot de passe

Étape 5 : Téléchargement et exécution

  1. Sélectionnez le bon port COM (celui du MKR1000)
  2. Compilez et téléversez le code
  3. Ouvrez le moniteur série : vous devriez voir les mises à jour envoyées à ThingSpeak

Code

Sketch combinant la bibliothèque DHT d'Adafruit, le client Web WiFi101 et le modèle Arduino ThingSpeak. Modifié par Stephen Borsay pour le MKR1000.

/* Ce sketch combine le sketch DHT d'Adafruit, le client Web WiFi101 et l'exemple Arduino de ThingSpeak
   Modifié par Stephen Borsay pour le MKR1000, libre d'utilisation */
#include <SPI.h> // Non nécessaire car on n'utilise pas le shield mais la puce intégrée
#include <WiFi101.h>
#include "DHT.h"

#define DHTPIN 1       // Broche de connexion (broche 1 = 5ème broche depuis l'extrémité)
#define DHTTYPE DHT11  // DHT 11
//#define DHTTYPE DHT21 // DHT 21
//#define DHTTYPE DHT22 // DHT 22

DHT dht(DHTPIN, DHTTYPE);

String apiKey = "YourApiKeyHere";  // Clé API ThingSpeak
char ssid[] = "YourSSIDHERE";      // Nom du réseau WiFi (SSID)
char pass[] = "YourPasswordHere";  // Mot de passe WiFi
int keyIndex = 0;                  // Index de clé réseau (nécessaire seulement pour WEP)

char server[] = "api.thingspeak.com";
WiFiClient client;

void setup() {
  Serial.begin(9600);
  while (!Serial) { ; } // Attente ouverture port série (USB natif)

  if (WiFi.status() == WL_NO_SHIELD) {
    Serial.println("Shield WiFi non présent");
    while (true);
  }

  while (WiFi.status() != WL_CONNECTED) {
    Serial.print("Tentative de connexion au SSID : ");
    Serial.println(ssid);
    WiFi.begin(ssid, pass); // Connexion WPA/WPA2
    delay(10000);
  }
  Serial.println("Connecté au WiFi");
  printWifiStatus();
}

void loop() {
  delay(2000); // Pause entre mesures

  int h = dht.readHumidity();
  int t = dht.readTemperature();     // Celsius
  int f = dht.readTemperature(true); // Fahrenheit

  if (isnan(h) || isnan(t) || isnan(f)) {
    Serial.println("Échec lecture capteur DHT !");
    return;
  }

  int hif = dht.computeHeatIndex(f, h);
  int hic = dht.computeHeatIndex(t, h, false);

  Serial.print("Humidité: "); Serial.print(h); Serial.print(" %\t");
  Serial.print("Température: "); Serial.print(t); Serial.print(" *C ");
  Serial.print(f); Serial.print(" *F\t");
  Serial.print("Indice de chaleur: "); Serial.print(hic); Serial.print(" *C ");
  Serial.print(hif); Serial.println(" *F\n");

  Serial.println("\nConnexion au serveur...");
  if (client.connect(server, 80)) {
    Serial.println("Connecté au serveur");
    
    String tsData = "field1=" + String(h) + "&field2=" + String(t) + "&field3=" + String(f) + "&field4=" + String(hic) + "&field5=" + String(hif);
    
    client.print("POST /update HTTP/1.1\n");
    client.print("Host: api.thingspeak.com\n");
    client.print("Connection: close\n");
    client.print("X-THINGSPEAKAPIKEY: " + apiKey + "\n");
    client.print("Content-Type: application/x-www-form-urlencoded\n");
    client.print("Content-Length: ");
    client.print(tsData.length());
    client.print("\n\n");
    client.print(tsData);
    client.stop();
    delay(1000);
  }
}

void printWifiStatus() {
  Serial.print("SSID: "); Serial.println(WiFi.SSID());
  IPAddress ip = WiFi.localIP();
  Serial.print("Adresse IP: "); Serial.println(ip);
  long rssi = WiFi.RSSI();
  Serial.print("Force du signal (RSSI): "); Serial.print(rssi); Serial.println(" dBm");
}

Schémas

Connectez la broche de données du DHT à la broche 1 du MKR1000 (5ème broche en partant du haut). Alimentez le capteur en 5V et GND depuis le MKR1000.

Processus de fabrication

  1. PicoCoreMX8MM : module ARM ultra-compact propulsé par NXP i.MX 8M Mini
  2. Kontron dévoile COM HPC : nouveau standard embarqué haute performance
  3. Breakout compact DHT Température & Humidité pour Raspberry Pi – ATtiny85 & DHT22/DHT11
  4. Construire un moniteur de température ThingSpeak avec Raspberry Pi et BrickPi
  5. Réaliser votre premier projet IoT avec Raspberry Pi, DHT11 et ThingSpeak
  6. Brochage MKR1000 : La Carte de Référence pour le Développement IoT
  7. Parts.Cat.Com : Simplifiez l'Approvisionnement en Pièces et Gagnez du Temps et de l'Argent
  8. Shop.Cat.Com : Votre ressource unique pour équipements, accessoires et outils
  9. Optimiser machines Cat® : guide ultime My.Cat.com