Fork of the espurna firmware for `mhsw` switches
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

68 lines
1.6 KiB

  1. #include <ESP8266WiFi.h>
  2. #include <ESP8266mDNS.h>
  3. #include <WiFiUdp.h>
  4. #include <ArduinoOTA.h>
  5. const char* ssid = "...";
  6. const char* password = "...";
  7. const char* host = "OTA-LEDS";
  8. int led_pin = 13;
  9. #define N_DIMMERS 3
  10. int dimmer_pin[] = {14, 5, 15};
  11. void setup() {
  12. Serial.begin(115200);
  13. /* switch on led */
  14. pinMode(led_pin, OUTPUT);
  15. digitalWrite(led_pin, LOW);
  16. Serial.println("Booting");
  17. WiFi.mode(WIFI_STA);
  18. WiFi.begin(ssid, password);
  19. while (WiFi.waitForConnectResult() != WL_CONNECTED){
  20. WiFi.begin(ssid, password);
  21. Serial.println("Retrying connection...");
  22. }
  23. /* switch off led */
  24. digitalWrite(led_pin, HIGH);
  25. /* configure dimmers, and OTA server events */
  26. analogWriteRange(1000);
  27. analogWrite(led_pin,990);
  28. for (int i=0; i<N_DIMMERS; i++)
  29. {
  30. pinMode(dimmer_pin[i], OUTPUT);
  31. analogWrite(dimmer_pin[i],50);
  32. }
  33. ArduinoOTA.setHostname(host);
  34. ArduinoOTA.onStart([]() { // switch off all the PWMs during upgrade
  35. for(int i=0; i<N_DIMMERS;i++)
  36. analogWrite(dimmer_pin[i], 0);
  37. analogWrite(led_pin,0);
  38. });
  39. ArduinoOTA.onEnd([]() { // do a fancy thing with our board led at end
  40. for (int i=0;i<30;i++)
  41. {
  42. analogWrite(led_pin,(i*100) % 1001);
  43. delay(50);
  44. }
  45. });
  46. ArduinoOTA.onError([](ota_error_t error) { ESP.restart(); });
  47. /* setup the OTA server */
  48. ArduinoOTA.begin();
  49. Serial.println("Ready");
  50. }
  51. void loop() {
  52. ArduinoOTA.handle();
  53. }