Si votre relais dispose d'une batterie de secours, il est intéressant de savoir si la tension d'alimentation secteur 230V de votre relais.

Nous allons utiliser une entrée optocouplée sur laquelle nous branchons un (ancien) transformateur d'alimentation de téléphone. Ce type d'alimentation à base de transformateur et régulateur en plus d'être disponible au fond des tiroirs, à l'avantage également de ne pas rayonner comme cela peut être le cas pour les bloc léger d'alimentation à découpage. Sa tension de charge indiqué sur son étiquette est de 3,7V. A vide, le voltmètre indique 9 V.

Raccordement

Le raccordement doit s'effectuer avec :

  1. JP16 ouvert (pas de cavalier en place)
  2. la mise en place d'une résistance R33
  3. le raccordement en Pin 2 du + du bloc transformateur, et Pin 9 ou Pin 10 du - du bloc.

La résistance R33 mise en place de 1 kΩ permet d'avoir une consommation de 6mA sur l'entrée de l'optocoupleur.

Code d'alerte

Nous avons choisi d'alerte l'utilisateur de la perte du secteur par un changement de la tonalité aux relachés de micro (roger beep du relais).

Cette portion de code doit être placé dans la fonction rgr_sound. Lorsque le secteur est absent, l'entrée GPIO24 passe à 0. A ce moment là, le beep habituel est remplacé par une tonalité d'ambulance (en France 3 tonalités: 420 Hz, 516 Hz, 420 Hz).

 sudo nano /usr/share/svxlink/events.d/local/Logic.tcl

#
# Executed when the squelch just have closed and the RGR_SOUND_DELAY timer has
# expired.
#
proc send_rgr_sound {} {
  variable sql_rx_id;
 
#Test de présence secteur  sur GPIO24 , J26 Basse tension entre pins 2 & 10, Jumper J16 ouvert
    if { [file exists /sys/class/gpio/gpio24/value]  } {
        set fd [open "/sys/class/gpio/gpio24/value" "r"]
        set absence_secteur [read $fd]
 
 
        if  {$absence_secteur == "1"} {
                #absence du secteur (Tonalité "Ambulance")
                #playTone Hz Vol Duration
                playTone 420 700 100;
                playTone 516 700 100;
                playTone 420 700 100;
                set rgr 1;
             }
    }
 
if {$rgr == 0 } {
  #playTone 440 200 100;
  CW::setCpm 100;
  CW::setPitch 1000;
  CW::setAmplitude 700;
  CW::play "K"
 }
 
  #playTone 440 500 100;
  #playSilence 200;
 
  #for {set i 0} {$i < $sql_rx_id} {incr i 1} {
  #  playTone 880 500 50;
  #  playSilence 50;
  #}
  playSilence 100;
}
 
 
 
 

Curieusement, malgré la tension fixe en sortie du CNY74, le Raspberry Pi de test renvoit la valeur 1 au lieu de 0 lorsque lon lit la valeur du gpio24 (cat /sys/class/gpio/gpio24/value).

Des essais avec la bibliothèque externes gpio sont à programmer.