How to add a GPS sensor to ESP32 for Wokwi?

 To add a GPS sensor to an ESP32 in Wokwi, follow these steps:




 Step-by-Step Guide

1. Open Wokwi

Go to https://wokwi.com and start a new project with ESP32.


2. Add the GPS Module

Wokwi supports a virtual "NEO-6M GPS module".

You can add it in the diagram.json file or via the visual editor.

Example diagram.json:

json

{ "version": 1, "author": "you", "editor": "wokwi", "parts": [ { "type": "wokwi-esp32-devkit-v1", "id": "esp32", "top": 100, "left": 50 }, { "type": "wokwi-gps", "id": "gps1", "top": 100, "left": 250 } ], "connections": [ [ "gps1:TX", "esp32:RX2", "green", [ "v0" ] ], [ "gps1:RX", "esp32:TX2", "green", [ "v0" ] ], [ "gps1:GND", "esp32:GND", "black", [ "v0" ] ], [ "gps1:VCC", "esp32:3V3", "red", [ "v0" ] ] ] }

This connects the GPS module to UART2 on the ESP32 (GPIO 16/17 by default on Wokwi).


3. Arduino Code Example

Use a library like TinyGPSPlus to parse GPS data:

cpp

#include <TinyGPSPlus.h> #include <HardwareSerial.h> TinyGPSPlus gps; HardwareSerial gpsSerial(2); // Use UART2 (GPIO16=RX, GPIO17=TX) void setup() { Serial.begin(115200); gpsSerial.begin(9600, SERIAL_8N1, 16, 17); // Baud rate and pins Serial.println("GPS Test"); } void loop() { while (gpsSerial.available() > 0) { gps.encode(gpsSerial.read()); } if (gps.location.isUpdated()) { Serial.print("Latitude: "); Serial.println(gps.location.lat(), 6); Serial.print("Longitude: "); Serial.println(gps.location.lng(), 6); } }

 Add Required Library

Make sure to add TinyGPSPlus in the PlatformIO or Arduino library manager if you're exporting or using offline tools. In Wokwi, it will be auto-loaded.


 Simulation Tips in Wokwi

  • Click the GPS module and edit the "GPS Data Source" — you can load a custom .nmea file or simulate movement.

  • Default GPS data simulates a fixed position with realistic timing.

评论

此博客中的热门博文

Detailed Explanation of STM32 HAL Library Clock System

How to remove write protection of STM32 chip?

The automatic white balance algorithm of Raspberry Pi