103 lines
2.4 KiB
Arduino
103 lines
2.4 KiB
Arduino
|
/*
|
||
|
* This sketch sends random data over UDP on a ESP32 device
|
||
|
*
|
||
|
*/
|
||
|
#include <WiFi.h>
|
||
|
#include <WiFiUdp.h>
|
||
|
#define id 4
|
||
|
|
||
|
|
||
|
// WiFi network name and password:
|
||
|
const char * networkName = "Musica_para_electroimanes";
|
||
|
const char * networkPswd = "magnetic";
|
||
|
|
||
|
//const char * networkName = "HANGAR_convidats";
|
||
|
//const char * networkPswd = "convidatsHANGAR";
|
||
|
|
||
|
//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.4.255";
|
||
|
|
||
|
//const char * udpAddress = "172.24.7.106";
|
||
|
|
||
|
unsigned int udpPort[7] = { 2345, 2346, 2347, 2348, 2349, 2350, 2351 }; // TO SET SENDING PORT PLAYER
|
||
|
|
||
|
//Are we currently connected?
|
||
|
boolean connected = false;
|
||
|
|
||
|
//The udp library class
|
||
|
WiFiUDP udp;
|
||
|
|
||
|
void setup(){
|
||
|
// Initilize hardware serial:
|
||
|
Serial.begin(2000000);
|
||
|
pinMode(13, OUTPUT);
|
||
|
digitalWrite(13, LOW);
|
||
|
//Connect to the WiFi network
|
||
|
connectToWiFi(networkName, networkPswd);
|
||
|
}
|
||
|
|
||
|
char buffer[2] = "0";
|
||
|
|
||
|
unsigned long time_off = millis();
|
||
|
boolean state = false;
|
||
|
|
||
|
void on_solenoide()
|
||
|
{
|
||
|
//Serial.println("Hola");
|
||
|
time_off = millis();
|
||
|
state = true;
|
||
|
digitalWrite(13, HIGH);
|
||
|
}
|
||
|
|
||
|
void off_solenoide()
|
||
|
{
|
||
|
//Serial.println("adios");
|
||
|
state = false;
|
||
|
digitalWrite(13, LOW);
|
||
|
}
|
||
|
|
||
|
void loop(){
|
||
|
if (((millis()-time_off)>50)&&(state==true)) off_solenoide();
|
||
|
|
||
|
memset(buffer, 0, 1);
|
||
|
udp.parsePacket();
|
||
|
if(udp.read(buffer, 1) > 0){
|
||
|
if (buffer[0]=='1') on_solenoide();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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);
|
||
|
|
||
|
//Initiate connection
|
||
|
WiFi.begin(ssid, pwd);
|
||
|
|
||
|
Serial.println("Waiting for WIFI connection...");
|
||
|
}
|
||
|
|
||
|
//wifi event handler
|
||
|
void WiFiEvent(WiFiEvent_t event){
|
||
|
switch(event) {
|
||
|
case SYSTEM_EVENT_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[id]);
|
||
|
connected = true;
|
||
|
break;
|
||
|
case SYSTEM_EVENT_STA_DISCONNECTED:
|
||
|
Serial.println("WiFi lost connection");
|
||
|
connected = false;
|
||
|
break;
|
||
|
}
|
||
|
}
|