Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit c81d76f

Browse files
Merge pull request #100 from pennam/unor4-ota
Uno R4 WiFi OTA update
2 parents 5101023 + 25e1043 commit c81d76f

File tree

15 files changed

+638
-7
lines changed

15 files changed

+638
-7
lines changed

‎.github/workflows/compile-examples.yml‎

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,10 +86,12 @@ jobs:
8686
fqbn: "arduino:renesas_uno:unor4wifi"
8787
additional-sketch-paths: |
8888
- libraries/WiFiS3
89+
- libraries/OTAUpdate
8990
- board:
9091
fqbn: "arduino-git:renesas:unor4wifi"
9192
additional-sketch-paths: |
9293
- libraries/WiFiS3
94+
- libraries/OTAUpdate
9395
9496
steps:
9597
- name: Checkout repository

‎libraries/OTAUpdate/.unor4_only‎

Whitespace-only changes.
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
/*
2+
OTA
3+
4+
This sketch demonstrates how to make an OTA Update on the UNO R4 WiFi.
5+
Upload the sketch and wait for the invasion!
6+
7+
*/
8+
9+
10+
#include "WiFiS3.h"
11+
#include "OTAUpdate.h"
12+
#include "root_ca.h"
13+
#include "arduino_secrets.h"
14+
15+
char ssid[] = SECRET_SSID; // your network SSID (name)
16+
char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP)
17+
18+
int status = WL_IDLE_STATUS;
19+
20+
OTAUpdate ota;
21+
static char const OTA_FILE_LOCATION[] = "https://downloads.arduino.cc/ota/UNOR4WIFI_Animation.ota";
22+
23+
/* -------------------------------------------------------------------------- */
24+
void setup() {
25+
/* -------------------------------------------------------------------------- */
26+
//Initialize serial and wait for port to open:
27+
Serial.begin(115200);
28+
while (!Serial) {
29+
; // wait for serial port to connect. Needed for native USB port only
30+
}
31+
32+
// check for the Wi-Fi module:
33+
if (WiFi.status() == WL_NO_MODULE) {
34+
Serial.println("Communication with Wi-Fi module failed!");
35+
// don't continue
36+
while (true);
37+
}
38+
39+
String fv = WiFi.firmwareVersion();
40+
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
41+
Serial.println("Please upgrade the firmware");
42+
}
43+
44+
// attempt to connect to Wi-Fi network:
45+
while (status != WL_CONNECTED) {
46+
Serial.print("Attempting to connect to SSID: ");
47+
Serial.println(ssid);
48+
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
49+
status = WiFi.begin(ssid, pass);
50+
51+
// wait 1 seconds for connection:
52+
delay(1000);
53+
}
54+
55+
printWiFiStatus();
56+
57+
OTAUpdate::Error ret = OTAUpdate::Error::None;
58+
ret = ota.begin("/update.bin");
59+
if(ret != OTAUpdate::Error::None) {
60+
Serial.println("ota.begin() error: ");
61+
Serial.println((int)ret);
62+
return;
63+
}
64+
ret = ota.setCACert(root_ca);
65+
if(ret != OTAUpdate::Error::None) {
66+
Serial.println("ota.setCACert() error: ");
67+
Serial.println((int)ret);
68+
return;
69+
}
70+
if(ota.download(OTA_FILE_LOCATION, "/update.bin") <= 0) {
71+
Serial.println("ota.download() error: ");
72+
Serial.println((int)ret);
73+
return;
74+
}
75+
ret = ota.verify();
76+
if(ret != OTAUpdate::Error::None) {
77+
Serial.println("ota.verify() error: ");
78+
Serial.println((int)ret);
79+
return;
80+
}
81+
82+
ret = ota.update("/update.bin");
83+
if(ret != OTAUpdate::Error::None) {
84+
Serial.println("ota.update() error: ");
85+
Serial.println((int)ret);
86+
return;
87+
}
88+
}
89+
90+
/* -------------------------------------------------------------------------- */
91+
void loop() {
92+
/* -------------------------------------------------------------------------- */
93+
delay(1000);
94+
}
95+
96+
/* -------------------------------------------------------------------------- */
97+
void printWiFiStatus() {
98+
/* -------------------------------------------------------------------------- */
99+
// print the SSID of the network you're attached to:
100+
Serial.print("SSID: ");
101+
Serial.println(WiFi.SSID());
102+
103+
// print your board's IP address:
104+
IPAddress ip = WiFi.localIP();
105+
Serial.print("IP Address: ");
106+
Serial.println(ip);
107+
108+
// print the received signal strength:
109+
long rssi = WiFi.RSSI();
110+
Serial.print("signal strength (RSSI):");
111+
Serial.print(rssi);
112+
Serial.println(" dBm");
113+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define SECRET_SSID ""
2+
#define SECRET_PASS ""
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
const char* root_ca = \
2+
/* Baltimore CyberTrust Root */
3+
"-----BEGIN CERTIFICATE-----\n" \
4+
"MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE\n" \
5+
"ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li\n" \
6+
"ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC\n" \
7+
"SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs\n" \
8+
"dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME\n" \
9+
"uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB\n" \
10+
"UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C\n" \
11+
"G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9\n" \
12+
"XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr\n" \
13+
"l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI\n" \
14+
"VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB\n" \
15+
"BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh\n" \
16+
"cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5\n" \
17+
"hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa\n" \
18+
"Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H\n" \
19+
"RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp\n" \
20+
"-----END CERTIFICATE-----\n" \
21+
/* Amazon Root CA 1 */
22+
"-----BEGIN CERTIFICATE-----\n" \
23+
"MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD\n" \
24+
"VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1\n" \
25+
"MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv\n" \
26+
"bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC\n" \
27+
"ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH\n" \
28+
"FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ\n" \
29+
"gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t\n" \
30+
"dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce\n" \
31+
"VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB\n" \
32+
"/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3\n" \
33+
"DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM\n" \
34+
"CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy\n" \
35+
"8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa\n" \
36+
"2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2\n" \
37+
"xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5\n" \
38+
"-----END CERTIFICATE-----\n" \
39+
/* Amazon Root CA 2 */
40+
"-----BEGIN CERTIFICATE-----\n" \
41+
"MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD\n" \
42+
"VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1\n" \
43+
"MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv\n" \
44+
"bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC\n" \
45+
"ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4\n" \
46+
"kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp\n" \
47+
"N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9\n" \
48+
"AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd\n" \
49+
"fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx\n" \
50+
"kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS\n" \
51+
"btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0\n" \
52+
"Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN\n" \
53+
"c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+\n" \
54+
"3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw\n" \
55+
"DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA\n" \
56+
"A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY\n" \
57+
"+gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE\n" \
58+
"YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW\n" \
59+
"xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ\n" \
60+
"gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW\n" \
61+
"aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV\n" \
62+
"Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3\n" \
63+
"KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi\n" \
64+
"JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw=\n" \
65+
"-----END CERTIFICATE-----\n" \
66+
/* Amazon Root CA 3 */
67+
"-----BEGIN CERTIFICATE-----\n" \
68+
"MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG\n" \
69+
"EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy\n" \
70+
"NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ\n" \
71+
"MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB\n" \
72+
"f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr\n" \
73+
"Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43\n" \
74+
"rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc\n" \
75+
"eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw==\n" \
76+
"-----END CERTIFICATE-----\n" \
77+
/* Amazon Root CA 4 */
78+
"-----BEGIN CERTIFICATE-----\n" \
79+
"MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG\n" \
80+
"EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy\n" \
81+
"NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ\n" \
82+
"MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN\n" \
83+
"/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri\n" \
84+
"83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV\n" \
85+
"HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA\n" \
86+
"MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1\n" \
87+
"AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA==\n" \
88+
"-----END CERTIFICATE-----\n";
Lines changed: 133 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
/*
2+
OTA
3+
4+
This sketch demonstrates how to make the UNO R4 WiFi self-update its Wi-Fi module
5+
firmware via OTA. Upload the Sketch and wait for Serial detach. After the update
6+
the new Wi-Fi firmware version will be 98.98.98
7+
8+
WARNING: running this sketch will load a test Wi-Fi firmware version on the UNO R4
9+
WiFi module. To restore a production firmware use the Arduino Firmware Uploader or
10+
the update packages available here:
11+
12+
https://github.com/arduino/uno-r4-wifi-usb-bridge/releases
13+
14+
*/
15+
16+
17+
#include "WiFiS3.h"
18+
#include "OTAUpdate.h"
19+
#include "root_ca.h"
20+
#include "arduino_secrets.h"
21+
22+
char ssid[] = SECRET_SSID; // your network SSID (name)
23+
char pass[] = SECRET_PASS; // your network password (use for WPA, or use as key for WEP)
24+
25+
int status = WL_IDLE_STATUS;
26+
27+
OTAUpdate ota;
28+
static char const OTA_FILE_LOCATION[] = "https://downloads.arduino.cc/ota/UNOR4USBBridge.ino.ota";
29+
30+
/* -------------------------------------------------------------------------- */
31+
void setup() {
32+
/* -------------------------------------------------------------------------- */
33+
//Initialize serial and wait for port to open:
34+
Serial.begin(115200);
35+
while (!Serial) {
36+
; // wait for serial port to connect. Needed for native USB port only
37+
}
38+
39+
// check for the Wi-Fi module:
40+
if (WiFi.status() == WL_NO_MODULE) {
41+
Serial.println("Communication with Wi-Fi module failed!");
42+
// don't continue
43+
while (true);
44+
}
45+
46+
String fv = WiFi.firmwareVersion();
47+
if (fv < WIFI_FIRMWARE_LATEST_VERSION) {
48+
Serial.println("Please upgrade the firmware");
49+
}
50+
51+
Serial.print("Current Wi-Fi firmware version: ");
52+
Serial.println(fv);
53+
54+
// attempt to connect to Wi-Fi network:
55+
while (status != WL_CONNECTED) {
56+
Serial.print("Attempting to connect to SSID: ");
57+
Serial.println(ssid);
58+
// Connect to WPA/WPA2 network. Change this line if using open or WEP network:
59+
status = WiFi.begin(ssid, pass);
60+
61+
// wait 1 seconds for connection:
62+
delay(1000);
63+
}
64+
65+
printWiFiStatus();
66+
67+
OTAUpdate::Error ret = OTAUpdate::Error::None;
68+
ret = ota.begin();
69+
if(ret != OTAUpdate::Error::None) {
70+
Serial.println("ota.begin() error: ");
71+
Serial.println((int)ret);
72+
return;
73+
}
74+
ret = ota.setCACert(root_ca);
75+
if(ret != OTAUpdate::Error::None) {
76+
Serial.println("ota.setCACert() error: ");
77+
Serial.println((int)ret);
78+
return;
79+
}
80+
if(ota.download(OTA_FILE_LOCATION) <= 0) {
81+
Serial.println("ota.download() error: ");
82+
Serial.println((int)ret);
83+
return;
84+
}
85+
ret = ota.verify();
86+
if(ret != OTAUpdate::Error::None) {
87+
Serial.println("ota.verify() error: ");
88+
Serial.println((int)ret);
89+
return;
90+
}
91+
ret = ota.update();
92+
if(ret != OTAUpdate::Error::None) {
93+
Serial.println("ota.update() error: ");
94+
Serial.println((int)ret);
95+
return;
96+
}
97+
ret = ota.reset();
98+
if(ret != OTAUpdate::Error::None) {
99+
Serial.println("ota.reset() error: ");
100+
Serial.println((int)ret);
101+
return;
102+
}
103+
}
104+
105+
106+
/* -------------------------------------------------------------------------- */
107+
void loop() {
108+
/* -------------------------------------------------------------------------- */
109+
110+
String fv = WiFi.firmwareVersion();
111+
Serial.print("Updated Wi-Fi firmware version: ");
112+
Serial.println(fv);
113+
delay(1000);
114+
}
115+
116+
/* -------------------------------------------------------------------------- */
117+
void printWiFiStatus() {
118+
/* -------------------------------------------------------------------------- */
119+
// print the SSID of the network you're attached to:
120+
Serial.print("SSID: ");
121+
Serial.println(WiFi.SSID());
122+
123+
// print your board's IP address:
124+
IPAddress ip = WiFi.localIP();
125+
Serial.print("IP Address: ");
126+
Serial.println(ip);
127+
128+
// print the received signal strength:
129+
long rssi = WiFi.RSSI();
130+
Serial.print("signal strength (RSSI):");
131+
Serial.print(rssi);
132+
Serial.println(" dBm");
133+
}
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#define SECRET_SSID ""
2+
#define SECRET_PASS ""

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /