Étape 1: Obstacles et Solutions
Obstacle 1
Maintenant où trouver un programme ? un exemple de travail serait agréable droit ? Dans le coin supérieur droit, il y a un bouton « Support » qui iront à « Tutoriels ».
Vous trouverez sous « Tutoriels » :
« En utilisant un Arduino + Ethernet Shield pour mettre à jour un canal de ThingSpeak »
Sonne bien, si vous téléchargez ce programme dans votre IDE, ajoute l’API-key, puis compilez-le.
Zut... ils ne compilent pas, vous essayez de la réparer (et c’est certainement possible) jusqu'à arriver à un point que vous n’avez aucune idée de ce qu’il faut.
Apparemment le programme s’attend toujours à tout le monde à utiliser l’IDE 022 ou 023.
Il y a un lien vers une page de Github mais cela donnera u un programme de tweet et ce n'est pas ce que vous voulez, du moins pas pour l’instant.
Solution
Malade vous trouvez un meilleur programme à partir d’ici :
https://github.com/ioBridge/ThingSpeak-Arduino-exa...
Ce programme prend une lecture du port A0 et qui envoie à « Champ1 » dans votre flux de données
OK, donc vous tentez, vous accrocher une résistance variable comme une LDR ou NTC sur port A0, ajoutez votre API dans le programme et exécutez-le.
Qui fonctionne très bien, mais je ne voulais pas seulement lire une valeur à partir d’un port analogique, j’ai eu un capteur DHT11 l’humidité et de température, mais aussi un capteur de pression de BMP180 et de la température. J’ai pensé qu'il ne devrait pas être trop dur.
Obstacle 2
J’ai ajouté les bibliothèques nécessaires à le Thingspeak, ajouté les objets et lire les capteurs dans une variable.
Les capteurs ont toutefois des flotteurs comme résultat et Thingspeak veut que vous envoyer des chaînes.
Avec la plupart des variables, il est assez facile pour les transformer en une chaîne avec la fonction simple « chaîne », mais ce n’est pas aussi simple que ça pour les flotteurs. Avec flotteurs, il faut utiliser la commande « dtostrf » (qui je suppose est synonyme de « double-à-chaîne-fonction »
Essayant de trouver des infos sur que fonction sur internet me conduit rapidement à des discussions sans fin sur « comment stupide » c’était et personnes posant des questions étaient souvent dit « pourquoi auriez-vous besoin que, Serial.print qui fera pour vous » Oui, vrai, mais je ne veux imprimer, j’en ai besoin parce que Thingspeak veut.
Solution
Pour utiliser la commande dtostrf vous avez besoin de mettre en place un espace de mémoire tampon où sera stockée la chaîne. Il fonctionne comme ceci :
Cette bufferspace est important. J’ai eu à travailler avec « 7 » ou même « 5 », mais quand j’ai ajouté un second capteur qui a besoin de cette fonction, mon datastream se briserait et ou j’ai obtenu des résultats étranges. J’ai aussi pensé que je pourrais utiliser le bufferspace même en alternance pour chaque capteur, mais qui aussi n’a pas vraiment fonctionné, alors maintenant j’ai un bufferspace pour chaque capteur.
Maintenant je ne suis aucune fissure en ut, alors peut-être il y a une meilleure façon de le faire, si donc je serais ravi de l’entendre, mais cela a fonctionné pour moi.
Hurdle3
Une fois que j’ai eu les conversions de chaînes, je pourrais ajouter les données pour le flux de données.
L’exemple de programme Thingspeak montre que pour un seul champ seulement, mais il devient clair assez rapide que vous devez ajouter les chaînes et les jeter dans la bonne quantité de plussesand et commerciaux.
Solution
Ainsi, pour dire 4 champs différents, il devient comme ceci :
updateThingSpeak ("champ1 = « + temp + » & champ2 = « + humide + » & field3 = « + pres + » & field4 =" + temp2) ;