76 lines
1.8 KiB
C++
76 lines
1.8 KiB
C++
/*
|
|
* This sketch sends random data over UDP on a ESP32 device
|
|
*
|
|
*/
|
|
#include <WiFi.h>
|
|
#include <NetworkUdp.h>
|
|
|
|
// WiFi network name and password:
|
|
const char *networkName = "your-ssid";
|
|
const char *networkPswd = "your-password";
|
|
|
|
//IP address to send UDP data to:
|
|
// either use the ip address of the server or
|
|
// a network broadcast address
|
|
const char *udpAddress = "192.168.0.255";
|
|
const int udpPort = 3333;
|
|
|
|
//Are we currently connected?
|
|
boolean connected = false;
|
|
|
|
//The udp library class
|
|
NetworkUDP udp;
|
|
|
|
void setup() {
|
|
// Initialize hardware serial:
|
|
Serial.begin(115200);
|
|
|
|
//Connect to the WiFi network
|
|
connectToWiFi(networkName, networkPswd);
|
|
}
|
|
|
|
void loop() {
|
|
//only send data when connected
|
|
if (connected) {
|
|
//Send a packet
|
|
udp.beginPacket(udpAddress, udpPort);
|
|
udp.printf("Seconds since boot: %lu", millis() / 1000);
|
|
udp.endPacket();
|
|
}
|
|
//Wait for 1 second
|
|
delay(1000);
|
|
}
|
|
|
|
void connectToWiFi(const char *ssid, const char *pwd) {
|
|
Serial.println("Connecting to WiFi network: " + String(ssid));
|
|
|
|
// delete old config
|
|
WiFi.disconnect(true);
|
|
//register event handler
|
|
WiFi.onEvent(WiFiEvent); // Will call WiFiEvent() from another thread.
|
|
|
|
//Initiate connection
|
|
WiFi.begin(ssid, pwd);
|
|
|
|
Serial.println("Waiting for WIFI connection...");
|
|
}
|
|
|
|
// WARNING: WiFiEvent is called from a separate FreeRTOS task (thread)!
|
|
void WiFiEvent(WiFiEvent_t event) {
|
|
switch (event) {
|
|
case ARDUINO_EVENT_WIFI_STA_GOT_IP:
|
|
//When connected set
|
|
Serial.print("WiFi connected! IP address: ");
|
|
Serial.println(WiFi.localIP());
|
|
//initializes the UDP state
|
|
//This initializes the transfer buffer
|
|
udp.begin(WiFi.localIP(), udpPort);
|
|
connected = true;
|
|
break;
|
|
case ARDUINO_EVENT_WIFI_STA_DISCONNECTED:
|
|
Serial.println("WiFi lost connection");
|
|
connected = false;
|
|
break;
|
|
default: break;
|
|
}
|
|
}
|