ESP8266 inlagda GPS-position till Adafruit IO (3 / 4 steg)

Steg 3: Ladda upp koden - kopiera och klistra in koden i du Arduino IDE

< p > #include "Adafruit_MQTT.h" / / Adafruit MQTT bibliotek < br > #include "Adafruit_MQTT_Client.h" / / Adafruit MQTT bibliotek < /p >< p > #include "ESP8266WiFi.h" / / ESP8266 bibliotek
#include < Adafruit_ssd1306syp.h >> / / Adafruit Oled bibliotek för visning < /p >< p > #include < TinyGPS ++ .h > / / små GPS Plus bibliotek < /p >< p > #include < SoftwareSerial.h > / / seriell mjukvarubibliotek så vi kan använda stift för kommunikation med GPS-modul < /p >< p > #define SDA_PIN 4 / / användningsområden GPIO stift 4(SDA) och 5(SCL) av ESP8266 Adafruit fjäder
#define SCL_PIN 5 / / även känd som stift D1(SCL) och D2(SDA) av NodeMCU ESP-12
Adafruit_ssd1306syp display(SDA_PIN,SCL_PIN); Ställ in OLED uppvisning stift < /p >< p > statisk const int RXPin = 12, TXPin = 13. Ublox 6m GPS-modulen till stift 12 och 13
statisk const uint32_t GPSBaud = 9600; Ublox GPS standard överföringshastigheten är 9600 < /p >< p > TinyGPSPlus gps; Skapa en instans av objektet TinyGPS ++ kallas gps
SoftwareSerial ss (RXPin, TXPin); Seriell anslutning till GPS-enheten < /p >< p > const double HOME_LAT = **. ***; Här anger du din latitud och longitud
CONST double HOME_LNG =-**. ***; att spåra hur långt bort den "Dog" är hemifrån < /p >< p > / *** WiFi tillträde punkt *** / < /p >< p > #define WLAN_SSID "***" / / Ange din router SSID
#define WLAN_PASS "***" / / Ange din router lösenord < /p >< p > / *** Adafruit.io Setup *** / < /p >< p > #define AIO_SERVER "io.adafruit.com"
#define AIO_SERVERPORT 1883 / / använda 8883 för SSL
#define AIO_USERNAME "***" / / Ange ditt användarnamn på Adafruit IO
#define AIO_KEY "***" / / Ange din Adafruit IO nyckel < /p >< p > / *** Global stat (du inte behöver ändra på detta!) *** / < /p >< p > WiFiClient kunden. Skapa en ESP8266 WiFiClient klass för att ansluta till MQTT servern. < /p >< p > const char MQTT_SERVER [] PROGMEM = AIO_SERVER; Lagra MQTT servern, användarnamn och lösenord i flash-minnet.
CONST char MQTT_USERNAME [] PROGMEM = AIO_USERNAME;
CONST char MQTT_PASSWORD [] PROGMEM = AIO_KEY; < /p >< p > / / Setup klassen MQTT klienten av bortgång i WiFi klienten och MQTT server och logga in detaljer.
Adafruit_MQTT_Client mqtt (& client, MQTT_SERVER, AIO_SERVERPORT, MQTT_USERNAME, MQTT_PASSWORD); < /p >< p > / *** Feeds *** < /p >< p > / Setup ett foder som heter "gpslat" för publicering.
Meddelande MQTT banor för AIO följa form: /feeds/ / / detta foder behövs inte, bara installera om du vill se den
CONST char gpslat_FEED [] PROGMEM = AIO_USERNAME "/ feeds/gpslat";
Adafruit_MQTT_Publish gpslat = Adafruit_MQTT_Publish (& mqtt, gpslat_FEED); < /p >< p > / / Setup ett foder som heter "gpslng" för publicering.
Meddelande MQTT banor för AIO följa form: /feeds/ / / detta foder behövs inte, bara installera om du vill se den
CONST char gpslng_FEED [] PROGMEM = AIO_USERNAME "/ feeds/gpslng";
Adafruit_MQTT_Publish gpslng = Adafruit_MQTT_Publish (& mqtt, gpslng_FEED); < /p >< p > / / Setup ett foder som heter "gps" för publicering.
Meddelande MQTT banor för AIO följa form: /feeds/
CONST char gps_FEED [] PROGMEM = AIO_USERNAME "/ feeds/gpslatlng/csv"; CSV = kommatecken separerade värden
Adafruit_MQTT_Publish gpslatlng = Adafruit_MQTT_Publish (& mqtt, gps_FEED); < /p >< p > / *** / < /p >< p > void setup()
{
Serial.BEGIN(115200); Konfigurera seriell Comm för Serial Monitor @ 115200 baud
WiFi.mode(WIFI_STA); Ställa in ESP8266 som en wifi station
WiFi.disconnect(); Koppla bort om det behövs
Delay(100); kort fördröjning

display.Initialize(); init OLED Visa
display.Clear(); Tydlig OLED-skärm
display.setTextSize(1); Ställ in OLED textstorlek för små
display.setTextColor(WHITE); Ange OLED färg till vitt
display.setCursor(0,0); Ställ in markören till 0,0
display.println ("Adafruit IO GPS");
display.println ("Tracker");
display.Print("---");
display.Update(); Uppdatera visningen
Delay(1000); Paus X sekunder

SS.BEGIN(GPSBaud); Som mjukvaran följetong Comm hastigheten till 9600

display.Print ("ansluter till WiFi");
display.Update(); < /p >< p > WiFi.begin (WLAN_SSID, WLAN_PASS); Starta en WiFi-anslutning och ange SSID och lösenord
medan (WiFi.status()! = WL_CONNECTED)
{/ / Väntan på wifi-anslutning, Visa "..."
Delay(500);
display.Print(".");
display.Update();
}
display.println("Connected");
display.Update();
} / / Slutet Setup < /p >< p > void loop() {< /p >< p > smartDelay(500); / / uppdatering GPS-data TinyGPS behöver matas ofta
MQTT_connect(); Köra proceduren att ansluta till Adafruit IO MQTT < /p >< p > flyta Distance_To_Home; variabel att lagra avstånd till hem
flyta GPSlat = (gps.location.lat()); variabel att lagra latitude
flyta GPSlng = (gps.location.lng()); variabel att lagra longitud
flyta GPSalt = (gps.altitude.feet()); variabel att lagra höjd
Distance_To_Home = (osignerade långa) TinyGPSPlus::distanceBetween (gps.location.lat (), gps.location.lng (), HOME_LAT, HOME_LNG); Fråga liten GPS för att beräkna avståndet till hem

display.Clear();
display.setCursor(0,0);
display.println F ("GPS Tracking").
display.Print("---");
display.Update(); < /p >< p > display.print ("GPS Lat:");
display.println(GPS.location.lat(), 6); Visa latitud till 6 decimaler
display.Print ("GPS Lon:");
display.println(GPS.location.LNG(), 6); Visa longitud till 6 decimaler
display.Print ("avstånd:");
display.println(Distance_To_Home); Avståndet till hem mätt i meter
display.Update(); < /P >< p > / / *** kombinera Data att skicka till Adafruit IO ***
Här måste vi kombinera hastighet, latitud, longitud, höjd i en variabel strängbuffert att skicka till Adafruit

char gpsbuffer [30]. Kombinera latitud, longitud, höjd i en buffert av storlek X
char * p = gpsbuffer; Skapa en buffert för att lagra GPS information att ladda upp till Adafruit IO < /p >< p > dtostrf (Distance_To_Home, 3, 4, p); Konvertera avstånd till hem till en sträng variabel och lägga till bufferten
p += strlen(p);
p[0] = ','; p ++;

dtostrf (GPSlat, 3, 6, p); Konvertera GPSlat(latitude) till en strängvariabel och lägga till bufferten
p += strlen(p);
p[0] = ','; p ++;

dtostrf (GPSlng, 3, 6, p); Konvertera GPSlng(longitude) till en strängvariabel och lägga till bufferten
p += strlen(p);
p[0] = ','; p ++;

dtostrf (GPSalt, 2, 1, p); Konvertera GPSalt(altimeter) till en strängvariabel och lägga till bufferten
p += strlen(p);

p [0] = 0; null avsluta, slutet av bufferten array < /p >< p > om ((GPSlng! = 0) & & (GPSlat! = 0)) / / om GPS longitud alternativt latitud inte är lika med noll sedan publicera
{
display.println ("skickar GPS-Data");
display.Update();
gpslatlng.publish(gpsbuffer); publicera kombineras Data till Adafruit IO
Serial.println(gpsbuffer);
}

gpslng.publish(GPSlng,6); Publicera GPS longitud till Adafruit IO

om (! gpslat.publish(GPSlat,6)) / / publicera GPS latitud till Adafruit IO
{
display.println(F("failed")); Om det misslyckades med att publicera, skriva ut misslyckades
} annat
{
display.println(gpsbuffer);
display.println F ("Data skickas!").
}
display.Update();
Delay(1000);

om (millis() > 5000 & & gps.charsProcessed() < 10)
display.println (F ("nr GPS mottagna data: kontrollera ledningar"));

Vänta lite innan du skannar igen
display.Print("pausing...");
display.Update();
smartDelay(500); Foder TinyGPS ständigt
Delay(1000);
} < /p >< p > / / *** Smart dröjsmål - används för att mata TinyGPS *** < /p >< p > statisk void smartDelay (osignerade långa ms)
{
osignerade långa start = millis();
göra
{
samtidigt (ss.available())
GPS.encode(SS.Read());
} medan (millis() - start < ms);
} < /p >< p > / / *** MQTT Connect - förbinder med Adafruit IO ***
void MQTT_connect() {

int8_t ret;
om (mqtt.connected()) {återvänder;} / / stopp och återvända till Main Loop om redan ansluten till Adafruit IO
display.Print ("ansluter till MQTT... ");
display.Update(); < /p >< p > uint8_t återförsök = 3;
medan ((ret = mqtt.connect())! = 0) {/ / Anslut till Adafruit, Adafruit returnerar 0 om ansluten
display.println(mqtt.connectErrorString(ret)); Visa Adafruits svar
display.println ("försöker igen MQTT...");
mqtt.Disconnect();
display.Update();
Delay(5000); vänta X sekunder
återförsök--;
om (återförsök == 0) {/ / i princip dö och vänta på WatchDogTimer återställa mig
samtidigt (1).
}
}
display.println ("MQTT ansluten!");
display.Update();
Delay(1000);
} < /p >

Se Steg
Relaterade Ämnen

Linkit en GPS (skicka SMS av GPS-position till mobil)

detta instructable löser problemet med att skriva ut GPS-position på serial monitor.Vi skickar den platsen i form av SMS till våra mobila än tar vi den viktiga delen och än klistra in den på Google maps.Steg 1: delar Parts:• Linkit en• Linkit en USB-...

Anslut din LS20031 GPS-mottagare till Google Earth via PC

uppdateringar31 okt: Korrigerade pin-koder för hur tråd SN74AHC125 IC.INTRODUKTIONI denna guide jag kommer hook-up LS20031 GPS-mottagaren till en dator (troligen en laptop) gränssnittet det till Google Earth. Detta är en process i 3 delar:Tråd LS2003...

IoT ESP8266 serie: 1 - ansluta till WIFI-Router

Detta är del 1 av en "Instructables" serie dedikerad för att förklara hur man gör en Sakernas Internet projekt med hjälp av ESP8266 NodeMCU som syftar till att läsa och skicka data till en webbplats och att göra en åtgärd med samma webbplats.ESP...

Det tredje ögat (GPS-position utlöste talare använder Intel Edison) (Intel IOT)

I detta Instructable, kommer jag visa dig hur du använder, GPS-modulen parsning GPS Data från GROOVE GPS-modulen på en Edison med Node.js och nödvändiga paket för att göra en Text till tal med espeak biblioteket.Montera Groove Arduino expansion sköld...

