Smart personliga termometer med Arduino (2 / 3 steg)

Steg 2: Lägga koden i

Koden du ser gör följande saker:

-Ansluter till WiFi-nätverk
-Får en IP-adress
-Ansluta över TCP till en server (som klient)
-Ställ in en TCP-server för vår egen.
-Läsa och Visa den temperaturavläsningen från din sensor.
-Läsa och Visa aktuell tid.
-Skjut den temperaturavläsningen till servern.
-Visa IP-adressen för servern.

Placera följande kod i din IDE, kompilera och ladda upp den till din arduino.

< p > / *** < br > ESP8266_Shield_Demo.h
SparkFun ESP8266 på bibliotek - Demo
Jim Lindblom @ SparkFun elektronik
Ursprungligt skapelsedatum: 16 juli 2015
< en href = "https://github.com/sparkfun/SparkFun_ESP8266_AT_Arduino_Library" rel = "nofollow" >

https://github.com/Sparkfun/SparkFun_ESP8266_AT_A...></p><p>this exemplet visar grunderna i SparkFun ESP8266
PÅ bibliotek. Det ska visa dig hur du ansluter till WiFi-nätverk,
få en IP-adress, över TCP att ansluta till en server (som klient),
och ställa in en TCP-server för vår egen. < /p >< p > utveckling miljö detaljerna:
IDE: Arduino 1.6.5
Hårdvaruplattform: Arduino Uno
ESP8266 WiFi sköld Version: 1.0 < /p >< p > här koden är släppt under MIT license. < /p >< p > distribueras som-är; ingen garanti ges.
************************************************************</p><p>/////////////////////
Biblioteket innehåller / /
//////////////////////
SoftwareSerial krävs (även du inte tänker på
med det).
#include
#include < /p >< p > / / /
WiFi-nätverk definitioner / /
//////////////////////////////
Ersätta dessa två strängar med namn och
lösenordet för ditt WiFi-nätverk.
CONST char mySSID [] = "***"; / Ange SSID
CONST char myPSK [] = "***"; < /p >< p > /Enter ditt lösenord

