ESP8266 Primary GUI v2
-
NetAs
- Posts: 138
- Joined: Mon May 28, 2018 7:06 am
- Location: Wrocław
On miał otwieranie do wewnątrz 
-
Zybi
- Posts: 1511
- Joined: Sun Jun 26, 2016 4:24 pm
Byłą taka kompilacja softu GATE MEM, czyli sensor otwarcia z pamięcią stanu (do rygli otwarcia furtki z pamięcią). Może coś takiego by Ci pasowało?NetAs wrote: Sat Oct 26, 2019 12:24 pm a jak zablokować stan czujnika poczty, aby jego stan był cały czas taki sam, dopóki nie naciśnie się buttona resetującego?
Scenariusz.
- ikonka poczty zamknięta
- ktoś wrzuca list, kontaktron jest na klapce od poczty (niestety klapka otwierana na zewnątrz),
- ikonka poczty zmienia stan na "jest list"
- po zamknięciu klapki od poczty ikonka się nie zmienia
- kliknięcie w button resetujący powoduje zmianę ikonki na zamkniętą
-
klew
- Posts: 13909
- Joined: Thu Jun 27, 2019 12:16 pm
- Location: Wrocław
- Has thanked: 135 times
- Been thanked: 137 times
W skrzynce na pewno jest klapka i drzwiczki. Możesz zrobić dwa kontaktrony: jeden do klapki aktywujący stan "jest list" i drugi na drzwiczkach zmieniający stan na "nie ma listu".
Jest to dość proste do implementacji.
Natomiast resetowanie stanu z aplikacji będzie bardziej skomplikowane - chyba żeby to podpiąć pod np otwieranie furtki. Ale trzeba by też trochę pokombinować
Najlepsze suple dla Twojego domu 
-
NetAs
- Posts: 138
- Joined: Mon May 28, 2018 7:06 am
- Location: Wrocław
już sobie poradziłem, zmieniłem trochę w kodzie i działa. Muszę poszukać gdzie zapisywany jest stan zapamiętania przekaźnika bo coś mi nie działa ten "Pamiętaj stan" 
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
To pokaż co zmieniłeś, może komuś innemu się przydaNetAs wrote: Sat Oct 26, 2019 3:02 pm już sobie poradziłem, zmieniłem trochę w kodzie i działa. Muszę poszukać gdzie zapisywany jest stan zapamiętania przekaźnika bo coś mi nie działa ten "Pamiętaj stan"![]()
A dla jakiego GPIO ustawiasz przekaźnik?
https://gui-generic-builder.supla.io/
-
NetAs
- Posts: 138
- Joined: Mon May 28, 2018 7:06 am
- Location: Wrocław
To może od początku, po co to?
Chciałem zrobić otwieranie furtki (załączanie elektromagnesu na 6 sekund) oraz kontaktron aby wiedzieć czy furtka jest otwarta czy zamknięta. Niestety córka nie zamyka za sobą drzwi
Na tym samym układzie czyli wemos D1 mini przy okazji czujnik skrzynki pocztowej z podświetleniem na niebiesko
Skrzynka na listy ma klapkę otwieraną na zewnątrz więc otwieranie wykrywam przez drugi kontaktron. W środku przycisk resetujący stan czujnika poczty i dioda LED. Doprowadzenie do skrzynki na listy 6 żyłowy przewód od instalacji alarmowej, choć wykorzystane tylko 4 (dioda, kontaktron, button, masa).
PINY:
15 - relay (choć tutaj jest podpięta niebieska dioda LED do podświetlania)
4 - button resetujący monostabilny
16 - fizyczny relay, wyzwalany HIGH
99 - button wirtualny - nie używany
12 - kontaktron dla furtki
5 - kontaktron dla poczty
supla_board_configuration:
Primary_GUI:
To tyle zmian, chciałem jeszcze wykryć "Pamiętaj stan" aby odpowiednio to obsłużyć, ale nie miałem czasu tego szukać.
Powiem Wam, że efekt wieczorem z podświetleniem na niebiesko robi wrażenie
Nie dawałem przycisku otwierającego furtkę ponieważ mam w domu button, a drugi mógłby być na słupku koło furtki, ale nie daję złodziejowi ułatwienia, że przeskoczy przez płot i sam sobie otworzy. Oczywiście każdorazowe otworzenie furki powoduje że Alexa do mnie mówi
Chciałem zrobić otwieranie furtki (załączanie elektromagnesu na 6 sekund) oraz kontaktron aby wiedzieć czy furtka jest otwarta czy zamknięta. Niestety córka nie zamyka za sobą drzwi
PINY:
15 - relay (choć tutaj jest podpięta niebieska dioda LED do podświetlania)
4 - button resetujący monostabilny
16 - fizyczny relay, wyzwalany HIGH
99 - button wirtualny - nie używany
12 - kontaktron dla furtki
5 - kontaktron dla poczty
supla_board_configuration:
Code: Select all
add_Relay_Button(15, 4, CHOICE_TYPE);
add_Relay_Button(16, 99, CHOICE_TYPE);
add_Sensor(12);
add_Sensor(5);Code: Select all
int blokada = 0 //domyślny stan blokady czujnika poczty
int supla_DigitalRead(int channelNumber, uint8_t pin) {
int result = digitalRead(pin);
if(result == 1 && pin == 5){
blokada = 1;
digitalWrite(15,1);
return 1;
}
else
if(result == 0 && pin == 5){
if(blokada == 1){
return 1;
}
else{
return 0;
}
}
else
{
return result;
}
}
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
if (pin == 4 && val == 0){ //reset
SuplaDevice.channelValueChanged(3, 0); //na 3 kanale mam czujnik poczty
digitalWrite(15, 0);
blokada = 0;
}
else{
digitalWrite(pin,val);
}
}
To tyle zmian, chciałem jeszcze wykryć "Pamiętaj stan" aby odpowiednio to obsłużyć, ale nie miałem czasu tego szukać.
Powiem Wam, że efekt wieczorem z podświetleniem na niebiesko robi wrażenie
Nie dawałem przycisku otwierającego furtkę ponieważ mam w domu button, a drugi mógłby być na słupku koło furtki, ale nie daję złodziejowi ułatwienia, że przeskoczy przez płot i sam sobie otworzy. Oczywiście każdorazowe otworzenie furki powoduje że Alexa do mnie mówi
-
krycha88
- Posts: 5575
- Joined: Fri Nov 16, 2018 7:25 am
- Been thanked: 5 times
Blokadę możecie zrealizowaćw sposób nasępującymartinok wrote: Thu Oct 24, 2019 6:30 am Witam.
Mam takie pytanie.
Jak zrobić programową blokadę przycisku fizycznego za pomocą wirtualnego GPIO?
Chodzi o blokadę na przykład przycisku na posesji do otwierania furtki z poziomu aplikacji.
pozdrawiam
w supla_board_configuration ustawiacie:
Code: Select all
#define PIN_RELAY 4
#define PIN_BUTTON 0
#define VIRTUAL_PIN_LOCK 99
void supla_board_configuration(void) {
add_Relay_Button(PIN_RELAY, PIN_BUTTON, CHOICE_TYPE, 500);
add_Relay(VIRTUAL_PIN_LOCK);
}
Code: Select all
uint8_t state_lock;
int supla_DigitalRead(int channelNumber, uint8_t pin) {
if (pin == VIRTUAL_PIN_LOCK) {
return state_lock;
}
if (pin == PIN_BUTTON && state_lock == 1) {
return state_lock;
}
return digitalRead(pin);
}
void supla_DigitalWrite(int channelNumber, uint8_t pin, uint8_t val) {
if (pin == VIRTUAL_PIN_LOCK && val != state_lock) {
state_lock = val;
return;
}
digitalWrite(pin, val);
}
Code: Select all
SuplaDevice.setDigitalReadFuncImpl(&supla_DigitalRead);
SuplaDevice.setDigitalWriteFuncImpl(&supla_DigitalWrite);
https://gui-generic-builder.supla.io/
-
Arek.kandula
- Posts: 411
- Joined: Mon Dec 24, 2018 8:52 am
Czy jakiś miły kolega zrobi bo kod pod bme280. będę bardzo wdzięczny.
