Tobias Simetsreiter 3 rokov pred
rodič
commit
ef740b1163
2 zmenil súbory, kde vykonal 51 pridanie a 12 odobranie
  1. 1 0
      .vscode/c_cpp_properties.json
  2. 50 12
      test.ino

+ 1 - 0
.vscode/c_cpp_properties.json

@@ -20,6 +20,7 @@
                 "C:\\Users\\tobias.simetsreiter\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\tools\\sdk\\lwip2\\include",
                 "C:\\Users\\tobias.simetsreiter\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\cores\\esp8266",
                 "C:\\Users\\tobias.simetsreiter\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\variants\\nodemcu",
+                "C:\\Users\\tobias.simetsreiter\\AppData\\Local\\Arduino15\\packages\\esp8266\\hardware\\esp8266\\3.0.2\\libraries\\ESP8266WiFi\\src",
                 "C:\\Users\\tobias.simetsreiter\\Documents\\Arduino\\libraries\\Automaton\\src",
                 "C:\\Users\\tobias.simetsreiter\\Documents\\Arduino\\libraries\\OneWire",
                 "C:\\Users\\tobias.simetsreiter\\Documents\\Arduino\\libraries\\DallasTemperature",

+ 50 - 12
test.ino

@@ -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";
 }