//////////////////////////////
ESP8266Server definition / /
//////////////////////////////
serverobjektet används i slutet av demo.
(Detta är endast globala eftersom det kallas i båda setup()
och loop()).
ESP8266Server server = ESP8266Server(80); < /p >< p > / / /
HTTP strängar / /
//////////////////
CONST char destServer [] = "tmce.io.tudelft.nl";
const String htmlHeader = "HTTP/1.1 200 OK\r\n"
"Content-Type: text/html\r\n"
"Anslutning: close\r\n\r\n"
"\r\n"
"
\r\n"; < /p >< p > const String httpRequest =" få < en href = "http://tmce.io.tudelft.nl/test/time.php" rel = "nofollow" >< en href = "http://tmce.io.tudelft.nl/test/time.php" rel = "nofollow" > http://tmce.io.tudelft.nl/test/time.php < /a >< /a > HTTP/1.1\n "
"Host: tmce.io.tudelft.nl\n"
"Anslutning: close\n\n"; < /p >< p > / / alla funktioner anropade från setup() har definierats under den
loop() funktion. De modularized att göra det lättare att
klistra in skisser av dina egna.
void setup()
{
Serial Monitor används för att styra demo och Visa
debug information.
{
Serial.BEGIN(9600);
} < /p >< p > serialTrigger F ("Tryck någon nyckel till börjar."). < /p >< p > / / initializeESP8266() verifierar kommunikation med WiFi
sköld, och ställer den.
initializeESP8266(); < /p >< p > / / connectESP8266() ansluter till definierade WiFi-nätverk.
connectESP8266(); < /p >< p > / / displayConnectInfo prints Shields lokala IP
och nätverket är ansluten till.
displayConnectInfo(); < /p >< p > serialTrigger F ("Tryck på valfri tangent för att ansluta klienten.").
clientDemo();

serialTrigger F ("Tryck på valfri tangent för att testa servern.").
serverSetup();
} < /p >< p > dubbel Thermister (int RawADC)
{//Function att utföra fancy matten av Steinhart-Hart ekvationen
dubbel härda;
Temp = log(((10240000/RawADC) - 10000));
Temp = 1 / (0.001129148 + (0.000234125 + (0.0000000876741 * Temp * Temp)) * Temp);
Temp = Temp - 273.15; Konvertera Kelvin till Celsius
returnera härda;
} < /p >< p > void loop()
{
serverDemo();
int timmar; måste du lägga till dessa variabler
int minuter; för lagring av tidpunkten < /p >< p > {
FÅR TID
clientDemoTime (och timmar och minuter);
Visa det på serial monitorn.
Serial.Print ("servertid är:");
Serial.Print(hours);
Serial.Print(":");
Serial.println(Minutes); < /p >< p > delay(5000); fördröja - inte oveload min server...
}
int val; Skapa en heltalsvariabel
Val=analogRead(0); Läsa den analoga porten 0 och lagra värdet i val
dubbel härda;
Temp=Thermister(val);
Serial.println ("och det är:");
Serial.println(temp); Skriva ut värdet till den seriella porten
Serial.println ("grader");
Delay(1000); Vänta en sekund innan vi gör det igen
} < /p >< p > void initializeESP8266()
{
esp8266.BEGIN() verifierar att ESP8266 är i drift
och ställer upp för resten av skissen.
Den returnerar sant eller falskt--som visar om
kommunikation var successul eller inte.
True
int test = esp8266.begin();
om (testa! = true)
{
Serial.println F ("fel prata med ESP8266.").
errorLoop(test);
}
Serial.println (F ("ESP8266 sköld för närvarande"));
} < /p >< p > void connectESP8266()
{
ESP8266 kan anges till ett av tre lägen:
1 - ESP8266_MODE_STA - Station endast
2 - ESP8266_MODE_AP - åtkomstpunkt endast
3 - ESP8266_MODE_STAAP - Station/AP combo
Använd esp8266.getMode() för att kontrollera vilket läge det är:
int retVal = esp8266.getMode();
om (retVal! = ESP8266_MODE_STA)
{/ / Om det inte är i station läge.
Använda esp8266.setMode([mode]) till sätta den till en angiven
läget.
retVal = esp8266.setMode(ESP8266_MODE_STA);
om (retVal < 0)
{
Serial.println F ("fel inställning mode.").
errorLoop(retVal);
}
}
Serial.println F ("läge inställd station"). < /p >< p > / / esp8266.status() indikerar den ESP8266 WiFi ansluter
status.
Returnerade värdet 1 anger enheten är redan
ansluten. 0 anger frånkopplad. (Negativa värden
jämställer kommunikation fel.)
retVal = esp8266.status();
om (retVal < = 0)
{
Serial.Print F ("ansluter till").
Serial.println(mySSID);
esp8266.connect ([ssid], [psk]) ansluter ESP8266
till ett nätverk.
På framgång connect-funktionen returnerar ett värde > 0
På misslyckas returnerar funktionen antingen:
-1: TIMEOUT - biblioteket har en uppsättning 30s timeout
-3: misslyckas - kunde inte ansluta till nätverket.
retVal = esp8266.connect (mySSID, myPSK);
om (retVal < 0)
{
Serial.println F ("fel anslutning").
errorLoop(retVal);
}
}
} < /p >< p > void displayConnectInfo()
{
char connectedSSID [24].
MEMSET (connectedSSID, 0, 24);
esp8266.getAP() kan användas för att kontrollera vilka AP den
ESP8266 är ansluten till. Den returnerar en felkod.
Anslutna AP returneras av referens som en parameter.
int retVal = esp8266.getAP(connectedSSID);
om (retVal > 0)
{
Serial.Print (F ("ansluten till:"));
Serial.println(connectedSSID);
} < /p >< p > / / esp8266.localIP returnerar en IPadress variabel med den
ESP8266's nuvarande lokal IP-adress.
IP-adress myIP = esp8266.localIP();
Serial.Print (F ("min IP:")); Serial.println(myIP);
} < /p >< p > void clientDemo()
{
Till använda ESP8266 som en TCP-klient, använda den
ESP8266Client klass. Skapa först ett objekt:
ESP8266Client klient; < /p >< p > / / ESP8266Client ansluta ([server], [port]) som används till
ansluta till en server (const char * eller IP-adress) på
en angiven port.
Returer: 1 på framgång, 2 på redan ansluten,
negativ på misslyckas (-1 = TIMEOUT, -3 = Underkänd).
int retVal = client.connect (destServer, 80);
om (retVal < = 0)
{
Serial.println F ("kunde inte ansluta till servern.").
hemkomst.
} < /p >< p > / / Skriv ut och skriv kan användas för att skicka data till en ansluten
klientanslutning.
client.Print(HTTPRequest); < /p >< p > / / available() kommer tillbaka antalet tecken
för närvarande i mottagningsbufferten.
samtidigt (client.available())
Serial.write(client.Read()); Read() blir FIFO röding

Connected() är en boolean returvärdet - 1 om den
anslutningen är aktiv, 0 om den är stängd.
om (client.connected())
client.stop(); Stop() stänger en TCP-anslutning.
} < /p >< p > void serverSetup()
{
börja initialiserar ett ESP8266Server objekt. Det kommer att
starta en server på port anges i objektets
konstruktören (i globala område)
Server.BEGIN();
Serial.Print (F ("Server igång! Gå till "));
Serial.println(esp8266.localIP());
Serial.println();
} < /p >< p > void serverDemo()
{
available() är en ESP8266Server funktion som kommer att
returnera ett ESP8266Client objekt för att skriva ut och läsa.
available() har en parameter--ett timeout-värde. Detta
är antalet millisekunder funktionen waits,
kontroll för en anslutning.
ESP8266Client klient = server.available(500);

om (klient)
{
Serial.println F ("klient ansluten!").
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 == '\n' & & currentLineIsBlank)
{
Serial.println F ("skicka HTML-sidan").
Skicka en standard http-svarshuvudet:
client.Print(htmlHeader);
Sträng htmlBody;
utgående värdet för varje analog ingångsstift
för (int en = 0; en < 1; a ++)
{
htmlBody += "A";
htmlBody += String(a);
htmlBody += ":";
htmlBody += String(Thermister(analogRead(a))); < /p >< p > //htmlBody += Serial.println(temp);
htmlBody += "< br > \n";
}
htmlBody += "< /p >< p > \n";
client.Print(htmlBody);
bryta;
}
om (c == "\n")
{
du börjar en ny rad
currentLineIsBlank = sant;
}
annars om (c! = '\r')
{
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();
Serial.println F ("klienten kopplas bort").
}

} < /p >< p > / / errorLoop skriver ut en felkod, då loopar för evigt.
void errorLoop(int error)
{
Serial.Print (F ("fel:")); Serial.println(Error);
Serial.println F ("Looping för evigt.").
för (;)
;
} < /p >< p > / / serialTrigger skriver ut ett meddelande, sedan väntar något
komma in från den seriella porten.
void serialTrigger(String message)
{
Serial.println();
Serial.println(Message);
Serial.println();
tag (!. Serial.available())
;
samtidigt (Serial.available())
Serial.Read();
} < /p >

