Skicka sensordata (DHT11 & BMP180) till ThingSpeak med en Arduino, via kabel eller WiFi (ESP8266) (2 / 5 steg)

Steg 2: Programmet

Nedan finner du den fullständiga koden.
Bara några anmärkningar:
BMP180 är en uppdaterad version av BMP085. De BMP085 biblioteken är kompatibla med BMP180.
AdaFruit har 2 versioner av den libray. Jag plockade version 1 som jag fann det lättare att arbeta med. Version 2 kräver också installation av "Sensor" biblioteket.
I koden jag också presentera en extra float: är ". som ger trycket i "mmHg" som jag inte har använt det för nu finns det ingen sträng konvertering ännu och det läggs inte till datastream, men att lägga till det bör nu vara så enkelt som 1 + 1

/*
Arduino -> ThingSpeak kanal via Ethernet
ThingSpeak klient skissen är utformad för Arduino och Ethernet.
Denna skiss uppdaterar en kanal matar med en analog ingång läsning via den
ThingSpeak API (http://community.thingspeak.com/documentation/)
använda HTTP POST. Arduino använder DHCP och DNS för en enklare nätverksinstallation.
Skissen innehåller också en vakthund / Reset-funktion för att se till att den
Arduino förblir kopplad och/eller återfår anslutning efter en nätverk avbrott.
Använda följetong bildskärmen på Arduino IDE för att se utförligt nätverk feedback
och ThingSpeak anslutning status.
Komma igång med ThingSpeak:
* Registrera dig för nytt användarkonto - < en href = "https://www.thingspeak.com/users/new" rel = "nofollow" > https://www.thingspeak.com/users/new
< /a >
* Ange en MAC-adress i denna skiss under "Inställningar för lokalt nätverk"
* Skapa en ny kanal genom att välja kanaler och sedan skapa nya kanal
* Ange skriver API-nyckel i denna skiss under "ThingSpeak inställningar"
Arduino krav:
* Arduino med Ethernet Shield eller Arduino Ethernet
* Arduino 1.0 IDE
Nätverkskraven:
* Ethernet-porten på routern
* DHCP aktiverat på routern
* Unika MAC-adressen för Arduino
Skapad: Oktober 17, 2011 av Hans Scharler (http://www.iamshadowlord.com)
Extra poäng:
Exempel skisser från Arduino team, Ethernet av Adrian McEwen
Lade till dht11/BMP180 visade dtostrf funktion av diy_bloke 22/11/2014
*/
#include < SPI.h >
#include < Ethernet.h >
#include < dht11.h >
#include < Wire.h >
#include < Adafruit_BMP085.h > / / det här är version 1 biblioteket
#define DHT11PIN 4 / / The temperatur/hygrometergivare
Adafruit_BMP085 bmp;
dht11 DHT11;

