Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, en utilisant un câble ou WiFi (ESP8266) (4 / 5 étapes)

Étape 4: Un Bonus

Dans le cas où vous ne souhaitez pas utiliser Thingspeak mais veulent juste votre propre serveur Web : utilisez ce programme :

/ * * Capteur DHT11 connecté à la broche 2 < a href = « http://arduino-info.wikispaces.com/ethernet-temp-humidity » rel = « nofollow » > http://arduino-info.wikispaces.com/ethernet-temp-...> basé sur le code de David A. Mellis & Tom Igoe adapté par diy_bloke * bmp180sensor sur a4/a5 * / / *---(importation préalable bibliothèques)---* / #include < SPI.h > #include < Ethernet.h > < dht11.h > de #include #include < Wire.h > //#include < Adafruit_Sensor.h > //#include < Adafruit_BMP085_U.h > #include < Adafruit_BMP085.h > / *---(déclarer les constantes et NIP)---* / #define DHT11PIN 2 / / Le capteur de température/humidité / / saisie d’une adresse MAC et l’adresse IP de votre contrôleur ci-dessous. L’adresse IP sera tributaire de votre réseau local : mac Byte = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED} ; / *---(Déclarer des objets)---* / ip IPAddress (192,168,1, 177) ; Initialiser la bibliothèque de serveur Ethernet / / avec l’adresse IP et le port que vous souhaitez utiliser / (valeur par défaut pour HTTP est le port 80): EthernetServer server(80) ; Bmp Adafruit_BMP085_Unified = Adafruit_BMP085_Unified(10085) ; Adafruit_BMP085 bmp ; dht11 DHT11 ; L’objet de capteur / *---(déclarer les Variables)---* / void setup() / *** SETUP : s’exécute une fois *** / {/ / ouvrir la communication série et attendez de port à ouvrir : Serial.begin(9600) ; while (! Série) {; / / attente pour port série pour se connecter. Besoin pour Leonardo seulement} / / démarrer la connexion Ethernet et le serveur : Ethernet.begin (mac, ip) ; Server.Begin() ; Serial.Print (F ("le serveur est à")) ; Serial.println(Ethernet.localIP()) ; } //--(end setup)---void loop() / *---(boucle : RUNS OVER AND OVER AGAIN)---* / {/ / Ecoute client de EthernetClient les clients entrants = server.available() ; if (client) {Serial.println (F ("nouveau client")); / / une requête http se termine par un currentLineIsBlank booléenne ligne vide = true ; while (client.connected()) {si (client.available()) {char c = client.read() ; Serial.Write(c) ; Si vous avez obtenu à la fin de la ligne (a reçu un saut de ligne / / character) et la ligne est vide, la requête http est terminée, / / donc vous pouvez envoyer une réponse si (c == « \n » & & currentLineIsBlank) {/ / Envoyer un client.println d’en-tête de réponse http standard ("HTTP/1.1 200 OK"); client.println ("Content-Type : text/html"); client.println ("connexion : fermer"); client.println() ; client.println("<
! DOCTYPE HTML > ") ; client.println ("< html >") ; Ajouter une balise refresh meta, afin que le navigateur tire encore une fois toutes les 5 secondes : client.println ("< meta http-equiv = \ « refresh\ » content = \ « 5\ » >") ; client.println ("< head >") ; client.println ("< title >") ; client.println (F ("My Home Environment")) ; client.println ("< /title >") ; client.println ("</head >") ; client.println ("< body >") ; client.Print (F ("My Home Environment < h3 > </h3 >")) ; client.println ("< br/>") ; / *---(Obtenir la lecture de la sonde, calculer et imprimer les résultats)---* / int chk = DHT11.read(DHT11PIN) ; Serial.Print (F (« capteur de lecture: ")) ; commutateur (chk) {case 0: Serial.println(F("OK")) ; break ; case -1 : Serial.println (F (« Checksum error")); break ; case -2 : Serial.println (F ("erreur de délai d’expiration")); break ; default : Serial.println (F ("erreur inconnue")); break;} / * obtenir un nouvel événement de capteur (BMP085) * / / / sensors_event_t événement ; bmp.getEvent(&event) ; ---client.print (F ("< table style =" border : 1px solid black ; background-color : white; » > ")) ; client.Print (F ("< tr >< td >")) ; client.Print ("< couleur de police = « red » > température </police > (° C):") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println ((float) DHT11.temperature, 1) ; client.println (F ("< br/>")) ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; client.Print ("< b > température < /b > (° F):") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println(Fahrenheit(DHT11.Temperature), 1) ; client.println ("< br/>") ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; client.Print ("< couleur de police = « blue » > humidité </police > (%):") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println ((float) DHT11.humidity, 0) ; client.println ("< br/>") ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; / * client.print ("< b > température < /b > (° K):") ; client.println(Kelvin(DHT11.Temperature), 1) ; client.println ("< br/>") ; * / client.print ("< i > < /i > (° C) du Point de rosée:") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println (point de rosée (DHT11.temperature, DHT11.humidity)) ; client.println ("< br/>") ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; client.Print ("< i > PointFast < /i > (° C) de la rosée:") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println (dewPointFast (DHT11.temperature, DHT11.humidity)) ; client.println ("< br/>") ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; Si (! bmp.begin()) {client.print ("geen sensor");} else {client.print ("pression (hPa):") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println(BMP.readPressure()/100.0) ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; client.Print ("pression (mmHg):") ; client.Print (F ("< /td >< td align = « right » >")) ; client.println(BMP.readPressure()/133.3) ; client.Print (F ("< /td >< /tr >")) ; client.Print (F ("< tr >< td >")) ; client.println ("température (° C):") ; client.Print (F ("< /td >< td align = « right » >")) ; client.Print(BMP.readTemperature()) ; client.println ("< br/>") ; } client.print (F ("< /td >< /tr >")) ; client.Print (F ("< /table >")) ; / * Afficher les résultats (la pression barométrique est mesure en hPa) * / / * afficher la pression atmosphérique en hPa * / / * client.print (« pression: ") ; client.println(Event.Pressure) ; client.println (« HP ») ; client.println ("< br/>") ; * / / *---(Fin capteur lire)---* / client.println ("</corps >") ; client.println ("</html >") ; rupture ; } Si (c == « \n ») {/ / vous commencez une nouvelle currentLineIsBlank de ligne = true;} ElseIf (c ! = '\r') {/ / vous avez obtenu un personnage sur le currentLineIsBlank de ligne actuel = false;}} } / / donner le temps de navigateur web pour recevoir les delay(1) de données ; fermer la connexion : client.stop() ; Serial.println (F ("client disonnected")) ; }} / / FIN de boucle / *---(fonctions écrites par l’utilisateur Declare)---* / / / //Celsius à Fahrenheit conversion double (double celsius Fahrenheit) {retour 1,8 * celsius + 32;} //Celsius à la conversion de Kelvin double Kelvin (double celsius) {return celsius + 273.15;} / / point de rosée fonction NOAA / / référence : < a href = "http://wahiduddin.net/calc/density_algorithms.htm" rel = "nofollow" > http://arduino-info.wikispaces.com/ethernet-temp-...> double point de rosée (double celsius, double humidité) {double A0 = 373,15 / (273,15 + celsius); double somme =-7.90298 * (A0-1) ; SUM += 5.02808 * log10(A0) ; SOMME +=-1.3816e-7 * (pow (10, (11.344*(1-1/A0)))-1) ; SUM += 8.1328e-3 * (pow(10,(-3.49149*(A0-1)))-1) ; SUM += log10(1013.246) ; double VP = pow (10, SUM-3) * humidité ; double T = log(VP/0.61078) ; retour de temp var (241.88 * T) / (17,558-T) ; } / / delta max = 0.6544 wrt dewPoint() / / 5 x plus rapide que dewPoint() / / Référence : < a href = « http://en.wikipedia.org/wiki/Dew_point » rel = « nofollow » > http://arduino-info.wikispaces.com/ethernet-temp-...> double dewPointFast (double celsius, double humidité) {double un = 17.271 ; double b = 237.7 ; double temp = (une * celsius) / (b + c) + log(humidity/100) ; double Td = (b * temp) / (a - temp); retour Td;} / * (THE END) * /

Articles Liés

Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard

Envoyer les données du capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard

Remarque : Cette instructable est pour les vieux ENC26J60 Ethershield et ethercard. Si vous avez le WIZ5100 moderne basé Ethernetshield ou un ESP8266 aller visiter mes autres instructable que je mentionne ci-dessousEnviron un an et demi que j'ai publ
Marque : on Robotics Starter Kit - envoi de données de capteur sans fil

Marque : on Robotics Starter Kit - envoi de données de capteur sans fil

Dans ce Instructable, nous allons prendre ce que nous avons appris à « Make : on Robotics Starter Kit – Wireless Connectivity » et « Make : on Robotics Starter Kit – capture données capteur » et associer ces données pour capturer les données des capt
Savez-vous comment envoyer des données du capteur de l’Arduino pour opacifier (chose + serveur)

Savez-vous comment envoyer des données du capteur de l’Arduino pour opacifier (chose + serveur)

Je sais la plateforme Arduino pour ITO. Donc, j'ai implémenté un firmware d'Arduino par modification Ethenert SW parce que je peux gérer un code source facilement. Vous pouvez connaître l'état du matériel même si c'est à ce jour. S'il vous plaît se r
GEO Data Logger : Arduino + GPS + SD + accéléromètre pour enregistrer, horodatage et les données des capteurs géo-tag

GEO Data Logger : Arduino + GPS + SD + accéléromètre pour enregistrer, horodatage et les données des capteurs géo-tag

mises à jour17 octobre 2013: J'ai publié un guide sur l'utilisation de votre téléphone Android pour accomplir une tâche similaire en s'appuyant sur votre Android appareil construit dans le GPS et les capteurs.6 février 2013: En vedette sur GeoAwesome
Afficher les données des capteurs domotique à nuages et temps réel en une application web

Afficher les données des capteurs domotique à nuages et temps réel en une application web

Ce Edison Intel avec capteurs domotique se veut une station domotique maison que vous pouvez placer n'importe où et il ont lu l'entourage actuel qui envoient dans les nuages et étalez-les sur une application web ou une application mobile.IDE : Arduin
Envoi des données de capteur de température à la base de données d’Azur

Envoi des données de capteur de température à la base de données d’Azur

Ce projet utilise une framboise de Pi B + joint à 2 capteurs de température et envoie des données à une source de données Azure qui peut être utilisée pour créer des graphiques.Un tas de mon code d'accès à des capteurs de température provient de la A
Utilisez les LEGO Mindstorm RCX capteur de lumière avec Arduino (programme Visuino)

Utilisez les LEGO Mindstorm RCX capteur de lumière avec Arduino (programme Visuino)

Dans ce Instructable, vous allez apprendre à programmer Arduino au contrôle et à obtenir des données du Capteur de lumière de LEGO Mindstorm RCX avec l'aide de Visuino - un environnement de développement graphique facile à utiliser pour Arduino.Veuil
Arduino Nano : Température et humidité Module de capteur DHT11/DHT21/DHT22 avec Visuino

Arduino Nano : Température et humidité Module de capteur DHT11/DHT21/DHT22 avec Visuino

DTH11 / DTH21 / DTH22 et AM2301sont des capteurs de température et humidité Arduino combinés très populaires.Dans ce Instructable, je vais vous montrer, comment il est facile de programmer Arduino pour les utiliser avec Visuino - un environnement de
Construire votre premier ITO avec un capteur DHT11 et Raspberry Pi, Thingspeak.

Construire votre premier ITO avec un capteur DHT11 et Raspberry Pi, Thingspeak.

IOT ou Internet of Things est un sujet d'actualité ! Selon les experts tout sera relié à l'internet et tous nos appareils et leurs données seront bientôt juste une adresse IP s'éloigne de nous. Alors par où commencer si vous voulez explorer le monde
Atelier de IoT : Lab 4 - envoi des données vers le nuage

Atelier de IoT : Lab 4 - envoi des données vers le nuage

Dans cet atelier vous construire une application simple détection de lumière ambiante (similaire à Lab 2) et envoyer les données que nous recueillons dans le nuage. Vous allez utiliser l'azote pour envoyer des données vers une passerelle de nuage et
Enregistreur de données de capteur de luminosité et de température

Enregistreur de données de capteur de luminosité et de température

Dans ce tutoriel, je fais une température et un enregistreur de données de capteur de lumière avec un Arduino pour que je peux tester les différents endroits des plantes ou des endroits pour dormir à l'extérieur durant l'été qui n'obtiennent pas de b
Vivent les données vers excel d’un capteur de lumière Arduino

Vivent les données vers excel d’un capteur de lumière Arduino

J'ai commencé ce petit projet à l'autre jour quand j'ai vu que Instructables avait affiché une concurrence pour l'utilisation de capteurs, cependant sa en passe de devenir un peu plus intéressant.Mon idée de départ était de prendre un projet très sim
Visualiser les données provenant de capteurs utilisant Arduino + coolterm

Visualiser les données provenant de capteurs utilisant Arduino + coolterm

une fois que vous obtenez des valeurs des capteurs, par exemple en utilisant l'Arduino, (voir mon précédent instructable), parfois c'est agréable de voir les données du capteur dans un graphe.Voici comment en quelques étapes seulement !J'ai fait cett
Twitter contrôlée Arduino sorties - aucun PC - affichage à cristaux liquides + données de capteur à Twitter

Twitter contrôlée Arduino sorties - aucun PC - affichage à cristaux liquides + données de capteur à Twitter

contrôle numérique des pins par les messages de Twitter. Lectures du capteur renvoyés à Twitter.MODIFIÉ par JOHN DINGLEY de Twitter2LCD, originellement écrit par Fabrizio GranelliVoir * Vous pouvez envoyer des messages texte à l'écran LCD Arduino de