№ 8380 В разделах: Electronics
ESP8266
Programming
от August 11th, 2017,
В подшивках: ESP8266, Smart Home
Для создания умного дома необходимо сделать протокол по которому все устройства, датчики и реле будут общаться. Часть этого протокола – поиск головного устройства в локальной сети. Поскольку broadcast уже не вариант и шибко умные маршрутизаторы его не пропускают я использовал multicast. Вот тут можно в кратце почитать отличия, если кому интересно.
Пример кода:
#include <ESP8266WiFi.h> #include <WiFiUdp.h> ... int BroadcastPort = 9210; WiFiUDP Udp; ... void searchCoreModule() { Udp.begin(BroadcastPort); IPAddress broadcastIp; broadcastIp = ~WiFi.subnetMask() | WiFi.gatewayIP(); Udp.beginPacketMulticast(broadcastIp, BroadcastPort, WiFi.localIP()); Udp.write("test"); Serial.print("BROADCAST TEST PACKET SENT"); Udp.endPacket(); }
А вот теперь можно посмотреть на результат
Что было принято в терминале
Ну вот, как видим, все работает, пакеты летают, данные принимаются.
Fortune cookie:
Leave a Reply