Relier à la Gateway
Re: Relier à la Gateway
à mon avis, ce n'est pas qu'une question de connectique, il doit falloir programmer aussi l' uno pour qu'il lise ce qu'envoie le mini pro...
et là, ca se complique...
Es tu sur que cela vient de la liaison sans fil ? Alim ? branchements ? Programmation mini pro ?
Sinon, tu peux essayer de trouver des programmes simples pour tester la laison entre deux arduino (allumage LED, ...)
et là, ca se complique...
Es tu sur que cela vient de la liaison sans fil ? Alim ? branchements ? Programmation mini pro ?
Sinon, tu peux essayer de trouver des programmes simples pour tester la laison entre deux arduino (allumage LED, ...)
domoticien amateur option bidouille
Re: Relier à la Gateway
Hello!!
Bon je viens de repasser l'après midi a faire des essai. Pour la 3" fois je suis repartit de O!!!
J'ai tout debrancher l'arduino uno et mini, tout réinstaller recabler et.....Ca fonctionne!!!!!!!!!!!!!!!!!
Me demande pas comment j'en sais rien.
La les 2 antennes cote a cote ça marche c'est déja un Enorme pas en avant.
Maintenant petit soucis quand meme car sinon se serai trop beau....dans Domoticz la commande est inversé, c'est a dire quand je clique sur mon interrupteur pour allumer ca s'eteind et inversement quand je clique pour éteindre ca s'allume....
Après faut que je regarde comment alimenter la pro mini et le module radio a distance car pourl'instant c'est relié direct sur arduino uno.
C'est pas evident car le moduleradio demande 3.2volts et la pro mini 5v!!!
En fait quand le voyant sur la carte relais est allumé dans Domoticz l'interrupteur est sur Off et si le voyant sur la carte est eteind l'interrupteur dans Domoticz est sur On
Bon je viens de repasser l'après midi a faire des essai. Pour la 3" fois je suis repartit de O!!!
J'ai tout debrancher l'arduino uno et mini, tout réinstaller recabler et.....Ca fonctionne!!!!!!!!!!!!!!!!!
Me demande pas comment j'en sais rien.
La les 2 antennes cote a cote ça marche c'est déja un Enorme pas en avant.
Maintenant petit soucis quand meme car sinon se serai trop beau....dans Domoticz la commande est inversé, c'est a dire quand je clique sur mon interrupteur pour allumer ca s'eteind et inversement quand je clique pour éteindre ca s'allume....
Après faut que je regarde comment alimenter la pro mini et le module radio a distance car pourl'instant c'est relié direct sur arduino uno.
C'est pas evident car le moduleradio demande 3.2volts et la pro mini 5v!!!
En fait quand le voyant sur la carte relais est allumé dans Domoticz l'interrupteur est sur Off et si le voyant sur la carte est eteind l'interrupteur dans Domoticz est sur On
Re: Relier à la Gateway
bonne nouvelle ;
pour l'alimentation, 3 piles de 1,5 V et ca devrait passer.
Je ne suis pas aller revoir les config mais je sais que j'ai des convertisseurs 5 / 3.3 V...
ca doit servir à quelque chose
pour l'alimentation, 3 piles de 1,5 V et ca devrait passer.
Je ne suis pas aller revoir les config mais je sais que j'ai des convertisseurs 5 / 3.3 V...
ca doit servir à quelque chose
domoticien amateur option bidouille
Re: Relier à la Gateway
Pour l'alim du pro mini j'ai trouvé dans mon stock un vieux chargeur de tel qui me délivre les 5 volts.
Le soucis c'est pour alimenter l'emetteur j'ai pris 2 piles de 1.5v mais ça ne marche pas, les piles peut etre trop vieilles car en test je n'ai que 2.9v.
Je vais essayer de me faire un convertisseur 5v 3.3v.
Quand ce sera fait je pourrais tester dans toute la
maison et voir si je passe mes murs!!!
Le soucis c'est pour alimenter l'emetteur j'ai pris 2 piles de 1.5v mais ça ne marche pas, les piles peut etre trop vieilles car en test je n'ai que 2.9v.
Je vais essayer de me faire un convertisseur 5v 3.3v.
Quand ce sera fait je pourrais tester dans toute la
Re: Relier à la Gateway
Resultat de mes tests::
Pour l'alim 3.3v j'ai recuperer une ancienne alim de Pc, j'ai le 5v dessus et le 3.3v. Facile pour faire des essais dans toute la maison.
Et le resultat est PARFAIT!!!!!
J'arrive a envoyer le signal de partout ça passe les murs sans soucis.
Le seul prob si je dois dire c'est quand je suis au fond de la cour porte fermée la ça passe pas, j'ouvre la porte et c'est ok. Je pense ça ne seraq pas un soucis car au niveau de la porte je vais mettre un detecteur d'ouverture qui me permettra de capter et renvoyer le signal du fond de la cour.
Prochaine étape avoir une alim correct pour l'antenne et le pro mini, et regler mon soucis d'inversion de on off. Peut etre en bidouillant le programme et inverser le 1 et le 0...
Pour l'alim 3.3v j'ai recuperer une ancienne alim de Pc, j'ai le 5v dessus et le 3.3v. Facile pour faire des essais dans toute la maison.
Et le resultat est PARFAIT!!!!!
J'arrive a envoyer le signal de partout ça passe les murs sans soucis.
Le seul prob si je dois dire c'est quand je suis au fond de la cour porte fermée la ça passe pas, j'ouvre la porte et c'est ok. Je pense ça ne seraq pas un soucis car au niveau de la porte je vais mettre un detecteur d'ouverture qui me permettra de capter et renvoyer le signal du fond de la cour.
Prochaine étape avoir une alim correct pour l'antenne et le pro mini, et regler mon soucis d'inversion de on off. Peut etre en bidouillant le programme et inverser le 1 et le 0...
Re: Relier à la Gateway
Des nouvelles
Un moment que je suis plus passé trop occupé a peaufiner mon instal à base de MySensor!!
Donc le soucis d'inversion on off une simple modif du code et c'était bon.
Pour l'alim j'ai fabriqué une regul de tension a 3.3v relié sur mon chargeur telephone 5v. Donc du coup avec un meme chargeur j'alimente l'arduino nano et l'antenne..
Sur ce premier sensor j'ai relié 3 relais commandé soit par un simple bouton poussoir soit commandé par Domoticz. Si l'on actionne le bouton poussoir l'info est remonté dans domoticz sans soucis.
Pendant les premiers 10 jours d'essai j'ai pu me rendre compte que tout ceci fonctionnait assé aléatoirement. Parfois a marche parfois ca marche pas..
J'ai donc pensé a un soucis d'emission. L'emetteur étant très éloigné du récepteur et de plus niché sous un escalier (l'emetteur). J'ai donc pensé déplacé juste la partie antenne. J'ai donc déporté tout le circuit antenne a environs 2 metres du nano , relié par des fils rallongé pour la cause. Et bien ça marche pas du tout. J'ai du déporté aussi le nano et laissé juste les 3 relais sous l'escalier et du coup ça fonctionne!!!
Depuis plus d'une semaine que j'ai fait cette modif fonctionnement à 100% sans beug.
Du coup j'ai commandé une autre serie de sensor et relais pour continuer mon instal
Un moment que je suis plus passé trop occupé a peaufiner mon instal à base de MySensor!!
Donc le soucis d'inversion on off une simple modif du code et c'était bon.
Pour l'alim j'ai fabriqué une regul de tension a 3.3v relié sur mon chargeur telephone 5v. Donc du coup avec un meme chargeur j'alimente l'arduino nano et l'antenne..
Sur ce premier sensor j'ai relié 3 relais commandé soit par un simple bouton poussoir soit commandé par Domoticz. Si l'on actionne le bouton poussoir l'info est remonté dans domoticz sans soucis.
Pendant les premiers 10 jours d'essai j'ai pu me rendre compte que tout ceci fonctionnait assé aléatoirement. Parfois a marche parfois ca marche pas..
Depuis plus d'une semaine que j'ai fait cette modif fonctionnement à 100% sans beug.
Du coup j'ai commandé une autre serie de sensor et relais pour continuer mon instal
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Relier à la Gateway
Salut,
Peux tu partager code et schémas s'il te plait.
Peux tu partager code et schémas s'il te plait.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
Re: Relier à la Gateway
Alors pour le schema je me suis inspiré de cette page, j'ai simplement rajouté 2 relais et 2 boutons en plus:
http://forum.mysensors.org/topic/799/my-relay-module
Pour le branchement de ces 2 relais supplémentaires se réferer au code ci-dessous pour voir sur quel pin les branchers. C'est hyper fastoche:
_______________________________________________________________________________________________
#include <MySensor.h>
#include <SPI.h>
#include <Bounce2.h>
#define RELAY_PIN1 3 // Arduino Digital I/O pin number for relay
#define RELAY_PIN2 4 // Arduino Digital I/O pin number for relay
#define RELAY_PIN3 5 // Arduino Digital I/O pin number for relay
#define BUTTON_PIN1 6 // Arduino Digital I/O pin number for button
#define BUTTON_PIN2 7 // Arduino Digital I/O pin number for button
#define BUTTON_PIN3 8 // Arduino Digital I/O pin number for button
#define CHILD_ID 1 // Id of the sensor child
#define RELAY_ON 0
#define RELAY_OFF 1
Bounce debouncer1 = Bounce();
Bounce debouncer2 = Bounce();
Bounce debouncer3 = Bounce();
int oldValue1=0;
int oldValue2=0;
int oldValue3=0;
bool state1;
bool state2;
bool state3;
MySensor gw;
MyMessage msg1(1,V_LIGHT);
MyMessage msg2(2,V_LIGHT);
MyMessage msg3(3,V_LIGHT);
void setup()
{
gw.begin(incomingMessage, AUTO, true);
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("Relay & Button", "1.0");
// Setup the button
pinMode(BUTTON_PIN1,INPUT);
pinMode(BUTTON_PIN2,INPUT);
pinMode(BUTTON_PIN3,INPUT);
// Activate internal pull-up
digitalWrite(BUTTON_PIN1,HIGH);
digitalWrite(BUTTON_PIN2,HIGH);
digitalWrite(BUTTON_PIN3,HIGH);
// After setting up the button, setup debouncer
debouncer1.attach(BUTTON_PIN1);
debouncer2.attach(BUTTON_PIN2);
debouncer3.attach(BUTTON_PIN3);
debouncer1.interval(5);
debouncer2.interval(5);
debouncer3.interval(5);
// Register all sensors to gw (they will be created as child devices)
gw.present(1, S_LIGHT);
gw.present(2, S_LIGHT);
gw.present(3, S_LIGHT);
// Make sure relays are off when starting up
digitalWrite(RELAY_PIN1, RELAY_OFF);
digitalWrite(RELAY_PIN2, RELAY_OFF);
digitalWrite(RELAY_PIN3, RELAY_OFF);
// Then set relay pins in output mode
pinMode(RELAY_PIN1, OUTPUT);
pinMode(RELAY_PIN2, OUTPUT);
pinMode(RELAY_PIN3, OUTPUT);
// Set relay to last known state (using eeprom storage)
state1 = gw.loadState(1);
digitalWrite(RELAY_PIN1, state1?RELAY_ON:RELAY_OFF);
state2 = gw.loadState(2);
digitalWrite(RELAY_PIN2, state2?RELAY_ON:RELAY_OFF);
state3 = gw.loadState(3);
digitalWrite(RELAY_PIN3, state3?RELAY_ON:RELAY_OFF);
}
/*
* Example on how to asynchronously check for new messages from gw
*/
void loop()
{
gw.process();
debouncer1.update();
debouncer2.update();
debouncer3.update();
// Get the update value
int value1 = debouncer1.read();
if (value1 != oldValue1 && value1==0) {
gw.send(msg1.set(state1?false:true), true); // Send new state and request ack back
}
oldValue1 = value1;
// Get the update value
int value2 = debouncer2.read();
if (value2 != oldValue2 && value2==0) {
gw.send(msg2.set(state2?false:true), true); // Send new state and request ack back
}
oldValue2 = value2;
// Get the update value
int value3 = debouncer3.read();
if (value3 != oldValue3 && value3==0) {
gw.send(msg3.set(state3?false:true), true); // Send new state and request ack back
}
oldValue3 = value3;
}
void incomingMessage(const MyMessage &message) {
// We only expect one type of message from controller. But we better check anyway.
if (message.isAck()) {
Serial.println("This is an ack from gateway");
}
if (message.type == V_LIGHT) {
// Change relay state
if(message.sensor==1){
digitalWrite(RELAY_PIN1, message.getBool()?RELAY_ON:RELAY_OFF);
state1=message.getBool();
}
if(message.sensor==2){
digitalWrite(RELAY_PIN2, message.getBool()?RELAY_ON:RELAY_OFF);
state2=message.getBool();
}
if(message.sensor==3){
digitalWrite(RELAY_PIN3, message.getBool()?RELAY_ON:RELAY_OFF);
state3=message.getBool();
}
// Store state in eeprom
gw.saveState(message.sensor, message.getBool());
// Write some debug info
Serial.print("Incoming change for sensor:");
Serial.print(message.sensor);
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}
________________________________________________________________________________________________
Autre chose que j'ai découvert: le soucis que j'avais pour les commandes inversés: pour rappel le relais au repos, la lumiére était allumé, et la lumière éteinte le relais était actif. Vous allez me dire suffit d'inversé les fils sur le relais entre NO et NC....sauf que dans domoticz si la lumière est éteinte elle est allumé en réalité et vice versa.
J'ai contourné le soucis en modifiant le programme en mettant pin on sur 0 et pin off sur 1.
Aujourd'hui j'ai installé un autre relais et meme soucis. J'avais pas envie de recompiler le programme car je n'ai pour l'instant qu'un seul Arduino que j'utilise pour programmer et comme passerelle.
Je me suis dit doit y avoir un truc car pas très logique que lorsqu'on branche le relais sur le 5v celui-ci s'active direct et le fait d'envoyer la commande
ON le désactive.
J'ai donc pensé au petit cavalier sur la carte relais mais j'ai rien trouvé sur sa fonction (ou j'ai mal cherché...
) . J'ai tenté le coup en déplacant ce cavalier et Bingo ça a fonctionné!!!
Ce cavalier permet donc d'inverser les commandes du relais!!

http://forum.mysensors.org/topic/799/my-relay-module
Pour le branchement de ces 2 relais supplémentaires se réferer au code ci-dessous pour voir sur quel pin les branchers. C'est hyper fastoche:
_______________________________________________________________________________________________
#include <MySensor.h>
#include <SPI.h>
#include <Bounce2.h>
#define RELAY_PIN1 3 // Arduino Digital I/O pin number for relay
#define RELAY_PIN2 4 // Arduino Digital I/O pin number for relay
#define RELAY_PIN3 5 // Arduino Digital I/O pin number for relay
#define BUTTON_PIN1 6 // Arduino Digital I/O pin number for button
#define BUTTON_PIN2 7 // Arduino Digital I/O pin number for button
#define BUTTON_PIN3 8 // Arduino Digital I/O pin number for button
#define CHILD_ID 1 // Id of the sensor child
#define RELAY_ON 0
#define RELAY_OFF 1
Bounce debouncer1 = Bounce();
Bounce debouncer2 = Bounce();
Bounce debouncer3 = Bounce();
int oldValue1=0;
int oldValue2=0;
int oldValue3=0;
bool state1;
bool state2;
bool state3;
MySensor gw;
MyMessage msg1(1,V_LIGHT);
MyMessage msg2(2,V_LIGHT);
MyMessage msg3(3,V_LIGHT);
void setup()
{
gw.begin(incomingMessage, AUTO, true);
// Send the sketch version information to the gateway and Controller
gw.sendSketchInfo("Relay & Button", "1.0");
// Setup the button
pinMode(BUTTON_PIN1,INPUT);
pinMode(BUTTON_PIN2,INPUT);
pinMode(BUTTON_PIN3,INPUT);
// Activate internal pull-up
digitalWrite(BUTTON_PIN1,HIGH);
digitalWrite(BUTTON_PIN2,HIGH);
digitalWrite(BUTTON_PIN3,HIGH);
// After setting up the button, setup debouncer
debouncer1.attach(BUTTON_PIN1);
debouncer2.attach(BUTTON_PIN2);
debouncer3.attach(BUTTON_PIN3);
debouncer1.interval(5);
debouncer2.interval(5);
debouncer3.interval(5);
// Register all sensors to gw (they will be created as child devices)
gw.present(1, S_LIGHT);
gw.present(2, S_LIGHT);
gw.present(3, S_LIGHT);
// Make sure relays are off when starting up
digitalWrite(RELAY_PIN1, RELAY_OFF);
digitalWrite(RELAY_PIN2, RELAY_OFF);
digitalWrite(RELAY_PIN3, RELAY_OFF);
// Then set relay pins in output mode
pinMode(RELAY_PIN1, OUTPUT);
pinMode(RELAY_PIN2, OUTPUT);
pinMode(RELAY_PIN3, OUTPUT);
// Set relay to last known state (using eeprom storage)
state1 = gw.loadState(1);
digitalWrite(RELAY_PIN1, state1?RELAY_ON:RELAY_OFF);
state2 = gw.loadState(2);
digitalWrite(RELAY_PIN2, state2?RELAY_ON:RELAY_OFF);
state3 = gw.loadState(3);
digitalWrite(RELAY_PIN3, state3?RELAY_ON:RELAY_OFF);
}
/*
* Example on how to asynchronously check for new messages from gw
*/
void loop()
{
gw.process();
debouncer1.update();
debouncer2.update();
debouncer3.update();
// Get the update value
int value1 = debouncer1.read();
if (value1 != oldValue1 && value1==0) {
gw.send(msg1.set(state1?false:true), true); // Send new state and request ack back
}
oldValue1 = value1;
// Get the update value
int value2 = debouncer2.read();
if (value2 != oldValue2 && value2==0) {
gw.send(msg2.set(state2?false:true), true); // Send new state and request ack back
}
oldValue2 = value2;
// Get the update value
int value3 = debouncer3.read();
if (value3 != oldValue3 && value3==0) {
gw.send(msg3.set(state3?false:true), true); // Send new state and request ack back
}
oldValue3 = value3;
}
void incomingMessage(const MyMessage &message) {
// We only expect one type of message from controller. But we better check anyway.
if (message.isAck()) {
Serial.println("This is an ack from gateway");
}
if (message.type == V_LIGHT) {
// Change relay state
if(message.sensor==1){
digitalWrite(RELAY_PIN1, message.getBool()?RELAY_ON:RELAY_OFF);
state1=message.getBool();
}
if(message.sensor==2){
digitalWrite(RELAY_PIN2, message.getBool()?RELAY_ON:RELAY_OFF);
state2=message.getBool();
}
if(message.sensor==3){
digitalWrite(RELAY_PIN3, message.getBool()?RELAY_ON:RELAY_OFF);
state3=message.getBool();
}
// Store state in eeprom
gw.saveState(message.sensor, message.getBool());
// Write some debug info
Serial.print("Incoming change for sensor:");
Serial.print(message.sensor);
Serial.print(", New status: ");
Serial.println(message.getBool());
}
}
________________________________________________________________________________________________
Autre chose que j'ai découvert: le soucis que j'avais pour les commandes inversés: pour rappel le relais au repos, la lumiére était allumé, et la lumière éteinte le relais était actif. Vous allez me dire suffit d'inversé les fils sur le relais entre NO et NC....sauf que dans domoticz si la lumière est éteinte elle est allumé en réalité et vice versa.
J'ai contourné le soucis en modifiant le programme en mettant pin on sur 0 et pin off sur 1.
Aujourd'hui j'ai installé un autre relais et meme soucis. J'avais pas envie de recompiler le programme car je n'ai pour l'instant qu'un seul Arduino que j'utilise pour programmer et comme passerelle.
Je me suis dit doit y avoir un truc car pas très logique que lorsqu'on branche le relais sur le 5v celui-ci s'active direct et le fait d'envoyer la commande
ON le désactive.
J'ai donc pensé au petit cavalier sur la carte relais mais j'ai rien trouvé sur sa fonction (ou j'ai mal cherché...
Ce cavalier permet donc d'inverser les commandes du relais!!
-
vil1driver
- Messages : 5661
- Inscription : 30 janv. 2015, 11:07
- Localisation : Rennes (35)
Re: Relier à la Gateway
Merci, vraiment super.
MAJ = VIDER LE CACHE(<-Clicable)
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien
/!\Les mises à jour de Domoticz sont souvent sources de difficultés, ne sautez pas dessus
modules.lua
Un ex domoticzien