Paso 1: Envíe los datos del sensor (DHT11 y BMP180) a ThingSpeak con un Arduino, utilizando ENC28J60 Ethercard: cuestiones
Las bibliotecas de
Básicamente existen 4 bibliotecas para el ENC28J60
Ethershield (desarrollo detenido) utiliza pin10 chipselect
Ethercard develped para permitir el uso de una tarjeta SD, utiliza pin 8 como chipselect
Ether_2860 de Simón monje. Si ya no tienes que, probablemente nunca te lo.
UIPEthernet de Norbert Truchsess. Esta biblioteca es una gota en el reemplazo para la biblioteca WS5100 Ethernet, hace el ENC28J60 se comportan como un WIZ5100. Esto significa que programas desarrollados para este último, se puede utilizar para los primeros, simplemente mediante la sustitución de
#include <Ethernet.h> by #include <UIPEthernet.h>
Sin embargo, requieren memoria.
Cuando googleando para la biblioteca ethercard, uno puede venir a través de las horquillas de las diversas bibliotecas así.
Si por cualquier motivo desea usar la biblioteca Ethercard con pin 10 (por ejemplo, si se utiliza con el Ethershield), cambiar la asignación del pin en la biblioteca de archivos ENC28J60.h (líneas 25 y 41 creo) y el EtherCard.h (línea 134: uint8_t csPin = 8). (Dependiendo de la versión puede también ser en línea 154.)
Pero es más fácil añadir la declaración para el pin 10 en el propio programa como este:
ether.Begin (sizeof Ethernet::buffer, MIMAC, 10)
En este instructable utilizaré la biblioteca Ethercard.
Alimentación
Ethershield - y Ethercard el escudo así como la mayoría de los módulos de 3,3 voltios.
El formato de datos de Thingspeak
En mi anterior instructable sobre Thingspeak, discutí el dataformat y particularmente eso él espera cadenas, considerando que la DHT11 y BMP180 ofrecen los flotadores.
El programa de
Afortunadamente la biblioteca EtherCard tuvieron un buen ejemplo para partir. Aunque inicialmente he añadido una rutina para convertir los datos de flotador a las cadenas, me di cuenta de que la biblioteca Ethercard envía los datos al Thingspeak a través de la clase de impresión. Generalmente esto convierte cadenas de flotadores int. probado y sí, no tengo que hacer una conversión de la cadena y todavía mantener precisión en los datos.
El ENC28J60 es bastante hambre con respecto a la memoria para que el programa ha alcanzado una masa crítica con sólo 412 bytes para variables locales. He tenido funcionando constantemente durante 2 días sin ningún problema. Probablemente podría ganar memoria pelando un poco, la biblioteca de adafruit BMP