Requirements :-

(1) Espressiff's ESP-WROOM-32

(2) Authentication key :-

(3) Arduino IDE installed with the latest version of

(4) Code :-

 #ESP32 Web Server satellite maps
 #Gareth aka chiprobot
#include <WiFi.h>
const char* ssid     = "place your wifi id here";
const char* password = "place your password here";
WiFiServer server(80);
void setup()
 // connecting to your WiFi network
    Serial.print("Connecting to ");
WiFi.begin(ssid, password);
    while (WiFi.status() != WL_CONNECTED) {
    Serial.println("WiFi connected");
    Serial.println("IP address: ");    // this is the address to use for viewing the map
void loop(){
 WiFiClient client = server.available();    // listen for incoming clients
  if (client) {                             
    Serial.println("new client");          
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            
      if (client.available()) {             // if there's client data
        char c =;          // read a byte
          if (c == '\n') {                      // check for newline character,
          if (currentLine.length() == 0) {  // if line is blank it means its the end of the client HTTP request
            client.println("<!DOCTYPE html>"); // open wrap the web page
            client.print("<html><head><meta name='viewport' content='initial-scale=1.0'><meta charset='utf-8'><style>#map {height: 100%;}html, body {height: 100%;margin: 0;padding: 0;}</style></head>");
client.print("<body><h1>ESP32 Server Maps 'Pyramids at Giza'</h1><div id='map'></div><script>function initMap(){var map = new google.maps.Map(document.getElementById('map'),{center: {lat: 29.975995, lng: 31.130806},zoom: 16,mapTypeId: 'satellite'});}</script><script async defer src=''></script>");
            client.print("</body></html>"); // close wrap the web page
            // The HTTP response ends with another blank line:
            // break out of the while loop:
          } else {   currentLine = ""; }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c; // add it to the end of the currentLine
         // here you can check for any keypresses if your web server page has any
    // close the connection:
    Serial.println("client disconnected");

The client.print("<body>.....etcetcetc part of the the code is where all the action takes place.


You will need to place your Authentication code into the marked region in the program i.e.


Download the code to the ESP32 and reset , it will search your WIFI port and connects presenting the serial port with an IP address which is placed into your web browser/phone to view the graphic data.

You can adjust the zoom factor and its also possible to overlay roads and even earthquake data.

For some interesting locations substitute these latitude and longitude settings

Grand Prismatic Spring
lat: 44.525049, lng: -110.83819
'Pyramids at Giza'
lat: -19.949156, lng: -69.633842
'Gigante de Atacama'
lat: 36.788458, lng: 138.453505