create softAP if unable to connect to a station
parent
8be8ae0f24
commit
a2f1cad56f
33
src/main.cpp
33
src/main.cpp
|
@ -1,16 +1,47 @@
|
|||
#include <Arduino.h>
|
||||
#include <ESP8266WiFi.h>
|
||||
#include "version.h"
|
||||
|
||||
#ifndef SERIAL_BAUD
|
||||
#define SERIAL_BAUD 74880
|
||||
#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()
|
||||
{
|
||||
Serial.begin(SERIAL_BAUD);
|
||||
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) {
|
||||
Serial.print(" . ");
|
||||
|
|
Loading…
Reference in New Issue