Se Steg
Relaterade Ämnen

Skapa en digital termometer med Arduino

gjorde du någonsin föreställa sig att göra sina egna digitala termometer? Med utvecklingen av alltmer sofistikerad teknik är så ingenting omöjligt.Denna gång projektet är att skapa en egen digital termometer med Arduino. Som måste läras i denna tutor...

DIY: En 5 minuter kontaktlösa OLED termometer med Arduino och MLX90614

Hej, alla! Idag ska jag visa dig hur man gör en kontaktlösa OLED termometer med Arduino UNO och IR temp sensor MLX90614 i 5 minuter. Detta projekt är mycket enkelt, det kräver grundläggande programmering och elektroniska kompetens att göra det.Kan bö...

Digital termometer med Arduino & DS18B20

helt enkelt skapa en digital termometer med kan berätta strömrumstemperaturen på en LCD-skärm. Detta är en nybörjare projekt.Apparater som du behöver:1. Arduino UNO R32. DS18B20 temperaturgivare.3. 16 x 2 LCD-display.4. Anslut ledningar.5. projektet...

Digital termometer med Arduino

Detta projekt använder en Arduino, en DS18B20 temp sensor och en 16 x 2 LCD-display för att visa aktuella lufttemperaturen. Det kan göras med eller utan en skärbräda, men en skärbräda gör det mycket lättare att tråd.Det visar temperaturen i Fahrenhei...

Klocka med termometer med Arduino, i2c 16 x 2 lcd, DS1307 RTC och DHT11 sensor.

Hello! Det var ett tag jag har inte postat något på Instructables, men nu gjorde jag ett enkelt projekt som jag sett på internet i olika former. Jag lyckades bygga en kod med hjälp av andra koder som jag har hittat på internet och jag måste säga det...

Hur man gör en termometer med hjälp av Arduino och LM35

dag jag ska visa dig hur man gör en termometer med Arduino och LM35 temperaturgivare, LCD Display, på en skärbräda anslutna med kablar. Det kommer att Visa temperaturen i Celsius och Fahrenheit.Andro rotSteg 1: Krav:- Detta är en lista av delar som b...

Arduino termometer med LM35

Hej, alla!!! Idag ska jag visa dig hur man gör en termometer med Arduino och LM35 termperature sensor, byggde på en skärbräda och ansluten med byglar (massa kablar: D).Steg 1: Samla delarna Detta är en lista delarna behövs för att göra termometern.Om...

Arduino Digital termometer (med DS18B20)

HejIdag kommer jag visa dig hur du gör din egen digitala termometer med arduino uno och DS18B20 temperaturgivare.Termometern kan mäta temperaturer från-55 ° C till +125 ° C (-67 ° F till +257 ° F). Den har till knappar, en till vända på/bort skärmen...

Hur du använder LCD-display med arduino handledning

Hej alla hoppas du är bra :)Idag display i'am ska lära dig att använda en LCD med Arduino (bara ett helvete världen meddelande).Om du är nybörjare eller om du aldrig spelat med LCD-display med Arduino innan, detta instructable definitivt för dig...An...

Snabb Digital termometer med billiga USB till TTL omvandlare och DS18B20 - utan Arduino eller Raspberry Pi

I min tidigare instructable jag gav en introduktion till Digital termometer med DS18B20 och ESP8266 nodemcu ombord med SPI OLED-skärm och programmering använder Arduino IDE. Det krävs kunskaper i programmering, grundläggande elektronik och krävs lite...

DIY TV LCD skärm med Arduino och Smart fjärrkontroll

I nästa följande steg, du gör en DIY "TV" med koden för en smart fjärrkontroll, och faktiskt spela videor och även eventuellt ansluta smart fjärrkontrollen till faktiska moderkortet.Material:Folie/spegelSolid och inte sladdrigt stabilisatoren li...

Arduino termometer med Sensor LM35 temperatur

Arduino termometer med LM35 temperaturgivare är en mycket enkel att genomföra Arduino baserat projekt. Dess en perfekt projekt om du är nybörjare och har bara började praktiskt testa Arduino projekt.I detta projekt kommer vi visar temperaturen i grad...

Smart Home Automation med Android + Ethernet Internet + Arduino

Hemautomation blir mer och mer populära, prisvärda och fascinerar människor. Internet erbjuder sådana möjligheter som aldrig förr. Imponera på dina vänner visar på Smartphone som du kan växla på/av-lampa i din lägenhet miles bort och samtidigt se det...

Smarta hem med Arduino Ethernet shield och Teleduino (med web app)

Detta projekt är en enkel lösning för dem som vill ha en smart-home system men inte har en stor budget och för lat de som inte vill komma från sängen till släcker belysningen av eller på.Det är också projektera av en high school student för sitt slut...

Personlig assistent med Telegram & Arduino.

Hej gott folk!För några månader sedan hörde jag om ett projekt som använde en instant messenger bot för att skapa ett system som automatiskt skulle behandla och ordna pizza beställningar av kunder via Whats app. Jag var som... wow! Ge att människan e...

Arduino Uno och Visuino: kontrollera Smart Car Robot med Joystick och L298N motorn förarens

Smart Car anger i kombination med L298N Motor drivrutinsmoduler, erbjuder en av de enklaste sätten att göra roboten bilar. L298N Motor Driver modul är lätt att kontrollera med Arduino, och med hjälp av Visuino kan du programmera din bil i sekunder.I...

DIY Arduino termometer med DS18B20

Hej, alla! Idag ska jag visa dig hur man gör LCD eller följetong * termometer med DS18B20 digitaltemperature sensor använder Arduino, skärbräda, byglar. Så kan du mäta temperaturen i luft, som vätskor vatten och temperaturen i marken.* skriver ut tem...

En Arduino termometer med Digital Display

detta är ett projekt för Arduino att göra en termometer med Digital Display, som syftar till nybörjare.Arduino mäter spänningen på en TMP36 temperaturgivare, konverterar spänningen till grader Celcius och visar värdet på en LOL sköld skärm.Mål:* Lär...

En svävar sfär roterar lyser och blinkar med Arduino

En svävar lite Dödsstjärnan i Instructables bjöd in mig till det nya projektet med Arduino. Tre principer var beslutat och höll för att skilja den från föregångaren.Gör det själv med någon (eller mindre) färdiga.Hålla roterande.Göra glöd och blinka u...