Jeżeli sterowanie przekaźnikiem jest na stałe, to super sprawa dla mnie
Po zmostkowaniu wyjścia na przekaźnik i wejścia czujnika otwarcia (pin 4), dodałem ikonki.
Można by dopisać kolejny kanał, który by wykrywał pojazd który stoi dalej niż te 20cm (które ja mam ustawione), na maksymalną przy jakiej pojazd mieści się w garażu.
Czujnik odległości i sygnalizator świetlny
- Załączniki
-
- Screenshot_2019-06-18-09-15-28-739_org.supla.android.jpg (207.19 KiB) Przejrzano 3717 razy
-
- Screenshot_2019-06-18-09-15-19-121_org.supla.android.jpg (206.17 KiB) Przejrzano 3717 razy
Niespełniony automatyk.
https://3d-lamp.photos/
https://3d-lamp.photos/
Można i tak to sobie rozwiązać z czujnikiem obecności auta w garażu. Możliwe, że też ten kanał wykorzystam.
A co to dopisania kolejnego kanału to nie pomogę, bo ja tego softu nie pisałem tylko kolega, który udostępnił go na 1 stronie.
Nie potrafię tego zrobić, żaden ze mnie programista...
A co to dopisania kolejnego kanału to nie pomogę, bo ja tego softu nie pisałem tylko kolega, który udostępnił go na 1 stronie.
Nie potrafię tego zrobić, żaden ze mnie programista...
Tu przerobiłem kod i pod GPIO16 - D0 w Wemos D1 Mini jest wyjście obecności pojazdu w garażu, które należy zmostkować z GPIO4 czyli D2.
W kodzie poniżej jeżeli odległość jest mniejsza niż 20 cm załącza przekaźnik, a jeżeli odległość jest mniejsza niż 50 cm wskazuje ze pojazd jest w garażu.
Dla siebie będe jeszcze go przerabiał i wywale czujniki temperatur - o ile mi sie uda
W kodzie poniżej jeżeli odległość jest mniejsza niż 20 cm załącza przekaźnik, a jeżeli odległość jest mniejsza niż 50 cm wskazuje ze pojazd jest w garażu.
Kod: Zaznacz cały
#include <FS.h> // ---- esp board manager 2.4.2 --- iwip Variant V2 higher Bandwidth
#include <EEPROM.h>
#include <ESP8266WiFi.h>
#define SUPLADEVICE_CPP
#include <SuplaDevice.h>
#include <DNSServer.h>
#include <WiFiManager.h>
#include <ArduinoJson.h> //--------- https://github.com/bblanchon/ArduinoJson/tree/v5.13.2 ------
#include <Ticker.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#include <ESPEFC.h> // modification of ESP8266HTTPUpdateServer that includes erases flash and wifi credentials
#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h>
#define ONE_WIRE 2
// Setup a oneWire instance
OneWire oneWire(ONE_WIRE); // Deklaracja pinu 2 jako magistrala OneWire dla czujnika temperatury
// Pass oneWire reference to Dallas Temperature
DallasTemperature sensors(&oneWire);
extern "C"
{
#include "user_interface.h"
}
#define onboard_led 2 //D4 status led
#define TRIGGER_PIN 0 // D3 wifi configuration pin --------pin konfiguracji wifi
//********czujnik odleglosci******
int Trig = 12; //D6 Numer pinu wyzwolenia dla czujnika odległości HC-SR04
int Echo = 13; //D7 Numer pinu odpowiedzi dla czujnika odległości HC-SR04
int Buzzer = 14; //D5 Numer pinu do podłązenia buzera, który wlaczy sie przy poziomie mizszym niz 20cm
int Car = 16; //D0 Numer pinu do do sensora, który sygnalizuje obecność pojazdu przy poziomie mizszym niz 50cm
long EchoTime; // Czas trwania sygnału ECHO
int odleglosc;
int glebokosc;
WiFiClient client;
ESP8266WebServer httpServer(81);
ESPEFC httpUpdater;
const char* host = "supla";
Ticker ticker;
unsigned long wifi_checkDelay = 30000;
unsigned long wifimilis;
int C_W_state = HIGH;
int last_C_W_state = HIGH;
unsigned long time_last_C_W_change = 0;
long C_W_delay = 5000; // config delay 5 seconds ---------- opóźnienie konfiguracji 5 sekund
//int glebokosc_podajnika =0;
double rssi = 0;
double rssi_last = 0;
int s; // ---------------- Status ------------------
int timeout = 120;
char Supla_server[40];
char Location_id[15];
char Location_Pass[34];
//char glebokosc_podajnika[5];
char Supla_name[51];
char update_path[21];
char update_username[21];
char update_password[21];
byte mac[6];
bool pr_wifi = true;
bool shouldSaveConfig = false;
bool initialConfig = false;
void tick(){
int state = digitalRead(onboard_led);
digitalWrite(onboard_led, !state);
}
void saveConfigCallback () {
Serial.println("Should save config");
shouldSaveConfig = true;
}
void ondemandwifiCallback () {
ticker.attach(0.2, tick);
WiFiManagerParameter custom_Supla_server("server", "supla server", Supla_server, 40);
WiFiManagerParameter custom_Location_id("ID", "Location_id", Location_id, 15);
WiFiManagerParameter custom_Location_Pass("Password", "Location_Pass", Location_Pass, 34 );
//WiFiManagerParameter custom_glebokosc_podajnika("Box_depth", "Box depth in cm", glebokosc_podajnika, 5);
WiFiManagerParameter custom_Supla_name("name", "Supla Device Name", Supla_name, 51,"required");
WiFiManagerParameter custom_update_path("updatePath", "/xxxx update path", update_path, 21,"required");
WiFiManagerParameter custom_update_username("updateUsername", "update username", update_username, 21,"required");
WiFiManagerParameter custom_update_password("updatePassword", "update password", update_password, 21,"required");
WiFiManager wifiManager;
wifiManager.setBreakAfterConfig(true);
wifiManager.setSaveConfigCallback(saveConfigCallback);
wifiManager.addParameter(&custom_Supla_server);
wifiManager.addParameter(&custom_Location_id);
wifiManager.addParameter(&custom_Location_Pass);
//wifiManager.addParameter(&custom_glebokosc_podajnika);
wifiManager.addParameter(&custom_Supla_name);
wifiManager.addParameter(&custom_update_path);
wifiManager.addParameter(&custom_update_username);
wifiManager.addParameter(&custom_update_password);
wifiManager.setCustomHeadElement("<style>html{ background-color: #01DF3A;}</style><div class='s'><svg version='1.1' id='l' x='0' y='0' viewBox='0 0 200 200' xml:space='preserve'><path d='M59.3,2.5c18.1,0.6,31.8,8,40.2,23.5c3.1,5.7,4.3,11.9,4.1,18.3c-0.1,3.6-0.7,7.1-1.9,10.6c-0.2,0.7-0.1,1.1,0.6,1.5c12.8,7.7,25.5,15.4,38.3,23c2.9,1.7,5.8,3.4,8.7,5.3c1,0.6,1.6,0.6,2.5-0.1c4.5-3.6,9.8-5.3,15.7-5.4c12.5-0.1,22.9,7.9,25.2,19c1.9,9.2-2.9,19.2-11.8,23.9c-8.4,4.5-16.9,4.5-25.5,0.2c-0.7-0.3-1-0.2-1.5,0.3c-4.8,4.9-9.7,9.8-14.5,14.6c-5.3,5.3-10.6,10.7-15.9,16c-1.8,1.8-3.6,3.7-5.4,5.4c-0.7,0.6-0.6,1,0,1.6c3.6,3.4,5.8,7.5,6.2,12.2c0.7,7.7-2.2,14-8.8,18.5c-12.3,8.6-30.3,3.5-35-10.4c-2.8-8.4,0.6-17.7,8.6-22.8c0.9-0.6,1.1-1,0.8-2c-2-6.2-4.4-12.4-6.6-18.6c-6.3-17.6-12.7-35.1-19-52.7c-0.2-0.7-0.5-1-1.4-0.9c-12.5,0.7-23.6-2.6-33-10.4c-8-6.6-12.9-15-14.2-25c-1.5-11.5,1.7-21.9,9.6-30.7C32.5,8.9,42.2,4.2,53.7,2.7c0.7-0.1,1.5-0.2,2.2-0.2C57,2.4,58.2,2.5,59.3,2.5z M76.5,81c0,0.1,0.1,0.3,0.1,0.6c1.6,6.3,3.2,12.6,4.7,18.9c4.5,17.7,8.9,35.5,13.3,53.2c0.2,0.9,0.6,1.1,1.6,0.9c5.4-1.2,10.7-0.8,15.7,1.6c0.8,0.4,1.2,0.3,1.7-0.4c11.2-12.9,22.5-25.7,33.4-38.7c0.5-0.6,0.4-1,0-1.6c-5.6-7.9-6.1-16.1-1.3-24.5c0.5-0.8,0.3-1.1-0.5-1.6c-9.1-4.7-18.1-9.3-27.2-14c-6.8-3.5-13.5-7-20.3-10.5c-0.7-0.4-1.1-0.3-1.6,0.4c-1.3,1.8-2.7,3.5-4.3,5.1c-4.2,4.2-9.1,7.4-14.7,9.7C76.9,80.3,76.4,80.3,76.5,81z M89,42.6c0.1-2.5-0.4-5.4-1.5-8.1C83,23.1,74.2,16.9,61.7,15.8c-10-0.9-18.6,2.4-25.3,9.7c-8.4,9-9.3,22.4-2.2,32.4c6.8,9.6,19.1,14.2,31.4,11.9C79.2,67.1,89,55.9,89,42.6z M102.1,188.6c0.6,0.1,1.5-0.1,2.4-0.2c9.5-1.4,15.3-10.9,11.6-19.2c-2.6-5.9-9.4-9.6-16.8-8.6c-8.3,1.2-14.1,8.9-12.4,16.6C88.2,183.9,94.4,188.6,102.1,188.6z M167.7,88.5c-1,0-2.1,0.1-3.1,0.3c-9,1.7-14.2,10.6-10.8,18.6c2.9,6.8,11.4,10.3,19,7.8c7.1-2.3,11.1-9.1,9.6-15.9C180.9,93,174.8,88.5,167.7,88.5z'/></svg>");
wifiManager.setMinimumSignalQuality();
wifiManager.setConfigPortalTimeout(timeout);
if (!wifiManager.startConfigPortal("SuplaCino")) { // ----wifi configuration ap name---
Serial.println("Not connected to WiFi but continuing anyway.");
} else {
Serial.println("connected...yeey :)"); //if you get here you have connected to the WiFi
}
strcpy(Supla_server, custom_Supla_server.getValue());
strcpy(Location_id, custom_Location_id.getValue());
strcpy(Location_Pass, custom_Location_Pass.getValue());
//strcpy(glebokosc_podajnika, custom_glebokosc_podajnika.getValue());
strcpy(Supla_name, custom_Supla_name.getValue());
strcpy(update_path, custom_update_path.getValue());
strcpy(update_username, custom_update_username.getValue());
strcpy(update_password, custom_update_password.getValue());
}
/*double get_temperature(int channelNumber, double rssi_last) { // --------------------------- New -----------------------------
rssi = WiFi.RSSI(); // ---------------------Twój kod daje
delay(10);
if (rssi != rssi_last){
rssi_last = rssi;
return rssi_last;
}
}
*/
// Obsługa czujnika DS18B20 i odczyt parametrów modułu ESP
double get_temperature(int channelNumber, double last_val) {
double t = -275;
switch(channelNumber)
{
case 0: {
sensors.requestTemperatures();
t = sensors.getTempCByIndex(0);
Serial.print("DS Temp 1 : ");
Serial.println(t);
// Serial.println("*******************");
break; }
case 1:
t = WiFi.RSSI();
break;
};
return t;
}
//******************czujnik odległości HC-SR04 *********************************
double get_distance(int channelNumber, double distance) {
// Ustawiamy TRIG w stan niski na 2us
digitalWrite(Trig, LOW);
delayMicroseconds(2);
// Ustawiamy TRIG w stan wysoki na 10us
digitalWrite(Trig, HIGH);
delayMicroseconds(10);
// Ustawiamy TRIG w stan niski - rozpoczynamy pomiar
digitalWrite(Trig, LOW);
// Odczytujamy czas trwania stanu wysokiego na pinie ECHO
EchoTime = pulseIn(Echo, HIGH);
// Obliczamy odległość
distance = EchoTime / 58; // Odległość w metrach
distance = distance / 100;// Odległość w centymetrach
if (distance <= 0 ) {
distance = 2;
}
if ((distance > 0) && (distance < 0.20)) { // przy jakiej odleglosci ma się właczyć buzzer
digitalWrite(Buzzer, LOW); //wlacza buzzer przy dystansie mniejszym niz 20cm
} else {
digitalWrite(Buzzer, HIGH); //wylacz buzzer przy dystansie większym niż 20cm
}
if ((distance > 0) && (distance < 0.50)) { // przy jakiej odleglosci ma się właczyć buzzer
digitalWrite(Car, LOW); //włącza sygnalizacje obecności pojazdu przy dystansie mniejszym niz 50cm
} else {
digitalWrite(Car, HIGH); //wyłącz sygnalizacje obecności pojazdu przy dystansie mniejszym niz 50cm
}
Serial.println(distance);
return distance;
}
void setup() { // ------------------------ Setup --------------------------
wifi_set_sleep_type(NONE_SLEEP_T);
Serial.begin(115200);
EEPROM.begin(128);
pinMode(TRIGGER_PIN, INPUT_PULLUP);
pinMode(onboard_led, OUTPUT);
if (WiFi.SSID()==""){
initialConfig = true;
}
ticker.attach(0.8, tick);
Serial.println("mounting FS...");
if (SPIFFS.begin()) {
Serial.println("mounted file system");
if (SPIFFS.exists("/config.json")) {
//file exists, reading and loading
Serial.println("reading config file");
File configFile = SPIFFS.open("/config.json", "r");
if (configFile) {
Serial.println("opened config file");
size_t size = configFile.size();
// Allocate a buffer to store contents of the file.
std::unique_ptr<char[]> buf(new char[size]);
configFile.readBytes(buf.get(), size);
DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.parseObject(buf.get());
Serial.println(jsonBuffer.size());
json.printTo(Serial);
if (json.success()) {
Serial.println("\nparsed json");
strcpy(Supla_server, json["Supla_server"]);
strcpy(Location_id, json["Location_id"]);
strcpy(Location_Pass, json["Location_Pass"]);
//strcpy(glebokosc_podajnika, json["glebokosc_podajnika"]);
strcpy(Supla_name, json["Supla_name"]);
strcpy(update_path, json["update_path"]);
strcpy(update_username, json["update_username"]);
strcpy(update_password, json["update_password"]);
}
// Init DS18B20 library
sensors.begin();
// Set temperature callback
SuplaDevice.setTemperatureCallback(&get_temperature);
// Set Distance callback
pinMode(Trig, OUTPUT);
pinMode(Echo, INPUT);
pinMode(Buzzer, OUTPUT);
digitalWrite(Buzzer, HIGH);
pinMode(Car, OUTPUT);
digitalWrite(Car, HIGH);
SuplaDevice.setDistanceCallback(&get_distance);
uint8_t mac[WL_MAC_ADDR_LENGTH];
WiFi.macAddress(mac);
char GUID[SUPLA_GUID_SIZE] = {mac[WL_MAC_ADDR_LENGTH - 6], mac[WL_MAC_ADDR_LENGTH - 5], mac[WL_MAC_ADDR_LENGTH - 4], mac[WL_MAC_ADDR_LENGTH - 3],
mac[WL_MAC_ADDR_LENGTH - 2], mac[WL_MAC_ADDR_LENGTH - 1], mac[WL_MAC_ADDR_LENGTH - 1], mac[WL_MAC_ADDR_LENGTH - 2],
mac[WL_MAC_ADDR_LENGTH - 3], mac[WL_MAC_ADDR_LENGTH - 4], mac[WL_MAC_ADDR_LENGTH - 5], mac[WL_MAC_ADDR_LENGTH - 6]};
SuplaDevice.addDS18B20Thermometer(); // DS na GPIO2 D4
SuplaDevice.addDS18B20Thermometer();
SuplaDevice.addDistanceSensor();
SuplaDevice.addRelay(5); // D1
SuplaDevice.addSensorNO(4);
SuplaDevice.setName(Supla_name); // Supla device name
wifi_station_set_hostname(Supla_name); //nazwa w sieci lokalnej
int LocationID = atoi(Location_id);
SuplaDevice.begin(GUID, // Global Unique Identifier
mac, // Ethernet MAC address
Supla_server, // SUPLA server address
LocationID, // Location ID
Location_Pass); // Location Password
WiFi.mode(WIFI_STA);
}
}
}
}
void loop() {
if (WiFi.status() == WL_CONNECTED)
{
httpServer.handleClient();
}
int C_W_read = digitalRead(TRIGGER_PIN);{
if (C_W_read != last_C_W_state) {
time_last_C_W_change = millis();
}
if ((millis() - time_last_C_W_change) > C_W_delay) {
if (C_W_read != C_W_state) {
Serial.println("Triger sate changed");
C_W_state = C_W_read;
if (C_W_state == LOW) {
ondemandwifiCallback () ;
}
}
}
last_C_W_state = C_W_read;
}
if (initialConfig) {
ondemandwifiCallback () ;
initialConfig = false;
}
if (shouldSaveConfig) {
Serial.println("saving config");
DynamicJsonBuffer jsonBuffer;
JsonObject& json = jsonBuffer.createObject();
json["Supla_server"] = Supla_server;
json["Location_id"] = Location_id;
json["Location_Pass"] = Location_Pass;
// json["glebokosc_podajnika"] = glebokosc_podajnika;
json["Supla_name"] = Supla_name;
json["update_path"] = update_path;
json["update_username"] = update_username;
json["update_password"] = update_password;
File configFile = SPIFFS.open("/config.json", "w");
if (!configFile) {
Serial.println("failed to open config file for writing");
}
json.prettyPrintTo(Serial);
json.printTo(configFile);
configFile.close();
Serial.println("config saved");
shouldSaveConfig = false;
WiFi.mode(WIFI_STA);
ticker.detach();
digitalWrite(onboard_led, HIGH);
ESP.restart();
delay(5000);
}
if (WiFi.status() != WL_CONNECTED)
{
ticker.attach(0.8, tick);
WiFi_up();
}
if (WiFi.status() != WL_CONNECTED) {
ticker.attach(0.8, tick);
WiFi_up();
pr_wifi = true;
}
else if ((WiFi.status() == WL_CONNECTED) && (pr_wifi)){
Serial.println("");
Serial.println("CONNECTED");
Serial.print("local IP: ");
Serial.println(WiFi.localIP());
Serial.print("subnetMask: ");
Serial.println(WiFi.subnetMask());
Serial.print("gatewayIP: ");
Serial.println(WiFi.gatewayIP());
long rssi = WiFi.RSSI();
Serial.print("Signal Strength (RSSI): ");
Serial.print(rssi);
Serial.println(" dBm");
ticker.detach();
digitalWrite(onboard_led, HIGH);
pr_wifi = false;
MDNS.begin(host);
httpUpdater.setup(&httpServer, update_path, update_username, update_password);
httpServer.begin();
MDNS.addService("http", "tcp", 81);
Serial.printf("HTTPUpdateServer ready! Open http://%s.local:81%s in your browser and login with username '%s' and password '%s'\n", host, update_path, update_username, update_password);
}
SuplaDevice.iterate();
}
// Supla.org ethernet layer
int supla_arduino_tcp_read(void *buf, int count) {
_supla_int_t size = client.available();
if ( size > 0 ) {
if ( size > count ) size = count;
return client.read((uint8_t *)buf, size);
};
return -1;
};
int supla_arduino_tcp_write(void *buf, int count) {
return client.write((const uint8_t *)buf, count);
};
bool supla_arduino_svr_connect(const char *server, int port) {
return client.connect(server, 2015);
}
bool supla_arduino_svr_connected(void) {
return client.connected();
}
void supla_arduino_svr_disconnect(void) {
client.stop();
}
void supla_arduino_eth_setup(uint8_t mac[6], IPAddress *ip) {
WiFi_up();
}
SuplaDeviceCallbacks supla_arduino_get_callbacks(void) {
SuplaDeviceCallbacks cb;
cb.tcp_read = &supla_arduino_tcp_read;
cb.tcp_write = &supla_arduino_tcp_write;
cb.eth_setup = &supla_arduino_eth_setup;
cb.svr_connected = &supla_arduino_svr_connected;
cb.svr_connect = &supla_arduino_svr_connect;
cb.svr_disconnect = &supla_arduino_svr_disconnect;
cb.get_temperature = &get_temperature; // --------------------------- New ------------------------
cb.get_temperature_and_humidity = NULL;
cb.get_distance = &get_distance;
return cb;
}
void WiFi_up(){ // conect to wifi
if (millis() > wifimilis) {
WiFi.begin();
Serial.println("CONNECTING WIFI");
}
wifimilis = (millis() + wifi_checkDelay) ;
}
Niespełniony automatyk.
https://3d-lamp.photos/
https://3d-lamp.photos/
A jakby dodać jakiś fotorezystor/fotodiodę która by wyłączała sterowanie przekaźnikiem programowo w if ((distance > 0) && (distance < 0.20)) dodać kolejną zależność jak jest ciemno. Bo przecież do garażu się wjeżdża to jest jasno (oświetlenie garażu lub z samochodu).
Niespełniony automatyk.
https://3d-lamp.photos/
https://3d-lamp.photos/
plus jeszcze mierzenie czasu na parkowanie!Robert Błaszczak pisze: ↑śr cze 12, 2019 11:36 am Ok, dzięki za wyjaśnienie. Taki "alarm" z tego zrobiłeś.
Mam jeszcze dodatkowe zastosowanie - kto zaparkuje najbliżej ściany. Pomiar masz
Gorzej jak ktoś będzie miał wynik: minus 10cm
A co do pomysłu fajny bajer! Jak z czułością tego czujnika jest?
Bo ja bym osobiście połączył ten pomysł z pomysłem z piłeczką i wolałbym zamontować to na suficie, np. w miejscu gdzie przy idealnym parkowaniu zaczyna się dach, kończy szyba. ustawił odległość tak aby pokazywało, że jest ok jak czujnik "widzi" dach a nie maskę.
Zdaję sobie sprawę, że to nie tak dokładny pomiar. Ale ja przed maską mam pierdolnik i taki czujnik prędzej czy później by się uszkodził.
Zamel: MEW-01, ROW-02, THW-01, RNW-01, SLW-02, ROW-07, mROW-02, PNW-01. DIY: Supla Device RPI + 10 xiaomi mija2, Sonoff: basic + 7 DS18B20, basic x2, touch, mini x3, - Nodemcu x2, - ElectroDragon ESP8266 - Gosund SP111 x3
-
- Posty: 508
- Rejestracja: wt sie 22, 2017 1:56 pm
kolego podrzucisz ikonki?Lector pisze: ↑wt cze 18, 2019 7:24 am Jeżeli sterowanie przekaźnikiem jest na stałe, to super sprawa dla mnie
Po zmostkowaniu wyjścia na przekaźnik i wejścia czujnika otwarcia (pin 4), dodałem ikonki.
Można by dopisać kolejny kanał, który by wykrywał pojazd który stoi dalej niż te 20cm (które ja mam ustawione), na maksymalną przy jakiej pojazd mieści się w garażu.
Zainstalowane:
11x sonoff basic, 1x sonoff gate, 1x Yunshan, 2x H801, 7x sonoff touch(1,2,3 gang), 1x sonoff 4ch PRO
11x sonoff basic, 1x sonoff gate, 1x Yunshan, 2x H801, 7x sonoff touch(1,2,3 gang), 1x sonoff 4ch PRO
W załączeniu.
- Załączniki
-
- car_yes.png (3.46 KiB) Przejrzano 3395 razy
-
- car_no.png (1.53 KiB) Przejrzano 3395 razy
Niespełniony automatyk.
https://3d-lamp.photos/
https://3d-lamp.photos/
-
- Posty: 508
- Rejestracja: wt sie 22, 2017 1:56 pm
Co robię nie tak?
Wgrałem soft z takimi parametrami: Wemos rozsyła sieć ale nie mogę wejść na stronę konfiguracji. Dioda na wemosie nie mruga a świeci ciągle.
Wgrałem soft z takimi parametrami: Wemos rozsyła sieć ale nie mogę wejść na stronę konfiguracji. Dioda na wemosie nie mruga a świeci ciągle.
Zainstalowane:
11x sonoff basic, 1x sonoff gate, 1x Yunshan, 2x H801, 7x sonoff touch(1,2,3 gang), 1x sonoff 4ch PRO
11x sonoff basic, 1x sonoff gate, 1x Yunshan, 2x H801, 7x sonoff touch(1,2,3 gang), 1x sonoff 4ch PRO
Proponuję zainstalować nowa wersję ESP Flash download... https://www.espressif.com/sites/default ... .6.7_1.zipGucio2607. pisze: ↑pt sie 30, 2019 9:07 pm Co robię nie tak?
Wgrałem soft z takimi parametrami:
IMG_20190830_215852.jpg
Wemos rozsyła sieć ale nie mogę wejść na stronę konfiguracji. Dioda na wemosie nie mruga a świeci ciągle.
Przed wgranie wyczyścić pamięć przyciskiem "erase".
I wgrać tylko "Czujnik_parkowania.bin" 0x00000