Advertisement
Guest User

Untitled

a guest
Sep 15th, 2019
199
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.53 KB | None | 0 0
  1. /*|--------------------------------------------------|*/
  2. /*| Téma: Inteligentné relé v sieti Eduroam          |*/
  3. /*| Offline verzia v LAN sieti a ovládaním cez UDP   |*/
  4. /*| Vyhotovil: Martin Chlebovec 3. roč. PC. siete    |*/
  5. /*| Vedúci práce: prof. Ing. Miloš Drutarovský, CSc. |*/
  6. /*| Adresa webu: https://www.esp32.sk                |*/
  7. /*|--------------------------------------------------|*/
  8. #include "WiFi.h" //hlavickovy subor WiFi funkcii
  9. #include "AsyncUDP.h" //hlavickovy subor Asynchronnych UDP funkcii
  10. #include "esp_wpa2.h" //hlavickovy subor kryptofunkcii pre Enterprise WiFi siete
  11. #define ANONYMOUS_EAP_IDENTITY "anonymous@tuke.sk" //anonymous@tuke.sk - anonymna identita
  12. #define EAP_IDENTITY "id@tuke.sk" //-login@tuke.sk - identita pouzivatela
  13. #define EAP_PASSWORD "heslo" //heslo pouzivatela v sieti eduroam
  14. const char* ssid = "eduroam"; // eduroam SSID
  15. const int rele = 23; //nastavenie premennej na GPIO pin 23
  16. const int led = 18; //nastavenie premennej na GPIO pin 23
  17. AsyncUDP udp; //objekt udp pre funkcie v programe
  18.  
  19. void setup()
  20. {
  21.   Serial.begin(115200);        //baud/s
  22.   pinMode(rele, OUTPUT);       //GPIO ako vystup
  23.   pinMode(led, OUTPUT);       //GPIO ako vystup
  24.   WiFi.disconnect(true);  //odpoj sa od wifi pred nastavenim noveho pripojenia
  25.   WiFi.mode(WIFI_STA); //nastavenie ESP32 ako klienta v sieti
  26.   esp_wifi_sta_wpa2_ent_set_identity((uint8_t *)ANONYMOUS_EAP_IDENTITY, strlen(ANONYMOUS_EAP_IDENTITY)); //nastavenie ano. identity
  27.   esp_wifi_sta_wpa2_ent_set_username((uint8_t *)EAP_IDENTITY, strlen(EAP_IDENTITY)); //nastavenie identity
  28.   esp_wifi_sta_wpa2_ent_set_password((uint8_t *)EAP_PASSWORD, strlen(EAP_PASSWORD)); //nastavenie hesla
  29.   esp_wpa2_config_t config = WPA2_CONFIG_INIT_DEFAULT(); //pociatocna konfiguracia so zakladnymi parametrami (Enterprise)
  30.   esp_wifi_sta_wpa2_ent_enable(&config); //nakonfiguruj sietove pripojenie
  31.   WiFi.begin(ssid); //pripoj sa na WiFi siet eduroam
  32.   while (WiFi.status() != WL_CONNECTED) {
  33.     digitalWrite(led, LOW);
  34.     delay(500); // pauza 500ms
  35.     Serial.print("."); // vypis znaku
  36.   }
  37.   digitalWrite(led, HIGH);
  38.   if (udp.listen(1234)) { //asynchronne cakanie na porte
  39.     Serial.print("UDP Listening on IP: ");
  40.     Serial.println(WiFi.localIP());
  41.     udp.onPacket([](AsyncUDPPacket packet) {
  42.       Serial.print("UDP Packet Type: ");
  43.       Serial.print(packet.isBroadcast() ? "Broadcast" : packet.isMulticast() ? "Multicast" : "Unicast"); //vypis typ packetu
  44.       Serial.print(", From: ");
  45.       Serial.print(packet.remoteIP()); //IP odosielacieho zariadenia
  46.       Serial.print(":");
  47.       Serial.print(packet.remotePort()); //port odosielacieho zariadenia
  48.       Serial.print(", To: ");
  49.       Serial.print(packet.localIP()); //IP adresa ESP v LAN sieti
  50.       Serial.print(":");
  51.       Serial.print(packet.localPort()); //port, na ktorom ESP pocuva
  52.       Serial.print(", Length: ");
  53.       Serial.print(packet.length()); //dlzka packetu
  54.       Serial.print(", Data: ");
  55.       Serial.write(packet.data(), packet.length());
  56.       Serial.println();
  57.       String myString = (const char*)packet.data();
  58.       if (myString == "ZAP") {
  59.         Serial.println("Zapinam rele");
  60.         digitalWrite(rele, LOW);
  61.       } else if (myString == "VYP") {
  62.         Serial.println("Vypinam rele");
  63.         digitalWrite(rele, HIGH);
  64.       }
  65.       //odpoved na data
  66.       packet.printf("Got %u bytes of data", packet.length());
  67.     });
  68.   }
  69. }
  70.  
  71. void loop()
  72. {
  73.   delay(1000);
  74.   //Vysielaj broadcast do siete na rovnakom porte 1234
  75.   udp.broadcast("Anyone here?");
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement