Stap 3: De Code uploaden
Ten eerste, ik neem aan dat je de Arduino IDE al geïnstalleerd (bij voorkeur 1.6.4 of hoger) en dat u alle nodige libraries hebt geïnstalleerd, zoals: TinyGPS plus, Seriële Softwareen de Adafruit OLED display-bibliotheek. U kunt deze van Github krijgen.
Als dat niet het geval is, installeert u eerst de nieuwste versie van de Arduino IDE en de bibliotheken.
Ik neem ook aan dat u alle de benodigde stuurprogramma's voor uw computer om te herkennen van de ESP8266 hebt geïnstalleerd, zoniet Adafruit heeft een uitstekende tutorial hier. Adafruit ESP8266 Tutorial Dit is van cruciaal belang als dit je eerste keer met behulp van de ESP8266
Vervolgens Kopieer en plak de onderstaande code in de Arduino IDE,
Uw lengte- en breedtegraad aangaan op het gebied van code "Home_LAT =" en "Home_LNG =" hieronder
Compileren en uploaden naar uw esp-12e, In de Arduino IDE zorg om te selecteren uw juiste bord (ESP-12E Module in mijn geval) en de grootte van het geheugen - 4M (3M SPIFFS)
Ga voor een wandeling of het station en Bekijk uw GPS-positie bijwerken, vergeet niet om uw ogen op de weg!
<p>#include <TinyGPS++.h> // Software Serial Library so we can use other Pins for communication with the GPS module</p><p>#include <SoftwareSerial.h > // Adafruit oled library for display</p><p>#include <Adafruit_ssd1306syp.h> // Adafruit oled library for display</p><p>Adafruit_ssd1306syp display(4,5); // OLED display (SDA to Pin 4), (SCL to Pin 5)</p><p>static const int RXPin = 12, TXPin = 13; // Ublox 6m GPS module to GPIO pins 12 and 13 static const uint32_t GPSBaud = 9600; // Ublox GPS default Baud Rate is 9600</p><p>const double Home_LAT = **.******; // enter Your Home Latitude const double Home_LNG = **.******; // enter Your Home Longitude</p><p>TinyGPSPlus gps; // Create an Instance of the TinyGPS++ object called gps SoftwareSerial ss(RXPin, TXPin); // The serial connection to the GPS device</p><p>void setup() { display.initialize(); // Initialize OLED display display.clear(); // Clear OLED display display.setTextSize(1); // Set OLED text size to small display.setTextColor(WHITE); // Set OLED color to White display.setCursor(0,0); // Set cursor to 0,0 display.println("GPS example"); display.println(TinyGPSPlus::libraryVersion()); display.update(); // Update display delay(1500); // Pause 1.5 seconds ss.begin(GPSBaud); // Set Software Serial Comm Speed to 9600 }</p><p>void loop() { display.clear(); display.setCursor(0,0); display.print("Latitude : "); display.println(gps.location.lat(), 5); // Sets the precision at which the location is displayed - currently 5 decimal places display.print("Longitude : "); display.println(gps.location.lng(), 4); display.print("Satellites: "); display.println(gps.satellites.value()); display.print("Elevation : "); display.print(gps.altitude.feet()); display.println("ft"); display.print("Time UTC : "); display.print(gps.time.hour()); // GPS time UTC display.print(":"); display.print(gps.time.minute()); // Minutes display.print(":"); display.println(gps.time.second()); // Seconds display.print("Heading : "); display.println(gps.course.deg()); display.print("Speed : "); display.println(gps.speed.mph()); unsigned long Distance_To_Home = (unsigned long)TinyGPSPlus::distanceBetween(gps.location.lat(),gps.location.lng(),Home_LAT, Home_LNG); display.print("KM to Home: "); // Have TinyGPS Calculate distance to home and display it display.print(Distance_To_Home); display.update(); // Update display delay(200); smartDelay(500); // Run Procedure smartDelay</p><p> if (millis() > 5000 && gps.charsProcessed() < 10) display.println(F("No GPS data received: check wiring")); }</p><p>static void smartDelay(unsigned long ms) // This custom version of delay() ensures that the gps object is being "fed". { unsigned long start = millis(); do { while (ss.available()) gps.encode(ss.read()); } while (millis() - start < ms); }</p>