Temperatur och luftfuktighet Datalogger + Webserver (3 / 4 steg)
Steg 3: Anslut arduino till internet
I exemplet som webserver är det verkligen lätt att sätta dina data på internet.Den tidigare skiss ändras kan vara för att krediterbjudande http-begäran:
#include
#include
#include
dht11 DHT11;
#define nSensores 3
int puertos [nSensores];
float fHumedades [nSensores];
float fTemperaturas [nSensores];
int iNVisitas = 0;
Ange en MAC-adress och IP-adressen för din controller nedan.
IP-adressen kommer att bero på ditt lokala nätverk:
byte [mac] = {0xDE, 0xAD, 0xBE, 0xEF, 0xEE, 0xEE};
byte ip [] = {192,168,1, 177};
Starta servern Ethernet-biblioteket
med IP-adress och port vill du använda
(port 80 är standard för HTTP):
Server server(666);
void setup()
{
Starta Ethernet-anslutningen och servern:
Ethernet.BEGIN (mac, ip);
Server.BEGIN();
Serial.BEGIN(115200);
Puertos = {2,3,4}.
}
void getdata(int iIndice)
{
int chk = DHT11.read(puertos[iIndice]);
fHumedades [iIndice] =-1;
fTemperaturas [iIndice] =-1;
Serial.Print ("Sensor");
Serial.Print(iIndice);
Serial.Print("");
Switch (chk)
{
fall 0:
fHumedades [iIndice] = (float) DHT11.humidity;
Serial.Print (fHumedades [iIndice], 2);
Serial.Print ("%");
fTemperaturas [iIndice] = (float) DHT11.temperature;
Serial.Print (fTemperaturas [iIndice], 2);
Serial.println ("o C");
bryta;
i mål -1: Serial.println ("Checksum error"); bryta;
i mål -2: Serial.println ("Time out fel"); bryta;
standard: Serial.println ("okänt fel"); bryta;
}
}
void loop()
{
lyssna efter inkommande klienter
Klienten klienten = server.available();
om (klient) {
en http-förfrågan avslutas med en tom rad
booleska currentLineIsBlank = sant;
samtidigt (client.connected()) {
om (client.available()) {
char c = client.read();
Om du har fått till slutet av raden (fick en newline
karaktär) och raden är tom, http-begäran har avslutats,
så du kan skicka ett svar
om (c == ' "& & currentLineIsBlank) {
Skicka ett standard http-svarshuvud
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println();
utgående värdet för varje analog ingångsstift
för (int jag = 0; jag / / (int analogChannel = 0; analogChannel < 6; analogChannel ++) {
client.Print ("sensor");
client.Print(i);
client.Print(":");
IF(fHumedades[i]==-1)
client.Print ("fel leyendo el sensor");
annat
{
client.Print (fHumedades [i], 2);
client.Print ("%");
client.Print (fTemperaturas [i], 2);
client.println ("o C");
}
client.println("
");
}
client.Print((iNVisitas++)/2);
client.println ("visitas
");
bryta;
}
if (c == ' ') {
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = ' ') {
du har fått ett tecken på den aktuella raden
currentLineIsBlank = false;
}
}
}
de web webbläsare möjlighet att ta emot data
Delay(1);
stänga anslutningen:
client.stop();
}
annat
{
för (int jag = 0; jag getdata(i);
Delay(200);
}
}
Där jag använder min rätt nätverkskonfiguration. Använda din konfiguration, bara ändra värdena för mac och ip.
Du kan ansluta till min egen arduino server för att se min server rumstemperatur