Kontrollera vätskenivån (2 / 4 steg)
Steg 2: Ladda upp programvaran
Överföra programvaran till arduino innan du gör något annat. Observera att följande kod använder en Ethernet-shield och HTTP-begäran för att svara till en klient (webbläsare). Så i nästa steg kommer vi se att servern svarar med en HTTP-begäran som skrivet nedan. Om du av någon anledning att använda en Wi-Fi sköld eller något annat du kan behöva ändra koden.
Värdet (heltal) som användaren får helt enkelt vad sensorn känner. Så, faktiskt inte flytande nivån. MEN du kan enkelt beräkna nivån om du abstrakt från full tank hypotetiska vätskan efter det värde du fick just. Enkla matematiska ekvationer.
/*****************************************************************************
En idé för framtidens smarta hem
Olja övervakning är ett projekt som låter dig övervaka mängden olja
på yourhome. Varnar med ett meddelande på facebook, gmail eller till och med SMS
på din personliga telefon och flera ger viktiga dig statistik om
förflutnan.
* Arduino Uno
* Ethernet shield och ethernet-kabel | Trådlösa sköld
* Ultraljud avstånd Sensor
* Ledningar för arduino pins
Utvecklat av Tzivaras Vasilis
Senaste uppdatering: [2015-10-06]
*****************************************************************************/
#define echoPin 7
#define trigPin 8
#include < SPI.h >
#include < Ethernet.h >
UltraSonic sensor min och max värde ska accepteras.
int maximumRange = 200.
int minimumRange = 0;
lång varaktighet, avstånd;
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, 0xFE, 0xED
};
IP-adress 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):
EthernetServer server(80);
void setup() {
pinMode (trigPin, produktionen);
pinMode (echoPin, ingång);
Öppna seriell kommunikation och vänta på port att öppna:
Serial.BEGIN(9600);
Starta Ethernet-anslutningen och servern:
Ethernet.BEGIN (mac, ip);
Server.BEGIN();
Serial.Print ("servern är på");
Serial.println(Ethernet.localIP());
}
void getSensorValue() {
digitalWrite (trigPin, låg);
delayMicroseconds(2);
digitalWrite (trigPin, hög);
delayMicroseconds(10);
digitalWrite (trigPin, låg);
längd = pulseIn (echoPin, hög);
Beräkna avståndet (i cm) baserat på ljudets hastighet.
avståndet = varaktighet/58,2;
}
void loop() {
lyssna efter inkommande klienter
EthernetClient klient = server.available();
om (klient) {
Serial.println ("ny kund");
en http-förfrågan avslutas med en tom rad
booleska currentLineIsBlank = sant;
samtidigt (client.connected()) {
om (client.available()) {
char c = client.read();
Serial.write(c);
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) {
Skicka ett standard http-svarshuvud
client.println ("HTTP/1.1 200 OK");
client.println ("Content-Type: text/html");
client.println ("anslutning: Stäng"); anslutningen kommer att stängas efter slutförandet av svar
client.println ("uppdatera: 5"); uppdatera sidan automatiskt varje 5 sek
client.println();
client.println ("<! DOCTYPE HTML > ");
client.println ("< html >");
getSensorValue();
client.Print("{\"id\":");
client.Print("1770,");
client.Print("\"measurement\":");
client.Print(Distance);
client.Print("}");
client.println ("< br/>");
client.println ("</html >");
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 ("klienten kopplas från");
}
}