Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*|--------------------------------------------------|*/
- /*| Téma: Inteligentné relé v sieti Eduroam |*/
- /*| Offline verzia v LAN sieti a ovládaním cez UDP |*/
- /*| Vyhotovil: Martin Chlebovec 3. roč. PC. siete |*/
- /*| Vedúci práce: prof. Ing. Miloš Drutarovský, CSc. |*/
- /*| Adresa webu: https://www.esp32.sk |*/
- /*|--------------------------------------------------|*/
- #include "WiFi.h" //hlavickovy subor WiFi funkcii
- #include "AsyncUDP.h" //hlavickovy subor Asynchronnych UDP funkcii
- #include "esp_wpa2.h" //hlavickovy subor kryptofunkcii pre Enterprise WiFi siete
- #define ANONYMOUS_EAP_IDENTITY "anonymous@tuke.sk" //anonymous@tuke.sk - anonymna identita
- #define EAP_IDENTITY "id@tuke.sk" //-login@tuke.sk - identita pouzivatela
- #define EAP_PASSWORD "heslo" //heslo pouzivatela v sieti eduroam
- const char* ssid = "eduroam"; // eduroam SSID
- const int rele = 23; //nastavenie premennej na GPIO pin 23
- const int led = 18; //nastavenie premennej na GPIO pin 23
- AsyncUDP udp; //objekt udp pre funkcie v programe
- void setup()
- {
- Serial.begin(115200); //baud/s
- pinMode(rele, OUTPUT); //GPIO ako vystup
- pinMode(led, OUTPUT); //GPIO ako vystup
- WiFi.disconnect(true); //odpoj sa od wifi pred nastavenim noveho pripojenia
- WiFi.mode(WIFI_STA); //nastavenie ESP32 ako klienta v sieti
- esp_wifi_sta_wpa2_ent_set_identity((uint8_t *)ANONYMOUS_EAP_IDENTITY, strlen(ANONYMOUS_EAP_IDENTITY)); //nastavenie ano. identity
- esp_wifi_sta_wpa2_ent_set_username((uint8_t *)EAP_IDENTITY, strlen(EAP_IDENTITY)); //nastavenie identity
- esp_wifi_sta_wpa2_ent_set_password((uint8_t *)EAP_PASSWORD, strlen(EAP_PASSWORD)); //nastavenie hesla
- esp_wpa2_config_t config = WPA2_CONFIG_INIT_DEFAULT(); //pociatocna konfiguracia so zakladnymi parametrami (Enterprise)
- esp_wifi_sta_wpa2_ent_enable(&config); //nakonfiguruj sietove pripojenie
- WiFi.begin(ssid); //pripoj sa na WiFi siet eduroam
- while (WiFi.status() != WL_CONNECTED) {
- digitalWrite(led, LOW);
- delay(500); // pauza 500ms
- Serial.print("."); // vypis znaku
- }
- digitalWrite(led, HIGH);
- if (udp.listen(1234)) { //asynchronne cakanie na porte
- Serial.print("UDP Listening on IP: ");
- Serial.println(WiFi.localIP());
- udp.onPacket([](AsyncUDPPacket packet) {
- Serial.print("UDP Packet Type: ");
- Serial.print(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast"); //vypis typ packetu
- Serial.print(", From: ");
- Serial.print(packet.remoteIP()); //IP odosielacieho zariadenia
- Serial.print(":");
- Serial.print(packet.remotePort()); //port odosielacieho zariadenia
- Serial.print(", To: ");
- Serial.print(packet.localIP()); //IP adresa ESP v LAN sieti
- Serial.print(":");
- Serial.print(packet.localPort()); //port, na ktorom ESP pocuva
- Serial.print(", Length: ");
- Serial.print(packet.length()); //dlzka packetu
- Serial.print(", Data: ");
- Serial.write(packet.data(), packet.length());
- Serial.println();
- String myString = (const char*)packet.data();
- if (myString == "ZAP") {
- Serial.println("Zapinam rele");
- digitalWrite(rele, LOW);
- } else if (myString == "VYP") {
- Serial.println("Vypinam rele");
- digitalWrite(rele, HIGH);
- }
- //odpoved na data
- packet.printf("Got %u bytes of data", packet.length());
- });
- }
- }
- void loop()
- {
- delay(1000);
- //Vysielaj broadcast do siete na rovnakom porte 1234
- udp.broadcast("Anyone here?");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement