> For the complete documentation index, see [llms.txt](https://docs.antares.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.antares.id/en/code-and-library-examples/esp32-wi-fi/esp32-wi-fi-http-protocol/retrieve-the-last-data-from-antares-server-with-http-protocol.md).

# Retrieve the Last Data from Antares Server with HTTP Protocol

In this project, you will be directed to retrieve data from **Antares IoT Platform** to **Lynx-32 Development Board** using Wi-Fi connectivity with HTTP protocol.

## Prerequisites

The materials required follow the **General Prerequisites** on the previous page. If you have not prepared the requirements on that page, then you can visit the following page.

{% content-ref url="/pages/Zpk3iTltrVZubNhHlGNm" %}
[General Prerequisites ESP32 Wi-Fi](/en/code-and-library-examples/esp32-wi-fi/general-prerequisites-esp32-wi-fi.md)
{% endcontent-ref %}

The additional materials specific to this project are as follows.

1. Antares ESP HTTP Library. This documentation uses the **Antares ESP HTTP library version 1.4.0.**

{% hint style="info" %}
If you have not installed **Antares ESP HTTP 1.4.0**, please follow these steps.
{% endhint %}

## Follow These Steps

### **1.** Launch the Arduino IDE application

### **2.** Opening Sample Programme

{% hint style="info" %}
You can open the programme code in the Arduino IDE via **File > Examples > Antares ESP HTTP > AntaresGetLatestData.**
{% endhint %}

The following is the AntaresGetLatestData example programme code.

```arduino
/*
  This code will fetch the latest data from your antares project device.
  Your Antares project device must have a structure like this:
  (Note that nesting the JSON object can only be done up to 2 levels using this library)
  {
    "temperature": some-integer,
    "humidity": some-integer,
    "wind_speed": some-float,
    "rain_level": some-float,
    "location" : {
      "latitude": "static-string",
      "longitude": "static-string"
    }
  }
  For more information please visit https://antares.id/id/docs.html
*/

#include <AntaresESPHTTP.h>

#define ACCESSKEY "YOUR-ACCESS-KEY"       // Replace with your Antares account access key
#define WIFISSID "YOUR-WIFI-SSID"         // Replace with your Wi-Fi SSID
#define PASSWORD "YOUR-WIFI-PASSWORD"     // Replace with your Wi-Fi password

#define projectName "YOUR-APPLICATION-NAME"   // Replace with the Antares application name that was created
#define deviceName "YOUR-DEVICE-NAME"     // Replace with the Antares device name that was created

AntaresESPHTTP antares(ACCESSKEY);

void setup() {
    Serial.begin(115200);
    antares.setDebug(true);
    antares.wifiConnection(WIFISSID, PASSWORD);
}

void loop() {
  // Get the latest data from your Antares device
  antares.get(projectName, deviceName);

  // Check if we're actually getting data
  if(antares.getSuccess()) {
    int temp = antares.getInt("temperature");
    int hum = antares.getInt("humidity");
    float windsp = antares.getFloat("wind_speed");
    float rainlv = antares.getFloat("rain_level");
    String lat = antares.getString("location", "latitude");
    String lon = antares.getString("location", "longitude");

    Serial.println("Temperature: " + String(temp));
    Serial.println("Humidity: " + String(hum));
    Serial.println("Wind speed: " + String(windsp));
    Serial.println("Rain level: " + String(rainlv));
    Serial.println("Latitude: " + lat);
    Serial.println("Longitude: " + lon);
  }
  delay(5000);
}

```

### **3.** Set HTTP Parameters in Programme Code

Change the HTTP Protocol parameters in the following variables **\*ACCESSKEY, \*WIFISSID, \*PASSWORD, \*projectName**, and **\*deviceName**. Adjust to the parameters in the Antares console.

```arduino
#define ACCESSKEY "YOUR-ACCESS-KEY"       // Replace with your Antares account access key
#define WIFISSID "YOUR-WIFI-SSID"         // Replace with your Wi-Fi SSID
#define PASSWORD "YOUR-WIFI-PASSWORD"     // Replace with your Wi-Fi password

#define projectName "YOUR-APPLICATION-NAME"   // Replace with the Antares application name that was created
#define deviceName "YOUR-DEVICE-NAME"     // Replace with the Antares device name that was created
```

{% hint style="info" %}
The **\*Access key** parameter is obtained from your Antares account page.
{% endhint %}

<figure><img src="/files/t1JjucrVQKE7og1U3IPk" alt=""><figcaption><p>Access Key Location on Antares Account Page</p></figcaption></figure>

{% hint style="info" %}
The **WIFISSID** parameter is obtained from the **Wi-Fi/Hotspot** name that will be used by the **Lynx-32 Development Board**. An example is shown below.
{% endhint %}

<figure><img src="/files/thBe0S7yLPkdG1CApqiK" alt=""><figcaption><p>WIFISSID</p></figcaption></figure>

{% hint style="info" %}
The **\*PASSWORD** parameter is obtained from the **Wi-Fi password** you are currently using.
{% endhint %}

{% hint style="info" %}
The parameters **\*projectName** and **\*deviceName** are obtained from the **Application Name** and **Device Name** that have been created in the Antares account.
{% endhint %}

<figure><img src="/files/BtE9uMChlz6hItvKpByj" alt=""><figcaption><p>Application Name Display</p></figcaption></figure>

<figure><img src="/files/oswyQgkU7iQRu0TNkJhS" alt=""><figcaption><p>Device Name Display</p></figcaption></figure>

### **4. Compile and Upload Program**

Connect the **Lynx-32** with your computer and make sure the **Communication Port** is read.

{% hint style="info" %}
On Windows operating systems the check can be done via **Device Manager**. If your **Lynx-32** is read then the **USB-Serial CH340** appears with the port adjusting the port availability (in this case it reads **COM4**).
{% endhint %}

<figure><img src="/files/wVczFshxTS0YGmWbit2a" alt=""><figcaption><p>Device Manager Display</p></figcaption></figure>

Set up the **ESP32** board by clicking **Tools > Board > esp32** in the Arduino IDE, then make sure the **ESP32 Dev Module** is used. Select the port according to the communication port that is read (in this case COM4). The result will look like the following image.

<figure><img src="/files/SlXJoiws3k8MjVwqyeyR" alt="" width="464"><figcaption><p>Display of Board Specifications and Ports Used</p></figcaption></figure>

After all the setup is complete, upload the programme by pressing the arrow icon as shown below. Wait for the compile and upload process to finish

<figure><img src="/files/szz2BdmDFUxDXIaVqsnP" alt=""><figcaption><p>Compile Icon for Tick and Upload Icon for Arrow</p></figcaption></figure>

{% hint style="info" %}
**The Tick icon** on the Arduino IDE is just the verify process. Usually used to C**ompile** the programme to find out whether there are errors or not. \
**The Arrow icon** on the Arduino IDE is the verify and upload process. Usually used to **Compile** the programme as well as Flash the programme to the target board.
{% endhint %}

If the programme upload is successful, it will look like the following image.

<figure><img src="/files/QJ3w9LjikeuIzXT1c7O8" alt=""><figcaption><p>Arduino IDE page image after successful upload.</p></figcaption></figure>

{% hint style="danger" %}
Make sure the **serial baud rate** matches the value defined in the programme code. If the **serial baud rate** is not the same between **the programme code** and **the serial monitor**, the ASCII characters will not be read properly.
{% endhint %}

<figure><img src="/files/9nIiYwguzD1U6sroLlhm" alt=""><figcaption><p>Serial Monitor Image</p></figcaption></figure>

### **5.** Check Data in Antares

After uploading the programme successfully, then open the device antares page and see if the data has been successfully sent.

<figure><img src="/files/u8sgcayXobNX1L85pTl7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/XQpiqThVHDZw7TruVUld" alt=""><figcaption></figcaption></figure>
