max80_wifi.cpp 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. #include <Arduino.h>
  2. #include "max80_wifi.h"
  3. #include "max80_func.h"
  4. #include "WiFi.h"
  5. #include <esp_wifi.h>
  6. #include <WiFi.h>
  7. #include <WiFiClient.h>
  8. #include <WiFiMulti.h>
  9. #include <time.h>
  10. #include "max80_config.h"
  11. #include "max80_callback.h"
  12. #include "max80_web.h"
  13. #include "max80_gpio.h"
  14. #include "max80_littlefs.h"
  15. #include <esp_wifi.h>
  16. #include <DNSServer.h>
  17. #include <AsyncElegantOTA.h>
  18. #define USING_ESP32_S2 true
  19. //#include <ESPAsync_WiFiManager.h>
  20. #include "ESPAsyncWiFiManager.h"
  21. static const char TAG[] = __FILE__;
  22. extern WiFiClass WiFi;
  23. extern TaskHandle_t WiFi_Task;
  24. extern max80::std_max80 max80_std;
  25. extern max80::web max80_web;
  26. extern max80::callback max80_callback;
  27. extern max80::gpio max80_gpio;
  28. extern AsyncWebServer webserver;
  29. extern DNSServer dns;
  30. extern AsyncElegantOtaClass AsyncElegantOTA;
  31. extern WiFiMulti wifiMulti;
  32. extern TaskHandle_t ledtask;
  33. extern max80Config max80_config;
  34. extern max80::littlefs max80_littlefs;
  35. AsyncWiFiManager ESPAsync_wifiManager(&webserver,&dns );
  36. #define MIN_AP_PASSWORD_SIZE 8
  37. const char* ntpServer = "pool.ntp.org";
  38. const long gmtOffset_sec = 0;
  39. const int daylightOffset_sec = 3600;
  40. namespace max80 {
  41. void configModeCallback (AsyncWiFiManager *myESP_WiFiManager)
  42. {
  43. ESP_LOGD(TAG,"Entered WiFi config mode");
  44. uint32_t led = 100 << 8 | 1;
  45. if (xTaskNotify(ledtask, led, eSetValueWithoutOverwrite) == pdTRUE) {
  46. }
  47. }
  48. void saveconfigCallback ()
  49. {
  50. ESP_LOGD(TAG,"Saving config");
  51. String tempSSID = ESPAsync_wifiManager.getConfiguredSTASSID();
  52. String tempPW = ESPAsync_wifiManager.getConfiguredSTAPassword();
  53. strcpy(max80_config.WiFi_Creds->wifi_ssid,tempSSID.c_str());
  54. strcpy(max80_config.WiFi_Creds->wifi_pw,tempPW.c_str());
  55. max80_littlefs.saveconfig();
  56. }
  57. //setSaveConfigCallback
  58. void wifi::setup(){
  59. ESP_LOGD(TAG,"Entered WiFi setup");
  60. ESP_LOGD(TAG,"%s",max80_config.WiFi_Creds->wifi_ssid);
  61. ESP_LOGD(TAG,"%s",max80_config.WiFi_Creds->wifi_pw);
  62. ESPAsync_wifiManager.setAPStaticIPConfig(IPAddress(192,168,132,1), IPAddress(192,168,132,1), IPAddress(255,255,255,0));
  63. ESPAsync_wifiManager.setAPCallback(configModeCallback);
  64. ESPAsync_wifiManager.setSaveConfigCallback(saveconfigCallback);
  65. WiFi.setHostname("MAX80");
  66. ESPAsync_wifiManager.autoConnect(max80_config.WiFi_Creds->wifi_ssid,max80_config.WiFi_Creds->wifi_pw);
  67. max80_web.init();
  68. max80_web.connected=true;
  69. configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  70. uint32_t led = 1 << 8 | 1;
  71. if (xTaskNotify(ledtask, led, eSetValueWithoutOverwrite) == pdTRUE) {
  72. }
  73. }
  74. void wifi::reconnect(){
  75. uint32_t led = 500 << 8 | 1;
  76. if (xTaskNotify(ledtask, led, eSetValueWithoutOverwrite) == pdTRUE) {
  77. }
  78. ESPAsync_wifiManager.autoConnect(max80_config.WiFi_Creds->wifi_ssid,max80_config.WiFi_Creds->wifi_pw);
  79. led = 1 << 8 | 1;
  80. if (xTaskNotify(ledtask, led, eSetValueWithoutOverwrite) == pdTRUE) {
  81. }
  82. }
  83. }