Arduino Nano: Loggar GPS-Information till MicorSD kort med Visuino

MicroSD kort är billigt och enkelt data lagringsmedium, och de är mycket bekvämt för att lagra Arduino sensordata. Det finns också ett antal billiga lätt tillgängliga MicroSD kort moduler för Arduino, och jag har redan gjort Instructable om hur du lo...

Arduino Nano: Visa GPS-position på I2C 2 X 16 LCD-Display med Visuino

För några dagar sedan bad någon mig att göra Instructable om hur du visar GPS latitud och longitud på en LCD-Display. Jag lovade att göra en, och här är det.I detta Instructable kommer jag visa dig hur du kan ansluta seriell GPS-moduloch I2C LCD-Disp...

Ansluta GPS-modul till Arduino

detta är en enkel Instructable för de människor som vill veta hur du ansluter och använder deras GPS-modulen med en Arduino.Jag använder en Arduino Duemilanove och en EM-406A GPS-modul.Obs: bakbord är inte nödvändigt men gör jobbet mycket lättare.Ste...

Internet av saker toalett inlagda händelser till molnet (Raspberry PI)

Internet av saker toalett inlagda spola händelser och toalettpapper rulle förändring ut händelser till Google Drive kalkylblad.Hur fungerar det? – Ett akvarium flytande nivågivare flottör känner WC tank nivå; spolning sänker stänger växeln. En foto c...

Visa GPS-position på en LCD-skärm

I denna handledning kommer vi att utforma en GPS-mottagare att visa latitud och longitud på en Flytandekristallskärm (LCD). GPS står för Global Positioning System. Det utformades ursprungligen för militär och intelligens applikationer på höjden av de...

Esp8266 + Sensor temperarture DS18B20 till Emoncms

Temperaturövervakning genom att använda ESP8266 + temperatur sensor DS18B20 (OneWire) + Arduino IDE och Emoncms plattformsmodul.Emoncms kan installeras på ett webbhotell, i detta fall och pre-installerat på min lokala server.Mer information besök min...

ESP8266 + Arduino Solar laddare till Emoncms

I detta fall har det varit används en Arduino Nano och ESP8266 modul för övervakning av temperarure, spänning på 2 solpaneler, mäta spänning och ström av ett batteri av 6 VDC.Mer informationBlog PDAControl SvenskaBlogg PDAControl EspañolEmoncms (Open...

ESP8266 12naE med GPS & OLED display

I detta Instructable ska jag beskriva hur till hookup en Ublox 6m GPS-modul och en OLED Visa till NodeMCU eller ESP8266-12naE wifi modul att visa din nuvarande GPS-position och annan info.Kolla in min Youtube Video som beskriver detta. YouTube-VideoS...

Båt Autopilot - baserat på Arduino

Här är hur man bygger en autopilot som kan styra en RC båt till waypoints! Det är enkelt att bygga, baserat på den populära Arduino plattformen och bra för amatörer som vill ha lite lödning övning! Med denna autopilot, kan en RC båt gå långa sträckor...

Stalker Guard

tack för att läsa min Instructable. Jag heter Aditya och jag bor i up, Indien. Varje dag får vi höra några stöldeller brott i vårt grannskap. Så jag bestämde mig att göra en anordning för att lösa vissa problem. Som kedja rycka, Bus med flickor etc....

Bygga en ISS pekaren Tracker med Adafruit HUZZAH ESP8266

Översikt – del 1 Alt/Az pekarenExpanderande på min Stepper Motor controller med Adafruit Huzzah ESP8266 WiFi modul genom att lägga till en liten Servo, skapade jag en mekanisk anordning som kan flytta i Azimut (med en Stepper) och höjd (med en Servo)...

IoT väderstation med Adafruit HUZZAH ESP8266 (ESP-12naE) och Adafruit IO

Hej, alla! Tid sedan jag såg denna väderstation av Aleator777 och jag blev inspirerad att göra min egen väderstation. Jag såg att Intel Edison är för dyrt i mitt land, så jag bestämde mig för att leta efter något mycket billigare, och jag hittade den...

GPS-tid (UTC) till lokal tid konvertering genom att använda Arduino

jag har en GPS-mottagare, Holux M-1000, som du kan använda den med en bärbar dator, en Handdator eller en mobiltelefon via Bluetooth. Jag hade använt det för navigering med Palm TX och Treo700p (Ja, jag har länge varit ett stort fan av Palm PDA-serie...

Arduino ansluten till Wifi med ESP8266 kontrolleras av BLYNK (med en Mac OS X)

Men det finns många tutorials på hur man ställer in en ny ESP8266 att ansluta till wifi, tog det mig fortfarande dagar och många timmar talar till departementet teknik på högskolan att faktiskt få mitt projekt upp och kör. Hoppas detta hjälper till a...

Hur du ansluter den DeLorme Earthmate GPS LT-20 till din Google Earth för en bra GPS-spårning karta.

jag kommer att visa dig hur du ansluter en GPS-enhet till den populära Google Earth-programmet, utan att använda Google Earth Plus.Jag har inte en stor budget så kan jag garantera att det blir som billiga möjligt.Steg 1: Lista av programvara du behöv...