|
|
@@ -1,3 +1,4 @@
|
|
|
+#include <ESP8266WiFi.h>
|
|
|
#include <Automaton.h>
|
|
|
|
|
|
#include <OneWire.h>
|
|
|
@@ -14,6 +15,8 @@ int led1_pin = 13;
|
|
|
|
|
|
Atm_led led1;
|
|
|
|
|
|
+bool wpsRunning = false;
|
|
|
+
|
|
|
// Init Onewire and DallasTemperature
|
|
|
OneWire oneWire(one_wire_bus);
|
|
|
DallasTemperature sensor(&oneWire);
|
|
|
@@ -23,33 +26,45 @@ Atm_timer sensorTimer;
|
|
|
DS18B20Events thermometer(0);
|
|
|
|
|
|
void setup() {
|
|
|
- delay(1000);
|
|
|
+ delay(10000);
|
|
|
Serial.begin(115200);
|
|
|
- led1.trace( Serial );
|
|
|
- mcubtn.trace( Serial );
|
|
|
- sensor.begin()
|
|
|
+ Serial.println("Booting...");
|
|
|
+
|
|
|
+ // led1.trace( Serial );
|
|
|
+ // mcubtn.trace( Serial );
|
|
|
|
|
|
led1.begin( led1_pin ); // .blink( 1000 );
|
|
|
|
|
|
mcubtn.begin( mcu_flash_button )
|
|
|
- .onPress( led1, led1.EVT_TOGGLE );
|
|
|
+ .onPress([] (int idx, int v, int up ) {
|
|
|
+ wpsSetup();
|
|
|
+ } );
|
|
|
+ // .onPress( led1, led1.EVT_TOGGLE );
|
|
|
|
|
|
-
|
|
|
- sensor.begin()
|
|
|
- sensorTimer.begin( 2000 )
|
|
|
+ // sensor.begin()
|
|
|
+ sensorTimer.begin( 100 )
|
|
|
.repeat( ATM_COUNTER_OFF )
|
|
|
- .onTimer( sensor.a )
|
|
|
+ .onTimer( [] (int idx, int v, int up ) {
|
|
|
+ thermometer.loop();
|
|
|
+ } )
|
|
|
.start();
|
|
|
+
|
|
|
+ // sensorTimer.trace( Serial );
|
|
|
+
|
|
|
DS18B20Events::setup(&sensor); // Link DS18B20Events to DallasTemperature object
|
|
|
- DS18B20Events::setInterval(1000); // Set min interval in milliseconds between 2 measurements. Default 10000 set in setup() method.
|
|
|
- Serial.println("Booting...");
|
|
|
+ DS18B20Events::setInterval(200); // Set min interval in milliseconds between 2 measurements. Default 10000 set in setup() method.
|
|
|
+
|
|
|
+ thermometer.onChange = temperatureChanged;
|
|
|
+
|
|
|
/*
|
|
|
pinMode(13, OUTPUT); //GPIO 13 = Pin D7
|
|
|
|
|
|
|
|
|
- thermometer.onChange = temperatureChanged;
|
|
|
|
|
|
*/
|
|
|
+ Serial.println("Wifi Setup...");
|
|
|
+ WiFi.mode(WIFI_STA);
|
|
|
+ WiFi.begin(WiFi.SSID().c_str(),WiFi.psk().c_str());
|
|
|
Serial.println("Setup Done.");
|
|
|
|
|
|
}
|
|
|
@@ -69,4 +84,27 @@ void temperatureChanged(uint8_t index, float tempC)
|
|
|
Serial.print(tempC);
|
|
|
Serial.print(" new tempC at index ");
|
|
|
Serial.println(index);
|
|
|
+}
|
|
|
+
|
|
|
+void wpsSetup(){
|
|
|
+ if (wpsRunning){
|
|
|
+ Serial.println("WPS already running");
|
|
|
+ } else {
|
|
|
+ Serial.println("WPS Config started");
|
|
|
+
|
|
|
+ bool wpsSuccess = WiFi.beginWPSConfig();
|
|
|
+ Serial.printf("wpsSuccess: '%s'\n", boolToString(wpsSuccess));
|
|
|
+ if(wpsSuccess) {
|
|
|
+ // Muss nicht immer erfolgreich heißen! Nach einem Timeout bist die SSID leer
|
|
|
+ String newSSID = WiFi.SSID();
|
|
|
+ if(newSSID.length() > 0) {
|
|
|
+ // Nur wenn eine SSID gefunden wurde waren wir erfolgreich
|
|
|
+ Serial.printf("WPS fertig. Erfolgreich angemeldet an SSID '%s'\n", newSSID.c_str());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+String boolToString(bool in){
|
|
|
+ return in ? "true" : "false";
|
|
|
}
|