Inställningar för lokalt nätverk
byte [mac] = {0xD4, 0x28, 0xB2, 0xFF, 0xA0, 0xA1}; Måste vara unika på lokala nätverket
ThingSpeak inställningar
char thingSpeakAddress [] = "api.thingspeak.com";
String writeAPIKey = "REPLACE_THIS_BY_YOUR_API_BUT_KEEP_THE_QUOTES";
CONST int updateThingSpeakInterval = 16 * 1000; Tidsintervall i millisekunder för att uppdatera ThingSpeak (antal sekunder * 1000 = intervall)
Variabelinställningar
lång lastConnectionTime = 0;
booleska lastConnected = false;
int failedCounter = 0;
Initiera Arduino Ethernet-klient
EthernetClient klient;
void setup()
{
Start följetong för felsökning på Serial Monitor
Serial.BEGIN(9600);
Starta Ethernet på Arduino
startEthernet();
}
void loop()
{
Läsa värdet från Analog Input stift 0
String analogPin0 = String(analogRead(A0), DEC);
Skriva ut uppdateringen svar på Serial Monitor
om (client.available())
{
char c = client.read();
Serial.Print(c);
}
---DHT11---
int chk = DHT11.read(DHT11PIN);
char t_buffer [10].
char h_buffer [10].
float t=(DHT11.temperature);
Sträng temp=dtostrf(t,0,5,t_buffer);
Serial.Print(temp);
Serial.Print("");
float h=(DHT11.humidity);
Sträng humid=dtostrf(h,0,5,h_buffer);
Serial.println(humid);

---BMP180---
BMP.BEGIN();
flyta p = (bmp.readPressure () / 100,0); //this är för trycket i hektoPascal
flyta m=(bmp.readPressure()/133.3); / / Detta är för trycket i mmHG
float t2=(bmp.readTemperature());
char p_buffer [15].
char t2_buffer [10];
Sträng pres=dtostrf(p,0,5,p_buffer);
Sträng temp2=dtostrf(t2,0,5,t2_buffer);
Serial.println(pres);
// }
//----------------

Koppla från ThingSpeak
om (! client.connected() & & lastConnected)
{
Serial.println("...Disconnected");
Serial.println();
client.stop();
}
Uppdatera ThingSpeak
IF(!client.Connected() & & (millis() - lastConnectionTime > updateThingSpeakInterval))
{
updateThingSpeak ("Fält1 ="+ temp +"& Fält2 ="+ fuktigt +"& field3 ="+ pres +"& field4 =" + temp2);
}
Kontrollera om Arduino Ethernet måste startas
om (failedCounter > 3) {startEthernet();}
lastConnected = client.connected();
}
void updateThingSpeak(String tsData)
{
om (client.connect (thingSpeakAddress, 80))
{
client.Print ("POST /update HTTP/1.1\n");
client.Print ("Host: api.thingspeak.com\n");
client.Print ("anslutning: close\n");
client.Print ("X-THINGSPEAKAPIKEY:" + writeAPIKey + "\n");
client.Print ("Content-Type: application/x-www-formuläret-urlencoded \n");
client.Print ("Content-Length:");
client.Print(tsData.length());
client.Print("\n\n");
client.Print(tsData);
lastConnectionTime = millis();
om (client.connected())
{
Serial.println ("ansluter till ThingSpeak...");
Serial.println();
failedCounter = 0;
}
annat
{
failedCounter ++;
Serial.println ("anslutning till ThingSpeak misslyckades ("+ String(failedCounter, DEC) +")");
Serial.println();
}
}
annat
{
failedCounter ++;
Serial.println ("anslutning till ThingSpeak misslyckades ("+ String(failedCounter, DEC) +")");
Serial.println();
lastConnectionTime = millis();
}
}
void startEthernet()
{
client.stop();
Serial.println ("ansluta Arduino att nätet...");
Serial.println();
Delay(1000);
Ansluta till nätverk amd en IP-adress med DHCP
om (Ethernet.begin(mac) == 0)
{
Serial.println ("DHCP misslyckades, Nollställ Arduino att försöka igen");
Serial.println();
}
annat
{
Serial.println ("Arduino ansluten till nätverket via DHCP");
Serial.println();
}
Delay(1000);
}

Se Steg
Relaterade Ämnen

Skicka sensordata (DHT11 & BMP180) till ThingSpeak med en Arduino, använder ENC28J60 Ethercard

Obs: Detta instructable är för gamla ENC26J60 Ethershield och ethercard. Om du har den moderna WIZ5100 baserade Ethernetshield eller en ESP8266 gå besöka min andra instructable som jag nämner nedanOm ett och ett halvt år sedan jag publicerade baserat...

Kör två Nixie rör med en Arduino via ett skiftregister och två SN74141s.

Nixie rör är verkligen göra sval sett och blir ganska populär för sina "retro" utseende. Även om det finns ett antal tutorials ute på med nixie rör och några fina färdigförpackade enheter (se dessa trevliga sådana från ogi lumen och ArduiNIX) in...

Skicka varning plats informera till Twitter med hjälp av GPS med WIZwiki-W7500

Hej alla!Detta instructable har ett annat namn, "Vem bryr sig när jag har ett problem!".Syftet med detta projekt för att jaga roten i Alert situation.Det händer runt omkring oss ibland, ingen där nära oss när vi är i trubbel.På den tiden måste v...

Hur man gör LED blixt till musik med en Arduino

