Etape 1: Envoyer des données de capteur (DHT11 & BMP180) à ThingSpeak avec un Arduino, à l’aide de ENC28J60 Ethercard : questions
Les bibliothèques
Il y a essentiellement 4 bibliothèques pour le ENC28J60
Ethershield (développement arrêté) utilise pin10 comme chipselect
Ethercard mis pour permettre l’utilisation d’une carte SD, utilise la broche 8 comme chipselect
Ether_2860 de Simon moine. Si vous n’avez pas déjà celui-là, vous probablement jamais l’obtiendrez.
UIPEthernet de Truchsess de Norbert. Cette bibliothèque est une goutte en remplacement pour la bibliothèque WS5100 Ethernet, il rend le ENC28J60 se comportent comme un WIZ5100. Cela signifie que les programmes mis au point pour ce dernier, peuvent être utilisés dans le premier cas, simplement en remplaçant
#include <Ethernet.h> by #include <UIPEthernet.h>
Cependant, qui exige peu de mémoire.
Quand googler pour la bibliothèque ethercard, on peut croiser les fourches dans les différentes bibliothèques aussi bien.
Si pour une raison quelconque vous souhaitez utiliser la bibliothèque Ethercard avec broche 10 (par exemple si vous l’utilisez avec le Ethershield), changement de l’affectation des broches dans la bibliothèque de fichiers ENC28J60.h (lignes 25 et 41 je crois) et le EtherCard.h (ligne 134 : uint8_t csPin = 8). (Selon la version il peut aussi être en ligne 154.)
Mais il est plus facile d’ajouter la déclaration pour la broche 10 dans le programme lui-même, comme ceci :
Ether.Begin (sizeof Ethernet::buffer, MONMAC, 10)
Dans ce instructable je vais utiliser la bibliothèque Ethercard.
Powersupply
Le Ethershield - et Ethercard bouclier comme wel comme la plupart des modules s’y attendre à 3,3 volts.
Le Format de données Thingspeak
Dans mon précédent instructable sur Thingspeak, j’ai abordé le dataformat et surtout qu’il s’attend à chaînes, tandis que le DHT11 et BMP180 offrent des flotteurs.
Le programme
Heureusement, la bibliothèque EtherCard avait un bon exemple pour démarrer à partir. Même si au départ, j’ai ajouté une routine pour convertir les données float en chaînes, j’ai réalisé que la bibliothèque Ethercard envoie les données à Thingspeak par le biais de l’impression de classe. Généralement, cela révèle flotteurs int chaînes. testé et oui, je n’ai pas à faire une conversion de chaîne et conserve la précision des données.
Le ENC28J60 a très faim au sujet de la mémoire afin que le programme a atteint une masse critique avec seulement 412 octets d’épargner pour les variables locales. Je l’ai eu en cours d’exécution sans cesse pendant 2 jours sans aucun problème. Je pouvais gagner probablement peu de mémoire en dépouillant la bibliothèque BMP adafruit un peu,