/**************************************************************************
* Progetto : Nodo01 Eth - Gateway - Arduino Mega 2560 + Ethernet W5100 mod 3 node E01 E02 E03
* Autore : MIX DromegaWeb/Ronnie C
****************************************************************************/
//DROMEGAWEB
// Let the IDE point to the Souliss framework
#include "SoulissFramework.h"
// Indirizzo MAC per Scheda Ethernet Nodo01
// "0xBF" identifica la mia rete BF
#define MAC_INSKETCH
// L'ultimo indirizzo "0x01" identifica il Nodo01
uint8_t MAC_ADDRESS[] = {0x1A, 0xA6, 0x49, 0x6B, 0xBF, 0x01};
#define AUTO_MAC 0
#define MAC_DEBUG 0
// Configure the framework
// Uso un Arduino standard
#include "bconf/StandardArduino.h"
// Uso connessione Ethernet Wiznet W5100
#include "conf/ethW5100.h"
// Uso il nodo come Gateway Souliss
#include "conf/Gateway.h"
#include <SPI.h>
#include "Souliss.h"
// ----INIZIO definizione della configurazione di rete --DromegaWeb----
// Indirizzo IP Router
#define ip_Router 1
// Indirizzo IP Gateway Souliss
#define ip_Gateway 20
// Indirizzo IP su Ethernet Nodo02
#define ip_Eth_N2 21
// Indirizzo IP su Ethernet Nodo03
#define ip_Eth_N3 22
// Indirizzo IP Gateway Router
uint8_t ip_gateway_Router[4] = {192, 168, 1, ip_Router};
// Indirizzo IP Gateway Souliss su Ethernet Arduino Mega
uint8_t ip_address_Gw[4] = {192, 168, 1, ip_Gateway};
// Indirizzo su Ethernet Nodo02
uint8_t ip_address_E2[4] = {192, 168, 1, ip_Eth_N2};
// Indirizzo su Ethernet Nodo03
uint8_t ip_address_E3[4] = {192, 168, 1, ip_Eth_N3};
// Indirizzo Subnet Mask
uint8_t subnet_mask[4] = {255, 255, 255, 0};
// Ultimo Byte dell' IP Address (11) è anche l'indirizzo vNet
#define myvNet_address ip_address_Gw[3]
#define myvNet_subnet 0xFF00
#define myvNet_supern 0x0000
#define myvNet_supern_E2 Nodo02_Bridge01_RS485
#define myvNet_supern_E3 Nodo03_Bridge02_RS485
// Indirizzo Nodo02 Bridge01 della Seriale RS485
#define Nodo02_Bridge01_RS485 0xCE01
// Indirizzo Nodo03 Bridge02 della Seriale RS485
#define Nodo03_Bridge02_RS485 0xCF01
// -------FINE definizione della configurazione di rete --DromegaWeb------
// RONNIE C. (accensione) +DROMEGAWEB (Rete)
// Define a step relay
#define STEPPER1 0
void setup()
{
Initialize();
// Questo nodo sarà --> 192.168.1.1
Souliss_SetIPAddress(ip_address_Gw, subnet_mask, ip_gateway_Router);
// Questo nodo è Gateway Souliss app
SetAsGateway(myvNet_address);
// Definisco Nodo02 Eth + Bridge01 RS485
SetAsPeerNode(ip_Eth_N2, 21);
// Definisco Nodo03 Eth + Bridge02 RS485
SetAsPeerNode(ip_Eth_N3, 22);
// Define the logics for this node
Set_StepRelay(STEPPER1);
// Define inputs (hardware pulldown required) and outputs pins
pinMode(26, INPUT); // Toggle command for light 1
pinMode(22, OUTPUT); // Power to relay coil for light 1
}
void loop()
{
EXECUTEFAST() {
UPDATEFAST();
FAST_50ms() { // We process the logic and relevant input and output every 50 milliseconds
// Read the command input and the actual state from the step relay
DigOut(22, Souliss_T1n_Coil, STEPPER1);
DigIn2State(26, Souliss_T1n_OnFeedback, Souliss_T1n_OffFeedback, STEPPER1);
// Process the logic and give an output command
Logic_StepRelay(STEPPER1);
}
FAST_x10ms(10) {
// The output coil to the step relay is active for five cycle, so approximately five times 100 ms
// use a different value to match your requirements
Timer_StepRelay(STEPPER1);
}
//Qui elaboriamo tutte le comunicazioni con altri nodi la Souliss App
FAST_GatewayComms();
}
EXECUTESLOW() {
UPDATESLOW();
}
}
Eccomi di nuovo seguendo il consiglio di Giuseppe ho recuperato 2 sketch, uno di DROMEGAWEB nel quale vengono predisposti 3 nodi di cui uno Gateway (nel quale ho messo il codice allegato) e gli altri 2 nell’ipotesi che voglia infuturo mettere.
Una piccola premessa:
· impianto elettrico tradizionale (illuminazione) con pulsante e relè bipolare passo - passo (per prova ho acquistato due relè ABB E252-12 16A bobina 24VAC) testato al banco funziona correttamente ad ogni impulso si accende e si spegne regolarmente la lampada associata
· dispongo di un Arduino Mega 2560 con associata una scheda Ethernet W5100
· dispongo di una scheda da 8 relay della Songle
· collegato regolarmente il 1° dei relay (gli altri li ho lasciati liberi per il momento) della scheda Songle in parallelo al pulsante
· scaricata la APP di Souliss sul telefono
Fin qui tutto bene, anche lo sketch allegato viene regolarmente processato/caricato dal programma Arduino sulla scheda.
A questo punto però accade che:
· al termine del caricamento si eccita il relay della scheda Songle e la lampada si accende e fin qui nulla di strano, pigio il pulsante per spegnere la luce, ma non succede nulla, apro la APP Souliness sul cellulare, vedo la connessione perfettamente funzionante, ma se pigio (sulla APP) i tasti spegni o accendi non succede nulla.
Premetto che non ho collegato la parte feedback dal relè bipolare passo-passo verso Arduino (ma non so quanto possa essere fondamentale a meno che non chiudendo il circuito questa è la situazione), comunque non so se manca qualcosa nel codice che mi sia sfuggita.
La mia intenzione è cominciare a creare un impianto elettrico tradizionale, per ora al banco basta una lampada, ma credo che una volta che funziona la APP sul cellulare, il comando esterno da pulsante, il circuito e sw caricati sulla sketch, si tratta solo di replicare le righe di codice per altre utenze.
Chiedo a Voi lumi e un aiuto per la soluzione di quanto esposto.
Sto predisponendo il tutto per una nuova casa e l’impianto elettrico è la prima parte, poi seguiranno gestione tapparelle, allarme, sensori, videocamere, assorbimento utenze, ma diamo tempo al tempo l’impianto elettrico è PRIORITARIO!
Vi prego datemi una mano il tempo stringe.
Un saluto
Claudio
In allegato Vi riporto:
Claudio
--
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/b2eca0dc-4ff3-4713-a0c4-c1b9e091b59e%40googlegroups.com.
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/0cdedd71-687e-4840-99c7-f0f2b94c7519%40googlegroups.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/516e5d4c-8f92-4c31-a2ed-a099188f06f2%40googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/CAPXhohsSb7%3DEf9b-aBUR%3DHM%3DZFKPP_1e5XBTV2DvHWLPh4DaTQ%40mail.gmail.com.
Per annullare l'iscrizione a questo argomento, visita https://groups.google.com/d/topic/souliss-it/n8I5CC4VARk/unsubscribe.
Per annullare l'iscrizione a questo gruppo e a tutti i suoi argomenti, invia un'email a souliss-it+unsubscribe@googlegroups.com.
Per visualizzare questa discussione sul Web, visita https://groups.google.com/d/msgid/souliss-it/CANVP0WSFOPidpeRuXSAQLD2A95RcdYtVJyuia0TUDkye__ne9g%40mail.gmail.com.
Grazie per l'attenzione Buona serata
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/a5c27028-0171-4a76-8290-c939e0e90880%40googlegroups.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/a5c27028-0171-4a76-8290-c939e0e90880%40googlegroups.com.
Di fatto costruisci un opto 220vac ingresso 5vdc uscita ;)
--
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/410aec4a-000d-4c85-8b90-7b5953da8369%40googlegroups.com.
FAST_110ms() {
// Get step relais status
Souliss_DigIn2State(IN1, Souliss_T1n_OnFeedback, Souliss_T1n_OffFeedback, memory_map, STEPPER1);
Souliss_DigIn2State(IN2, Souliss_T1n_OnFeedback, Souliss_T1n_OffFeedback, memory_map, STEPPER2);
Souliss_DigIn2State(IN3, Souliss_T1n_OnFeedback, Souliss_T1n_OffFeedback, memory_map, STEPPER3);
Souliss_DigIn2State(IN4, Souliss_T1n_OnFeedback, Souliss_T1n_OffFeedback, memory_map, STEPPER4);
// Process step relais logic
Souliss_Logic_T18(memory_map, STEPPER1, &data_changed);
Souliss_Logic_T18(memory_map, STEPPER2, &data_changed);
Souliss_Logic_T18(memory_map, STEPPER3, &data_changed);
Souliss_Logic_T18(memory_map, STEPPER4, &data_changed);
// Process output logic
Souliss_DigOut(RELAY1, Souliss_T1n_Coil, memory_map, STEPPER1);
Souliss_DigOut(RELAY2, Souliss_T1n_Coil, memory_map, STEPPER2);
Souliss_DigOut(RELAY3, Souliss_T1n_Coil, memory_map, STEPPER3);
Souliss_DigOut(RELAY4, Souliss_T1n_Coil, memory_map, STEPPER4);
}
FAST_x10ms(10) {
// Process timers for step relais commands (output pulse legnht)
Souliss_T18_Timer(memory_map, STEPPER1);
Souliss_T18_Timer(memory_map, STEPPER2);
Souliss_T18_Timer(memory_map, STEPPER3);
Souliss_T18_Timer(memory_map, STEPPER4);
}
--
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/6806cc98-796c-4742-bc55-ae0d754a719e%40googlegroups.com.
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.
A fronte delle modifiche di seguito riportate
l risultato è stato “positivo”, il tutto funziona regolarmente sia da Souliss APP che da pulsanti, unica nota stonata la rumorosità dei relè pertanto se avete qualche suggerimento ben venga!
Ovviamente l’appetito vien mangiando pertanto Vi sottopongo altri due quesiti:
Comunque man mano che vado avanti mi si sta aprendo un mondo e spero non di certo di diventare bravo come Voi, ma almeno di capire ciò che faccio leggendo e sfruttando i vs suggerimenti/correzioni.
Approfitto ancora una volta per ringraziarVi, prossimo passo gestione tapparelle….