-
-
Save charlesrg/425ec526a05566cceadcebe78860611d to your computer and use it in GitHub Desktop.
#include <WiFi.h> | |
#include <ESPmDNS.h> | |
#include <WiFiUdp.h> | |
#include <ArduinoOTA.h> | |
const char* ssid = "WIFI_SSID"; | |
const char* password = "WIFI_PASSWORD"; | |
const char * udpAddress = "192.168.10.6"; //IP TO SEND UDP Packets with Reading. (UDP so there is no need of a connection state) | |
const int udpPort = 44444; | |
WiFiUDP udp; | |
//variabls for blinking an LED with Millis | |
const int led = 2; // ESP32 Pin to which onboard LED is connected | |
unsigned long previousMillis = 0; // will store last time LED was updated | |
const long interval = 1000; // interval at which to blink (milliseconds) | |
int ledState = LOW; // ledState used to set the LED | |
void setup() { | |
pinMode(led, OUTPUT); | |
Serial.begin(115200); | |
Serial.println("Booting"); | |
WiFi.mode(WIFI_STA); | |
WiFi.begin(ssid, password); | |
while (WiFi.waitForConnectResult() != WL_CONNECTED) { | |
Serial.println("Connection Failed! Rebooting..."); | |
delay(5000); | |
ESP.restart(); | |
} | |
// Port defaults to 3232 | |
// ArduinoOTA.setPort(3232); | |
// Hostname defaults to esp3232-[MAC] | |
// ArduinoOTA.setHostname("myesp32"); | |
// No authentication by default | |
// ArduinoOTA.setPassword("admin"); | |
// Password can be set with it's md5 value as well | |
// MD5(admin) = 21232f297a57a5a743894a0e4a801fc3 | |
// ArduinoOTA.setPasswordHash("21232f297a57a5a743894a0e4a801fc3"); | |
ArduinoOTA | |
.onStart([]() { | |
String type; | |
if (ArduinoOTA.getCommand() == U_FLASH) | |
type = "sketch"; | |
else // U_SPIFFS | |
type = "filesystem"; | |
// NOTE: if updating SPIFFS this would be the place to unmount SPIFFS using SPIFFS.end() | |
Serial.println("Start updating " + type); | |
}) | |
.onEnd([]() { | |
Serial.println("\nEnd"); | |
}) | |
.onProgress([](unsigned int progress, unsigned int total) { | |
Serial.printf("Progress: %u%%\r", (progress / (total / 100))); | |
}) | |
.onError([](ota_error_t error) { | |
Serial.printf("Error[%u]: ", error); | |
if (error == OTA_AUTH_ERROR) Serial.println("Auth Failed"); | |
else if (error == OTA_BEGIN_ERROR) Serial.println("Begin Failed"); | |
else if (error == OTA_CONNECT_ERROR) Serial.println("Connect Failed"); | |
else if (error == OTA_RECEIVE_ERROR) Serial.println("Receive Failed"); | |
else if (error == OTA_END_ERROR) Serial.println("End Failed"); | |
}); | |
ArduinoOTA.begin(); | |
Serial.println("Ready"); | |
Serial.print("IP address: "); | |
Serial.println(WiFi.localIP()); | |
udp.begin(udpPort); | |
} | |
void loop() { | |
ArduinoOTA.handle(); | |
//loop to blink without delay | |
unsigned long currentMillis = millis(); | |
if (currentMillis - previousMillis >= interval) { | |
// save the last time you blinked the LED | |
previousMillis = currentMillis; | |
// if the LED is off turn it on and vice-versa: | |
ledState = not(ledState); | |
// set the LED with the ledState of the variable: | |
digitalWrite(led, ledState); | |
Serial.println(touchRead(T0)); // get value using T0 | |
//data will be sent to server | |
uint8_t buffer[50] = "Reading: \n"; | |
char cstr[50]; | |
sprintf_P(cstr, (PGM_P)F("T0 Level: %d, T3 Level %d.\n"),touchRead(T0),touchRead(T3)); | |
//send hello world to server | |
udp.beginPacket(udpAddress, udpPort); | |
//udp.write(buffer,sizeof(buffer) ); | |
//udp.print(touchRead(T0)); | |
udp.print(cstr); | |
udp.endPacket(); | |
memset(buffer, 0, 50); | |
} | |
} | |
//This code gave 23 levels without grounded strip and 29 levels grounded |
how did you guys get the range up to 700 on arduino ide??
Hello,
Thank you for your post. I am trying to run this code directly from my pc and not through a wireless adapter. Will it work? Also, I cant find the ESPmDNS on the library manager. Any suggestions? I however found MDNS_Generic. Is that the same by any chance?
Thank you for your time.
Edit: So I solved this problem by manually adding the ESPmDNS library from https://github.com/espressif/arduino-esp32/tree/master/libraries/ESPmDNS
Now I have this error
Arduino: 1.8.19 (Windows 7), Board: "Arduino Uno"
In file included from C:\Users*********\Desktop\sketch_dec27a\sketch_dec27a.ino:2:0:
C:\Users**********\Documents\Arduino\libraries\ESPmDNS\src/ESPmDNS.h:45:10: fatal error: IPv6Address.h: No such file or directory
#include "IPv6Address.h"^~~~~~~~~~~~~~~
compilation terminated.
exit status 1
Error compiling for board Arduino Uno.
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.Any help is appreciated.
Thank you
This might be too late for you, but I'll chime in, in case anyone else is curious: I assume you're getting the error because an arduino Uno doesn't have a wifi module onboard, whereas an esp32 does.
Yes, wires straight to ESP32. I tried it on a Home Depot bucket with the copper tape and it worked as well.