These examples are for the Arduino WiFi libraries. These examples will work with: the Arduino MKR1000 board; the MKR1010; Nano 33 IoT board; Uno WiFi rev 2 boards; the Uno R4 WiFi board; and the Nano ESP32 board.
The libraries for these boards should be API-compatible with each other in these examples, though some will have features that others do not. Any library-specific examples in this repository are noted as such.
Many of these examples are also compatible with the ESP8266WiFi library, which has a similar API to these libraries.
Many of these examples also use the ArduinoHttpClient and Arduino_JSON libraries.
All of these examples require you to include the WiFi library for their board at the top of the code. Not all of the examples have been updated for the newest boards, however. Here's a guide to including the right library:
Board | Library | #include line |
---|---|---|
MKR1000 | WiFi101 library | #include <WiFi101.h> |
MKR1010, Nano 33 IoT, and Uno WiFi rev 2 | WiFiNINA library | #include <WiFiNINA.h> |
Uno R4 WiFi | WiFiS3 library | #include <WiFiS3.h> |
Nano ESP32 | WiFi library for the Nano ESP32 | #include <WiFi.h> |
All of these examples expect you to add an arduino_secrets.h
header file to the sketch with the following information:
#define SECRET_SSID "" // your WiFi access point name
#define SECRET_PASS "" // your WiFi password
Some sketches will add other constants to that file as well. These files are ignored by the git repo using .gitignore
.
- WiFi_Reconnect - Shows how to reconnect to the network in the main loop. Also prints out network signal strength (RSSI).
- WiFi_RssiTest - Prints the following to the serial monitor: SSID, BSSID, RSSI, WiFi status, reconnect count.
- WiFi_ConnectionTimeLogger - Logs the health of the network connection to an SD card. Periodically logs: date,time, MAC address, SSID, BSSID, IP Address, signal strength (RSSI), WiFi status, reconnect count, and uptime.
- WiFI_ipAddress - The IP address in the WiFi libraries is a 4-byte array. This example shows how to get it as a String.
- Connecting to Eduroam Can't connect easily to your school's WiFi? Try Eduroam.
- WiFI_ESP_eduroam_connection - This example shows how to connect to eduroam networks using the ESP32 WiFi library.
- HttpClientSimple - a simple example of an HTTP client.
- HttpClientGetJSON - makes an HTTP GET request and parses a JSON response using the Arduino_JSON library. Reads from this server.
- HttpClientRemoteStatusCheck - sends an HTTP request once a minute. Shows how to use the RTC alarm functions to set a timed event. Also listens on a UDP port so you can check when the last successful request was made. Designed to log sensor data over HTTP, while letting you check that it's still working over UDP, so you don't have to disconnect it from the network to see how it's doing.
- HttpSSLClient_OLED - makes an HTTPS call and displays the result on an SSD1306 OLED. Shows some String manipulation techniques as well.
- ConnDevClient - an HTTPS client for the the Connected Devices server, written by Mathura Govindarajan and Don Coleman
- SimplerWebServer - a stripped-down example of how to respond to HTTP requests
- NetworkClientLogger - listens on a number of popular ports (HTTP, SMTP, SSH, etc) and logs to an SD card all client connnection attempts
- UptimeServer - a web server that reports the device's uptime when it receives an HTTP request.
- SensorWebServerWithCSSandJS - a web server that reports reads sensors and delivers them as JSON when it receives an HTTP request. This example also shows how to serve an index.html, styles.css, and script.js file separately.
- simpleTCPClient - makes a TCP connection to a remote * host and sends a message every ten seconds
- simpleTCPServer - listens for TCP connections and responds.
- simpleUDPClient - sends and listens for UDP packets
- UDPEcho - listens for UDP packets and echoes them back
- UDPRelayTimeTest - sends UDP packets, waits for a reply from the remote host, and notes the round trip time.
- TCPRelay - listens for TCP connections and echoes what comes in to a second remote host.
- WifiUDP_OSC_MIDI_Client - sends MIDI noteon and noteoff messages over OSC
- OSC_MIDI_oneKey_improviser - sends MIDI noteon and noteoff messages over OSC, constrained to a particular key, and on the press of a pushbutton