create softAP if unable to connect to a station

master
Kenneth Barbour 2019-12-18 15:42:43 -05:00
parent 8be8ae0f24
commit a2f1cad56f
1 changed files with 32 additions and 1 deletions

View File

@ -1,16 +1,47 @@
#include <Arduino.h> #include <Arduino.h>
#include <ESP8266WiFi.h>
#include "version.h" #include "version.h"
#ifndef SERIAL_BAUD #ifndef SERIAL_BAUD
#define SERIAL_BAUD 74880 #define SERIAL_BAUD 74880
#endif #endif
char _unique_softap_ssid[] = "uWeather-XXXXXX";
const char* unique_softap_ssid()
{
char* ssid = _unique_softap_ssid;
if (_unique_softap_ssid[9] == 'X') { //if not filled with mac address, do it now
String mac = WiFi.softAPmacAddress();
for (int i = 0; i < 3; i++) {
ssid[9+(2*i)] = mac.c_str()[i*3];
ssid[9+(2*i)+1] = mac.c_str()[i*3+1];
}
}
return ssid;
}
void setup() void setup()
{ {
Serial.begin(SERIAL_BAUD); Serial.begin(SERIAL_BAUD);
delay(100); delay(100);
uweather_print_version_info(Serial); // Print out some system information to the serial port
uweather_print_version_info(Serial);
// Attempt to connect to WiFi
Serial.print( F("Attempting to connect to WiFi ..."));
WiFi.begin();
uint8_t connectResult = WiFi.waitForConnectResult();
if (connectResult != WL_CONNECTED) {
Serial.println( F("Unable to connect"));
const char* softApSSID = unique_softap_ssid();
WiFi.softAP(softApSSID);
Serial.printf_P( PSTR("Created Soft AP for setup: %s\r\n"), softApSSID);
} else {
Serial.println( F("Connected"));
}
while (true) { while (true) {
Serial.print(" . "); Serial.print(" . ");