latinet:unicaes:workshops:communication-23
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| latinet:unicaes:workshops:communication-23 [2023/10/22 22:20] – rolf.becker | latinet:unicaes:workshops:communication-23 [2024/09/10 20:39] (current) – harley.lara | ||
|---|---|---|---|
| Line 8: | Line 8: | ||
| ===== 2. ESP8266 and WiFi ===== | ===== 2. ESP8266 and WiFi ===== | ||
| - | Next, we'll take a closer look at connecting the ESP8266 to WiFi. This step is crucial for enabling wireless communication, | + | Next, we'll take a closer look at connecting the ESP8266 to WiFi. This step is crucial for enabling wireless communication, |
| + | |||
| + | In this example code, you will first of all connect to a WiFi network and then try to access a predefined API. This API is the root of our public weather station API. You can find out more about the project right here: [[eolab: | ||
| <file c++ wifi-http-api-example.ino> | <file c++ wifi-http-api-example.ino> | ||
| #include < | #include < | ||
| #include < | #include < | ||
| + | |||
| + | const uint16_t HTTP_PORT = 443; // Use 443 for HTTPS and 80 for HTTP | ||
| // Replace with your WiFi credentials | // Replace with your WiFi credentials | ||
| - | const char* ssid = "wifi-ssid"; | + | const char* SSID = "iotlab"; |
| - | const char* password | + | const char* PASSWORD |
| // Replace with your API details | // Replace with your API details | ||
| - | const char* apiHost | + | const char* API_HOST |
| - | const char* apiEndpoint | + | const char* API_ENDPOINT |
| + | |||
| + | const uint8_t PERIOD_MINUTES = 1; | ||
| // Create an instance of WiFiClientSecure | // Create an instance of WiFiClientSecure | ||
| - | WiFiClientSecure | + | WiFiClientSecure |
| void setup() { | void setup() { | ||
| Serial.begin(115200); | Serial.begin(115200); | ||
| - | | + | |
| // Connect to Wi-Fi | // Connect to Wi-Fi | ||
| - | WiFi.begin(ssid, password); | + | WiFi.begin(SSID, PASSWORD); |
| - | + | ||
| - | Serial.print(" | + | Serial.print(" |
| - | Serial.print(ssid); | + | Serial.print(SSID); |
| - | + | ||
| while (WiFi.status() != WL_CONNECTED) { | while (WiFi.status() != WL_CONNECTED) { | ||
| delay(1000); | delay(1000); | ||
| Serial.print(" | Serial.print(" | ||
| } | } | ||
| - | | + | |
| Serial.println(" | Serial.println(" | ||
| // Set the client to verify the server' | // Set the client to verify the server' | ||
| - | | + | |
| // Give the client a chance to perform the handshake | // Give the client a chance to perform the handshake | ||
| Line 50: | Line 56: | ||
| void loop() { | void loop() { | ||
| if (WiFi.status() == WL_CONNECTED) { | if (WiFi.status() == WL_CONNECTED) { | ||
| + | |||
| + | wifi_client.connect(API_HOST, | ||
| // Make an HTTPS GET request | // Make an HTTPS GET request | ||
| - | | + | |
| - | client.print(String("GET ") + apiEndpoint | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| // Wait for the response | // Wait for the response | ||
| - | while (client.connected()) { | + | while (wifi_client.connected()) { |
| - | | + | |
| - | if (line == " | + | |
| - | | + | char c = wifi_client.read(); |
| - | | + | |
| } | } | ||
| } | } | ||
| - | | + | |
| - | | + | |
| - | while (client.available()) { | + | |
| - | String response = client.readStringUntil(' | + | |
| - | Serial.println(response); | + | |
| - | } | + | |
| - | + | ||
| - | client.stop(); | + | |
| } | } | ||
| - | | + | |
| // Wait for a while before making the next request | // Wait for a while before making the next request | ||
| - | delay(5000); | + | delay(PERIOD_MINUTES * 60 * 1000); // convert from min to sec (60) and from sec to ms (1000) |
| } | } | ||
| - | |||
| </ | </ | ||
| - | In this example code, you will first of all connect to a WiFi network and then try to access a predefined API. This API is the root of our public weather station API. You can find out more about the project right here: [[weather_station: | + | ===== 3. Our first MQTT Publish ===== |
| - | ===== 3. Our first MQTT Publish ===== | ||
| Stepping ahead, you'll have the chance to implement your first MQTT publish from the ESP8266. While the following example provides a static demonstration, | Stepping ahead, you'll have the chance to implement your first MQTT publish from the ESP8266. While the following example provides a static demonstration, | ||
| - | PubSubClient | + | To start, search and install the library "PubSubClient |
| <file c++ mqtt-publish.ino> | <file c++ mqtt-publish.ino> | ||
latinet/unicaes/workshops/communication-23.1698006037.txt.gz · Last modified: 2023/10/22 22:20 by rolf.becker