--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/N8wG80Px4wE/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/67eb3f96-769b-41c0-96fb-df6d80cc6038%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/67eb3f96-769b-41c0-96fb-df6d80cc6038%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
-- Inviato dal mio cellulare Android con K-@ Mail.
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/cdc3a83d-8069-4450-b9a4-3bb38be1a71a%40gmail.com.
int StatoPRIMA=0;
int StatoAttuale=0;
int Impulsi=0;void setup() {
Serial.begin(9600);
pinMode(2, INPUT);
}void loop() {
StatoAttuale = digitalRead(2);
if (StatoAttuale!= StatoPRIMA){
Impulsi= Impulsi+1;
}
if (Impulsi>1){
Serial.println(Impulsi);
Impulsi=0;
}
StatoPRIMA=StatoAttuale;
} if (Impulsi>1){
Serial.println(Impulsi);
Impulsi=0;
}Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/67eb3f96-769b-41c0-96fb-df6d80cc6038%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
-- Inviato dal mio cellulare Android con K-@ Mail.
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/4360c534-02ec-4fa3-903a-adf2bf52f364%40googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/CANVP0WRsgFVcF%2B5XkfRoo6bmrPKLzaE3qeHR0YAz-YHRdcapfw%40mail.gmail.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/4360c534-02ec-4fa3-903a-adf2bf52f364%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/N8wG80Px4wE/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/CANVP0WRsgFVcF%2B5XkfRoo6bmrPKLzaE3qeHR0YAz-YHRdcapfw%40mail.gmail.com.
Per altre opzioni visita https://groups.google.com/d/optout.
const int openCmdPin = 4; // Open Command from pushbutton
const int closeCmdPin = 5; // Close Command from pushbutton
const int openRelayPin = 12; // Open Relay
const int closeRelayPin = 13; // Close Relay
pinMode(15, OUTPUT); pinMode(7, OUTPUT)pinMode(?????????????, INPUT);
// ogni quanti ms controllare il numero di impulsi
const unsigned long IMP_CHECK_INTERVAL_MS = 500;// variabile utilizzata per la temporizzazione del controllo
// del numero di impulsi
unsigned long _impCheckIntervalPrevMillis = 0;// se rilevo questo numero di impulsi nell'arco
// di tempo identificato da IMP_CHECK_INTERVAL_MS,
// segnalo allarme
const byte NUM_IMPULSI_ALLARME = 3;// variabile utilizzata per contare gli impulsi
// il qualificatore "volatile" è necessario in quanto
// questa variabile viene utilizzata sia dalla ISR
// che dal ciclo principale
volatile byte numImpulsi = 0;
// funzione chiamata all'arrivo di un interrupt;
// il nome specifico non è importante;
// questa funzione deve essere il più breve possbile
void contaImpulsiISR() {
numImpulsi++;
}
// funzione eseguita quando viene rilevata la condizione allarme
void allarmeRilevato() {
// codice di esempio
Serial.println("allarme");
}
void setup() {
// impostazinoe della seriale hardware
// il serial monitor dell'IDE deve essere impostato
// sulla stessa velocità di tramissione
Serial.begin(115200);
digitalWrite(4, HIGH);
// segnala che la funzione denominata "isr" va eseguita
// quando lo stato del pin legato all'interrupt zero (su Arduino UNO è il pin 2)
// cambia stato
attachInterrupt(5, contaImpulsiISR, CHANGE);
}
void loop() {
if (millis() - _impCheckIntervalPrevMillis >= IMP_CHECK_INTERVAL_MS) {
_impCheckIntervalPrevMillis = millis();
noInterrupts();
boolean allarme = (numImpulsi >= NUM_IMPULSI_ALLARME) ? true : false;
numImpulsi = 0;
interrupts();
if (allarme) {
Serial.println("allarme");
}
}
}// ogni quanti ms controllare il numero di impulsi
const unsigned long IMP_CHECK_INTERVAL_MS = 500;
// variabile utilizzata per la temporizzazione del controllo
// del numero di impulsi
unsigned long _impCheckIntervalPrevMillis = 0;
// se rilevo questo numero di impulsi nell'arco
// di tempo identificato da IMP_CHECK_INTERVAL_MS,
// segnalo allarme
const byte NUM_IMPULSI_ALLARME = 3;
// variabile utilizzata per contare gli impulsi
// il qualificatore "volatile" è necessario in quanto
// questa variabile viene utilizzata sia dalla ISR
// che dal ciclo principale
volatile byte numImpulsi = 0;// funzione chiamata all'arrivo di un interrupt;
// il nome specifico non è importante;
// questa funzione deve essere il più breve possbile
void contaImpulsiISR() {
numImpulsi++;
}
const int rotellaPin = 5; // the number of pin of RotellaSensorif (millis() - _impCheckIntervalPrevMillis >= IMP_CHECK_INTERVAL_MS) {
_impCheckIntervalPrevMillis = millis();
noInterrupts();
boolean allarme = (numImpulsi >= NUM_IMPULSI_ALLARME) ? true : false;
numImpulsi = 0;
interrupts();
if (allarme) {
Serial.println("allarme");
mInput (ANTITHEFT) = Souliss_T4n_Alarm;
}
}Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/047bc2fb-9e6b-4d3f-a6b3-f84199658979%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/047bc2fb-9e6b-4d3f-a6b3-f84199658979%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
-- Inviato dal mio cellulare Android con K-@ Mail.
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/95a1b2eb-1190-40cc-8647-5b2720feca87%40gmail.com.
if ((statoPIR==1) and (statoPIR1 ==1) and(mOutput(Sensore_Attivo)==Souliss_T1n_OnCoil) and (mOutput(PIR_Attivo)==Souliss_T1n_OnCoil)){
//Serial.println("allarme PIR");
mInput (ANTITHEFT) = Souliss_T4n_Alarm;
}Mi rispondo da solo.....in allegato i tre file di esempio con
- Gateway
- Nodo Motore Tapparella
- Nodo Sensore Rotella con Doppio PIR
Il nodo tre contiene la funzione ATTACH INTERRUPT per fare da contaimpulsi al sensore Rotella;Sulla Carta funziona, in modalità debug con seriale gli allarmi vengono rilevati correttamente...Ho inserito anche una funzione che resetta gli impulsi ogni 10 minuti circa se non viene superata la soglia di allarme.Ho inserito dei T11 per gestire singolarmente lo stato (ATTIVATO/DISATTIVATO dell'intero nodo, solo del sensore rotella o solo del doppio PIRposso in definitiva
- Disattivare/attivare TUTTO il nodo (sensore rotella + PIR)
- Disattivare/attivare Solo il Sensore Rotella
- Disattivare Attivare solo il doppio PIR
IL T41 dell'antifurto è inserito nel GatewayLa domanda èCome faccio a leggere lo stato del T42 dal nodo peer??vorrei mettere un'altra condizione e cioè che il nodo peer deve eseguire questo codice solamente se lo stato del T42 Souliss_T4n_Antitheft è ARMED;
if ((statoPIR==1) and (statoPIR1 ==1) and(mOutput(Sensore_Attivo)==Souliss_T1n_OnCoil) and (mOutput(PIR_Attivo)==Souliss_T1n_OnCoil)){
//Serial.println("allarme PIR");
mInput (ANTITHEFT) = Souliss_T4n_Alarm;
}ho provato leggendo mOutput(ANTITHEFT) ma non funziona, la seriale mi dava sempre 0 anche quando lo attivavo.
Altro quesito...il limite preimpostato di 40-42 era riferito ai nodi o ai dispositivi?? NODI vai tranquillo
if ((numeroImpulsiRilevati>=NUM_IMPULSI_ALLARME) and (mOutput(Rotella_Attivo)==Souliss_T1n_OnCoil) and (mOutput(Sensore_Attivo)==Souliss_T1n_OnCoil) and (mOutput(ANTITHEFT)==Souliss_T4n_Antitheft)){
//Serial.println("allarme ");
mInput (ANTITHEFT) = Souliss_T4n_Alarm;
numeroImpulsiRilevati=0;
}and (mOutput(ANTITHEFT)==Souliss_T4n_Antitheft) if ((mOutput(Allarme)==Souliss_T1n_OffCoil) and (mOutput(ANTITHEFT)==Souliss_T4n_Antitheft)){
mInput(ANTITHEFT)=Souliss_T4n_NotArmed;
}
else if ((mOutput(Allarme)==Souliss_T1n_OnCoil) and (mOutput(ANTITHEFT)==Souliss_T4n_NoAntitheft)){
mInput(ANTITHEFT)=Souliss_T4n_Armed;
} if ((mOutput(Allarme)==Souliss_T1n_OnCoil) and (StatoPrima != String(mOutput(Allarme)))){
RemoteInput(Peer_address_n8, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n9, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n10, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n11, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n12, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n13, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n14, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n15, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n16, 0, Souliss_T1n_OnCmd);
RemoteInput(Peer_address_n17, 0, Souliss_T1n_OnCmd);
mInput(ANTITHEFT)= Souliss_T4n_Armed;
}
else if ((mOutput(Allarme)==Souliss_T1n_OffCoil) and (StatoPrima != String(mOutput(Allarme)))){
RemoteInput(Peer_address_n8, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n9, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n10, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n11, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n12, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n13, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n14, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n15, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n16, 0, Souliss_T1n_OffCmd);
RemoteInput(Peer_address_n17, 0, Souliss_T1n_OffCmd);
mInput(ANTITHEFT)= Souliss_T4n_NotArmed;
}
StatoPrima=String(mOutput(Allarme)); statoPIR=digitalRead(PIR_Pin);
statoPIR1=digitalRead(PIR1_Pin);
if ((statoPIR==1)
and (statoPIR1 ==1)
and (mOutput(Sensore_Attivo)==Souliss_T1n_OnCoil)
and (mOutput(PIR_Attivo)==Souliss_T1n_OnCoil)
and (mOutput(Allarme)==Souliss_T1n_OnCoil)
//and (mOutput(ANTITHEFT)!=Souliss_T4n_NoAntitheft)) {
//Serial.println("Allarme PIR");
mInput (ANTITHEFT) = Souliss_T4n_Alarm;
}--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/93cf9ca8-8e70-472c-9fec-69a596f6d96b%40googlegroups.com.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/N8wG80Px4wE/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/CAGuDwvfq68Ua1DLVkBaK90HoHxqVs_AO_hdh%2BzmTsd_u8Y%3DuwQ%40mail.gmail.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Non conviene usare un delay, ma fare in modo che i comandi siano eseguiti in fasi diverse, in modo da non fermare il nodo.
Ad esempio usando SHIFT invece che FAST si possono realizzare invii separati e cadenzati.
Dario.
Ciao Livio, anche se puoi sempre utilizzare la vecchia sintassi RemoteInput, cambiala con la Send...e poi per ovviare al tuo problema che ho già riscontrato io su di un nodo che tempo fa avevo messo in piedi, distanzia ogni send con un delay anche se non è il max, magari da (500)ms, con il mio nodo io dovevo inviare dei comandi dal nextion touch dove avevo inserito per ogni tasto uno scenario per comandare i nodi nella rete e mi sono accorto che a volte dovevo premere due volte per far passare tutti i comandi. Probabilmente questo accade perché i pacchetti dati vengono inviati rapidamente intasando la rete souliss
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per postare messaggi in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/b91a8fa4-9e32-4906-8d95-1966cbfc8565%40googlegroups.com.
Per ulteriori opzioni, visita https://groups.google.com/d/optout.
Non conviene usare un delay, ma fare in modo che i comandi siano eseguiti in fasi diverse, in modo da non fermare il nodo.
Ad esempio usando SHIFT invece che FAST si possono realizzare invii separati e cadenzati.
Dario.
On 13 Jun 2017 01:12, "Giuseppe P." <giusepp...@gmail.com> wrote:
Ciao Livio, anche se puoi sempre utilizzare la vecchia sintassi RemoteInput, cambiala con la Send...e poi per ovviare al tuo problema che ho già riscontrato io su di un nodo che tempo fa avevo messo in piedi, distanzia ogni send con un delay anche se non è il max, magari da (500)ms, con il mio nodo io dovevo inviare dei comandi dal nextion touch dove avevo inserito per ogni tasto uno scenario per comandare i nodi nella rete e mi sono accorto che a volte dovevo premere due volte per far passare tutti i comandi. Probabilmente questo accade perché i pacchetti dati vengono inviati rapidamente intasando la rete souliss
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+...@googlegroups.com.
A che distanza sono dal router wifi?
Ho notato che queste esp soffrono la distanza dal campo wifi.....se hai le esp in piani differenti ti conviene inserire un range extender per la tua rete wifi
Contralla bene le saldature dei pin ch_pd e reset e che siano ben connesse con resistenza di pulldown (rettifico PULLUP)
--
Hai ricevuto questo messaggio perché sei iscritto al gruppo "souliss-it" di Google Gruppi.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/N8wG80Px4wE/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+...@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/cc8faaa1-8c3a-46d0-8279-dc6a1dcbc606%40googlegroups.com.
Per altre opzioni visita https://groups.google.com/d/optout.
Per annullare l'iscrizione a questo gruppo e non ricevere più le sue email, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per postare in questo gruppo, invia un'email a souli...@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/2790b54c-d55b-4bff-98ed-646a115d9142%40googlegroups.com.