Stap 1: Stuur sensorgegevens (DHT11 & BMP180) naar ThingSpeak met een Arduino, met behulp van ENC28J60 Ethercard: kwesties
De bibliotheken
Er zijn in principe 4 bibliotheken voor de ENC28J60
Ethershield (ontwikkeling gestopt) maakt gebruik van pin10 als chipselect
EtherCard develped om het gebruik van een SD-kaart, maakt gebruik van pin 8 als chipselect
Ether_2860 van Simon monnik. Als u nog geen dat men, zal u waarschijnlijk nooit krijgen.
UIPEthernet van Norbert Truchsess. Deze bibliotheek is een daling in vervanging voor de WS5100 Ethernet-bibliotheek, maakt de ENC28J60 gedragen zich als een WIZ5100. Dat betekent dat programma's ontwikkeld voor de laatste, kan worden gebruikt voor de voormalige, simpelweg door te vervangen
#include <Ethernet.h> by #include <UIPEthernet.h>
Dat is echter wat geheugen vereist.
Wanneer googlen voor de ethercard bibliotheek, een tegenkomen vorken van de diverse bibliotheken ook.
Als om welke reden u wilt gebruiken de Ethercard bibliotheek met pin 10 (bijvoorbeeld als u het met de Ethershield), verandering van de pin toewijzing in de bibliotheek bestanden ENC28J60.h (lijn 25 en 41 volgens mij) en de EtherCard.h (lijn 134: uint8_t csPin = 8). (Afhankelijk van de versie kan ook worden in lijn 154.)
Maar het is gemakkelijker om de verklaring voor pin 10 in het programma zelf als volgt toevoegen:
ether.begin (sizeof Ethernet::buffer, mymac, 10)
In dit instructable ik zal worden met behulp van de bibliotheek Ethercard.
Voeding
De Ethershield- en Ethercard schild en zoals de meeste van de modules 3.3 Volt verwachten.
De Thingspeak gegevensindeling
In mijn eerdere instructable op Thingspeak, besprak ik de dataformat en met name dat het verwacht strijkers, overwegende dat de DHT11 en BMP180 praalwagens leveren.
Het programma
Gelukkig had de EtherCard bibliotheek een goed voorbeeld om te beginnen uit. Hoewel aanvankelijk ik een routine de float om gegevens te converteren naar tekenreeksen voegde, realiseerde ik me dat de Ethercard bibliotheek de gegevens naar Thingspeak via de print klasse stuurt. Hiermee schakelt u in het algemeen praalwagens int tekenreeksen. getest en ja, ik heb niet om te doen een tekenreeksconversie en nog steeds houden van precisie in de gegevens.
De ENC28J60 is nogal hongerig met betrekking tot geheugen, zodat het programma een kritische massa met alleen 412 bytes bereikt te sparen voor lokale variabelen. Ik heb voortdurend draaien voor 2 dagen zonder enig probleem. Ik kon sommige geheugen waarschijnlijk winnen door het strippen van de bibliotheek van de BMP adafruit een beetje,