detta är en guide till gör en LED blinkar krets som "slår" mp3-fil på din dator, som kan lägga en awesome effekt till vilken enhet som helst med ljudet, eller ens ditt rum (om du utvidgar begreppet LED drivrutiner eller gott om motstånd/transist...

Hur man använder en 16 X 2 LCD uppvisning med en Arduino, TI Launchpad eller breadboarded MSP430

i den här videon instructable jag visa hur man koppla ett billigt 16 X 2 LCD-skärm upp till en Arduino, då en TI Launchpad MSP430 kör Energia, sedan en breadboarded MSP430.Dessa skärmar är billiga - jag fick min för $2.26 levereras på eBay. De endast...

Hemma temperaturövervakning med Raspberry Pi och Thingspeak (med BMP180)

Det är en ålder av IoT.Each dagen mer och fler människor ansluter sig till molnet. Så verkade det som göra orätt att temperatur/tryck givare och en raspberry pi B + (en nästan 1GHz pumpas upp odjuret) som låg runt tabellen dator. De behövs för att ko...

Bygga din första IOT med en Raspberry Pi, DHT11 sensor och Thingspeak.

Sakernas Internet eller Internet of Things är ett hett ämne! Enligt experterna allt kommer att vara ansluten till internet och alla våra enheter och deras data snart kommer bara en IP-adress från oss. Så var börjar du om du vill utforska världen av S...

Förvandla en gammal mobiltelefon till en data skickas enhet (med en arduino)

Vad gör denna enhet?När allt är klart kommer kombinationen av kretsar, arduino och modded cellphone kunna autonomt skicka data via texter via mobilnätet. Detta kan vara sensordata, till exempel från väder sensorer.Vad ska jag visa dig i den här guide...

Låg kostnad WIFI temperatur (DS18B20) datalogger baserad på ESP8266 med anslutning till thingspeak.com

Datalogger för temperatur baserat på ESP8266 och DS18B20 1-tråds temperaturgivare.På bara $5 ESP-01 styrelsen och DS18B20 sensor.Mjukvaran är skriven i LUA språk och körs direkt i ESP8266.Inga andra MCU!Steg 1: Del förteckning ESP-01 styrelsen - eBay...

Linkit en IoT: ansluten till Thingspeak

Linkit en är en arduino kompatibel styrelsen gjord av seeed studio och baserat på mediatek ARM chip. Målet med detta forum är att göra bärbara och IoT projektet easiear till beslutsfattare.Thingspeak är en IoT plattform som har varit allmänt använda...

STM32103: esp8266 NodeMCU ThingSpeak [med mbed.h]

I denna handledning kommer vi att gå att skicka analoga värdet av våra varierande Resistor till en fjärrserver (ThingSpeak.com) med hjälp av våra STM32F103RB Nucleo styrelsen via esp8266 som programmeras med hjälp av mbed.h.Projektet är indelat i föl...

Ansluta Nokia 3310 LCD till USB med hjälp av AVR

vad gör du med en gammal telefon, en mikrokontroller och massor av tid?Du ansluter den gamla telefonen LCD skärm till datorn USB naturligtvis!I detta projekt vi ska kommunicera med en Nokia 3310 LCD uppvisning via USB! Hur ska vi göra det? Vi kommer...

Anslutning av DIY IoT enheter till Internet med pfodApp

Hur du ansluter hemma och bort med hjälp av samma anslutningDetta instructabe omfattar hur du får din WiFi pfodDevice, IoT, ansluten till Internet. Det visar också hur pfodApp löser problemet med att inte kunna ansluta till din lokala enhet via Inter...

Konvertera doc till .jpeg med Office för Mac 2008

Detta "vänners kompatibla är om hur man tar ett Word-dokument och konvertera den till foto-filer på en gammal Mac med gamla mjukvaran. Det systemet jag använder är en svart MacBook c.2006 kör snö Leopard (10.6.8) med Office för Mac 2008 och iPhoto '...

Arduino Nano: Temperatur och fuktighet DHT11/DHT21/DHT22 Sensormodul med Visuino

DTH11 / DTH21 / DTH22 och AM2301är mycket populära kombinerade temperatur och luftfuktighet Arduino sensorer.I detta Instructable, ska jag visa dig hur lätt det är att programmera Arduino att använda dem, med Visuino - en enkel att använda grafiska u...

Lägga till knappar i din X52-Pro Joystick med en Arduino mikro

Jag har en Saitek X52-Pro HOTAS setup som jag använder för Elite: farligt. Det är en fantastisk joystick men det kan göra med bara några fler knappar. Med en Arduino Micro kan du utöka detta (eller någon annan) joystick för alla spel som kommer att s...

Skicka och ta emot e-post med en Net10 telefon

skicka och ta emot e-post med en Net10 telefon*************TeleFlip är död - men det finns andra resurser för de "enkla" (och billigt) mobiltelefon!Steg 1: Hittade jag några snygga Instructibles om skicka och ta emot e-post med en enkel Net10 ty...

Hur man använder Twitter till Connect med seger Baptist Church

Twitter är en Internettjänst på World Wide Web (WWW) som gör korta textmeddelanden till att sändas till hela världen, eller bara dina vänner, beroende på vad du vill.Du kan skicka meddelanden till Twitter via e-post eller mobiltelefon, och dina vänne...

Från filen till kniv (med enkla verktyg)

en bra "bushcraft" kniv är ett måste för varje friluftsmänniska.Det är ett verktyg som varar en livstid.Skulle inte det vara häftigt att göra ett sådant avgörande, varaktig verktyg själv?Det finns många olika typer av knivar och många sätt att g...