123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- /*
- * Home Dynamic System v2
- * Designed by tobychui
- *
- * This is the base module for implementing the Home Dynamic v2 Protocol with ArozOS 1.0
- * For more examples, see other project folders.
- *
- */
- #include <ESP8266WiFi.h> // Include the Wi-Fi library
- #include <ESP8266WiFiMulti.h> // Include the Wi-Fi-Multi library
- #include <ESP8266mDNS.h> // Include the mDNS library
- ESP8266WiFiMulti wifiMulti; // Create an instance of the ESP8266WiFiMulti class, called 'wifiMulti'
- //Change the properties of the IoT device
- const String DeviceName = "HDSv2-Demo"; //The name of this IoT device
- //Change the WiFi Settings
- void WiFiConfig(){
- wifiMulti.addAP("Toby Room Automation", "homedynamicsystem");
- //Add more WiFi AP here if nessary
- //wifiMulti.addAP("ssid_from_AP_2", "your_password_for_AP_2");
- //wifiMulti.addAP("ssid_from_AP_3", "your_password_for_AP_3");
- }
- //Inject zeroconf attr into the MDNS respond (For scanning by ArozOS)
- void MDNSDynamicServiceTxtCallback(const MDNSResponder::hMDNSService p_hService) {
- //Define the domain of the HDSv2 devices
- MDNS.addDynamicServiceTxt(p_hService, "domain","hds.arozos.com");
- MDNS.addDynamicServiceTxt(p_hService, "protocol","hdsv2");
- //Define the OEM written values
- MDNS.addDynamicServiceTxt(p_hService, "uuid","00000000-0000-0000-0000-000000000000");
- MDNS.addDynamicServiceTxt(p_hService, "model","Generic");
- MDNS.addDynamicServiceTxt(p_hService, "vendor","HomeDynamic Project");
- MDNS.addDynamicServiceTxt(p_hService, "version_minor","0.00");
- MDNS.addDynamicServiceTxt(p_hService, "version_build","0");
- }
-
- void hostProbeResult(String p_pcDomainName, bool p_bProbeResult) {
- MDNS.setDynamicServiceTxtCallback(MDNSDynamicServiceTxtCallback);
- }
- void setup() {
- //Use 115200 baudrate on serial monitor if you want to see what is happening to the device
- Serial.begin(115200);
- delay(10);
- Serial.println('\n');
- WiFiConfig();
-
- Serial.println("Connecting ...");
- while (wifiMulti.run() != WL_CONNECTED) {
- delay(500);
- Serial.print('.');
- }
- Serial.println('\n');
- Serial.print("Connected to ");
- Serial.println(WiFi.SSID());
- Serial.print("IP address:\t");
- Serial.println(WiFi.localIP());
- MDNS.setHostProbeResultCallback(hostProbeResult);
-
- if (!MDNS.begin(DeviceName)) { // Start the mDNS responder for esp8266.local
- Serial.println("Error setting up MDNS responder!");
- }
- //Advertise the port that you are using
- MDNS.addService("http", "tcp", 12110);
- Serial.println("mDNS responder started");
- }
- void loop() {
- MDNS.update();
- }
|