mercredi 25 septembre 2019

Un Carillon de porte d''entrée MP3



Un Carillon de porte d'entrée MP3



Nous allons ici étudier la réalisation d'un carillon de porte d'entrée intelligent et éventuellement connecté. Celui-ci aura les fonctionnalités suivantes :
  • bouton de sonnette
  • détection d'approche infra-rouge
  • éclairage nocturne
  • diffusion de sons MP3
  • connexion optionnelle à un serveur domotique 
Comme j'étudie ce carillon pour plusieurs personnes différentes dont moi-même, l'électronique et le logiciel sont personnalisables, autrement dit certaines fonctionnalités sont optionnelles :
  • amplificateur audio ou non
  • éclairage basse tension 5V, 12V, 24V ou 230V
  • connexion à un serveur domotique ou non

1. Les fonctionnalités

1.1. bouton de sonnette

La sonnette est la fonctionnalité principale de ce montage.

Lorsque la personne appuie sur le bouton de sonnette, un son choisi est diffusé.

1.2. détection d'approche infra-rouge

Un détecteur d'approche infra-rouge est utilisé pour détecter une personne s'approchant de la porte. Un son choisi est diffusé et l'éclairage est allumé si la luminosité est faible.
Une LDR est utilisée pour mesurer la luminosité ambiante. Cette information peut être remontée à un serveur domotique si cette option est choisie.

Diffuser un son à l'approche d'une personne permet à l'occupant des lieux d'être averti à l'avance, et peut également avoir un caractère dissuasif :
  • aboiement de chien
  • bruit de pas
  • bruits domestiques
  • etc.

1.3. Diffusion de sons MP3

La diffusion des sons utilise le fameux DFPLAYER :
Le DFPLAYER est un lecteur de grande qualité, et associé à un amplificateur et un haut-parleur digne de ce nom, peut offrir un rendu très réaliste.

Les sons sont stockés sur une carte µSD intégrée au lecteur.

Le son diffusé lorsqu'une personne appuie sur le bouton de sonnette est stocké dans le répertoire 01 de la carte SD.

Le son diffusé à l'approche d'une personne est stocké dans le répertoire 02 de la carte SD.

Si une connexion avec un serveur domotique est disponible, il est possible de choisir ces sons depuis l'interface du serveur. Sinon un simple bouton-poussoir permet de faire ce choix.
Les numéros des sons choisis sont stockés en EEPROM.

La carte SD du DFPLAYER doit donc être organisée en deux répertoires :
  • 01 : répertoire des sonneries
  • 02 : répertoire des bruitages
Les sons doivent être obligatoirement numérotés sur 3 chiffres, mais ils peuvent être également nommés. Exemple :
  • répertoire 01 :
    • 001-cuckoo.mp3
    • 002-finch.mp3
    • 003-raven.mp3
    • 004-crow.mp3
    • 005-magpie.mp3
  • répertoire 02 :
    • 001-dog.mp3
    • 002-crocodile.mp3
    • 003-tyranosaurus.mp3
    • 004-gorilla.mp3
Comme vous le voyez, j'ai choisi de diffuser des bruits d'animaux.
Si l'aboiement de chien a toutes ses chances d'être crédible sous nos latitudes, il est bien évident que le crocodile, le tyrannosaure et le gorille seront plus utilisés pour surprendre des invités ayant le sens de l'humour.

1.4. connexion à un serveur domotique

Le serveur domotique pourra assurer les fonctions suivantes :
  • actionner la sonnette à distance
  • simuler une détection d'approche
  • choisir les sons à diffuser
Il recevra également l'information de détection d'approche, d'appui sur la sonnette et de luminosité ambiante.

Les possibilités sont innombrables. Il est possible d'écrire des scénarios ou des scripts pour réaliser certaines tâches :
  • activer une sonnerie dans une dépendance éloignée
  • envoyer un SMS, un email ou déclencher une caméra lorsqu'on sonne à la porte ou qu'une personne s'approche de la porte
  • changer de son tous les jours
  • produire un son différent le jour ou la nuit
  • changer de son aléatoirement au cours de la journée
  • etc.

2. Les choix matériels

2.1. L'audio

Le carillon prévoit deux raccordements possibles pour le haut-parleur :
  • raccordement direct sur la sortie du player si les 3W de puissance du DFPLAYER suffisent
  • raccordement à travers un amplificateur audio + réglage de volume
Une mélodie de carillon classique pourra se contenter d'un raccordement direct d'un haut-parleur de 3W sur le DFPLAYER, surtout si le haut-parleur a un rendement important.
Par contre pour obtenir un rendu réaliste de bruitages, 3W ne suffiront absolument pas.

Un amplificateur peut donc être ajouté sur la sortie du DFPLAYER, ainsi qu'un potentiomètre de réglage du volume. Je n'utilise pas le réglage de volume logiciel du module, comme expliqué ici : https://riton-duino.blogspot.com/2018/04/dfplayer-mini-et-bruit-de-fond.html

Avec un amplificateur du type PAM8403 alimenté en 5V on obtiendrait la même puissance qu'avec le DFPLAYER seul. Autant écarter cette solution sans intérêt.

L'amplificateur pourra être choisi en fonction de la puissance désirée (cet article peut aider à faire son choix) :

TDA8932

TPA3118

Pourquoi choisir un amplificateur en classe D ? Parce que ceux-ci fonctionnent en général avec un seul rail d'alimentation et n'ont pas besoin de dissipateur. Un amplificateur classe B du type LM3886 aura besoin d'une alimentation symétrique.

L'alimentation de l'amplificateur devra également être choisie en fonction de la puissance désirée, car ces modules peuvent en général être alimentés avec des tensions diverses. Par exemple pour un TDA8932 mono bridgé (BTL) :
  • 15W pour une alimentation de 12V et un HP de 4Ω
  • 30W pour une alimentation de 22V et un HP de 8Ω
Dans ce cas, l'alimentation de l'amplificateur peut être utilisée comme alimentation générale.

2.2. La détection infra-rouge

La détection infra-rouge est confiée à un PIR MH-SR602 :
On pourrait aussi utiliser un HC-SR501 mais il est volumineux et assez difficile à intégrer :
Comme l'alimentation des composants est réalisée en 3.3V, un HC-SR501 devra être légèrement modifié (voir ICI).
On peut aussi modifier le carillon pour alimenter un HC-SR501 en 5V.
Un MH-SR602 pourra être utilisé sans modification.

2.3. La sonnette

Le montage utilise un bouton-poussoir classique. Il n'est pas prévu d'utiliser un bouton sans fil.

2.4. L'éclairage

L'éclairage peut être assuré de différentes manières :
  • un ruban de LEDs 5V (2835 par exemple)
  • un ruban de LEDs 12V (5630 par exemple)
  • une ampoule basse tension 24V
  • un luminaire 230V commandé par un relais
La puissance d'un éclairage à LED  en 5V ou 12V peut être très faible.
Exemple : avec un ruban de 12 LEDs 5630 (chaque groupe de 3 LEDs est en série avec une résistance de 390Ω), le courant sous 12V sera de :

(12V - 3V) / 390Ω = 23mA pour 3 LEDs, donc 92mA en tout

La puissance sera de 92mA * 12V = 1.1W

Si un éclairage 5V, 12V ou 24V est utilisé il sera commandé par un MOSFET.
Une option logicielle DIMMER permet un allumage et une extinction progressifs.

Si un éclairage 230V est utilisé il sera commandé par un relais.

2.5. Serveur domotique

Un module radio NRF24L01 peut être implanté sur la carte si besoin. La librairie MYSENSORS est utilisée, assurant la compatibilité avec un grand nombre de serveurs (Domoticz, HomeGenie , Jeedom, etc.).

2.6. L'alimentation

2.6.1. L'alimentation générale
L'alimentation de base est de 5V, 12V ou 24V. Elle est utilisée pour alimenter l'éclairage 5V, 12V ou 24V ou le relais d'éclairage 230V suivant l'option choisie.
Cette tension peut être obtenue de différentes manières :
  • à partir d'une alimentation dédiée
  • à partir de l'alimentation 12V ou 24V de l'amplificateur audio
Si la tension d'alimentation générale est différente de celle de l'alimentation de l'amplificateur audio un régulateur 5V ou 12V permettra d'abaisser cette tension.

Remarque : la puissance nécessaire pour le carillon dépendra surtout de la puissance de l'éclairage basse tension si cette solution est choisie.

Si un éclairage en 230V est prévu, la puissance de l'alimentation générale pourra être très faible (quelques watts).

2.6.2. L'alimentation du DFPLAYER
Le DFPLAYER est alimenté en 5V. Si un haut-parleur est raccordé directement sur le DFPLAYER, celui-ci pourra ainsi fournir ses 3W.

Un LM7805 optionnel est prévu sur la carte principale, avec un dissipateur.
Si l'alimentation générale est elle-même en 5V, ce régulateur pourra être omis, et un cavalier est prévu pour le court-circuiter.

2.6.3. Le 3.3V
La tension d'alimentation des différents modules est de 3.3V, ceci afin de pouvoir utiliser une carte ARDUINO à consommation réduite. Les consommations sont faibles :
  • ARDUINO PRO MINI 8MHz : 6mA
  • NRF24L01 : 12mA
  • PIR MH-SR602 : 20µA
Comme l'alimentation générale peut être de 5V un régulateur LDO s'impose : un HT-7533-1 a été choisi.
Le HT-7533-1 est implanté sur la carte principale.

L'entrée du régulateur 3.3V est alimentée en 5V afin de diminuer sa dissipation. Il pourrait supporter une tension de 24V sur son entrée mais dans ce cas sa puissance dissipée monterait à 400mW. Or il supporte au maximum 250mW.

2.6.4. L'alimentation audio
Si un amplificateur est utilisé, une alimentation supplémentaire adaptée doit être ajoutée.
Comme dit plus haut elle pourra servir d'alimentation générale.

2.6.5. Quelle alimentation choisir ?
Il faut d'abord décider si l'on désire amplifier la sortie du DFPLAYER.

2.6.5.1. DFPLAYER seul
Si l'on choisit d'utiliser le DFPLAYER seul, tout va dépendre de l'éclairage. L'alimentation générale fournira la tension nécessaire à celui-ci.

Si l'éclairage prévu est en 230V l'alimentation générale fournira la tension 5V, 12V ou 24V nécessaire au relais de commutation.
Un relais consomme normalement moins de 500mW, tout comme la carte carillon. Une alimentation de 3W à 5W suffira amplement.

Dans le cas d'un éclairage basse tension, la puissance de l'alimentation sera choisie en fonction de la puissance de celui-ci à laquelle on ajoutera 3W pour le DFPLAYER ainsi qu'une marge de sécurité de 20%.
Normalement une alimentation de 5W à 10W devrait suffire.
On aura toutefois intérêt à travailler en 5V, car les pertes d'énergie seront moindre.

2.6.5.2. DFPLAYER + amplificateur

Ce schéma présente une solution à alimentation unique. L'alimentation audio fournit l'énergie au carillon par l'intermédiaire d'une carte régulateur.
Cete carte commande également l'éclairage.

Il faudra choisir une alimentation 12V ou 24V suffisamment puissante pour l'amplificateur.

En éclairage basse tension la puissance totale de l'alimentation sera la somme de : puissance de l'amplificateur + puissance de l'éclairage + marge de sécurité de 20%.

Avec une alimentation à découpage je n'ai pas obtenu de résultat intéressant. Le haut-parleur émet un sifflement à environ 500Hz, assez faible mais gênant. Cela est peut-être dû à l'alimentation utilisée ou un problème de masse.

Avec une simple alimentation à transformateur redressée et filtrée le résultat est correct. Par contre la consommation au repos devrait être supérieure de quelques watts à celle d'une alimentation à découpage,

2.6.5.3. Alimentations séparées
Il est également possible d'alimenter le carillon et l'amplificateur avec deux alimentations séparées :

Un relais situé sur la carte alimentation est prévu pour mettre sous tension l'alimentation de l'amplificateur uniquement lorsque c'est nécessaire.

Cette solution offre quelques avantages pour un surcoût assez faible :
  • cela évite au carillon une rupture d'alimentation si l'alimentation de l'amplificateur se met en sécurité (volume trop élevé)
  • le haut-parleur ne produira aucun bruit au repos
  • la consommation au repos sera très faible
Le carillon pourra être alimenté par une petite alimentation à découpage de faible puissance. Une MeanWell série IRM-03 ou IRM-05 offrira une consommation minimale (75mW sans charge).

3. Le schéma

Les schéma sont réalisés à l'aide de KICAD.
Pour récupérer le projet voir plus bas :  9. Téléchargements.

3.1. Le carillon


Cette carte embarque tous les composants basse puissance :
  • l'ARDUINO
  • le DFPLAYER
  • le NRF24L01
  • le régulateur 3.3V
  • le régulateur 5V du DFPLAYER
Le régulateur 5V du DFPLAYER est présent uniquement si aucun amplificateur n'est utilisé et que VDD est différente de 5V.

3.2. L'alimentation

Je présente ici quelques solutions d'alimentation et commutation à relais. Ce n'est pas exhaustif et on peut imaginer pas mal de combinaisons.

On peut également remplacer un régulateur linéaire par un régulateur à découpage du type LM2596.

Dans les schémas suivants la tension d'alimentation ou du régulateur sera choisie en fonction du matériel prévu (tension d'éclairage et tension des bobine de relais).

3.2.1. L'alimentation à partir de celle de l'amplificateur

Cette carte alimente le carillon à partir de l'alimentation de l'amplificateur. Elle permet également de commuter l'éclairage.

3.2.1.1. L'alimentation à régulateur

Cette alimentation abaisse la tension de l'alimentation de l'amplificateur pour alimenter le carillon et l'éclairage.
Dans cette version seule l'option d'éclairage basse tension est présente.

3.2.1.2. L'alimentation à régulateur et relais
Cette alimentation abaisse la tension de l'alimentation de l'amplificateur pour alimenter le carillon, l'éclairage basse tension et le relais d'éclairage 230V.
Dans cette version les deux options d'éclairage basse tension ou 230V sont présentes. Si l'option éclairage 230V est choisie le dissipateur du régulateur est inutile.

3.2.2. L'alimentation séparée
Cette carte alimente le carillon à partir d'une petite alimentation séparée. Elle peut être équipée d'une alimentation MeanWell 5W IRM-05 ou 10W IRM-10.
Elle permet également de commuter l'éclairage et l'alimentation de l'amplificateur.
Les deux options d'éclairage basse tension ou 230V sont présentes.

Si le carillon ne possède pas d'amplificateur, cette carte servira d'alimentation générale. Le relais K2 est inutile dans ce cas.

3.3. La carte capteurs et éclairage à LEDs

La carte regroupe les capteurs LDR, PIR et deux rubans de LEDs 5630 de 10cm chacun.
On peut facilement s'en inspirer pour créer toutes sortes de cartes pour d'autres modes d'éclairage.

4. Le matériel

En fonction des options choisies certains composants pourront être présents ou absents (voir commentaires sur les schémas).

4.1. Le carillon

Le carillon utilise les composants suivants :
  • ARDUINO PRO MINI 8MHz
  • 1 module DFPLAYER
  • 1 régulateur HT-7533-1
  • 1 NRF24L01
  • 1 condensateur 100nF
  • 1 résistance 10KΩ
  • 2 résistances 1KΩ
  • 2 condensateurs 100nF
  • 1 condensateur 1µF MLCC
  • 1 condensateur électrolytique 220µF 6.3V
  • 2 condensateurs électrolytique 10µF 10V
  • 2 connecteurs 2 broches mâle au pas de 2.54
  • 1 connecteur 3 broches mâle au pas de 2.54
  • 1 connecteur 4 broches mâle au pas de 2.54
  • 1 connecteur 2 broches femelle au pas de 2.54 (NS25 ou KF2510)
  • option amplificateur audio : 
    • 1 potentiomètre 47KΩ 
    • 1 connecteur 2 broches mâle au pas de 2.54
  • sinon : 
    • 1 connecteur 2 broches mâle au pas de 2.54
  • Si la tension d'alimentation générale est supérieure à 5v : 
    • 1 LM7805 
    • 1 connecteur 2 broches mâle au pas de 2.54
    • un jumper femelle au pas de 2.54
    • 1 dissipateur TO220 24x12x30 si le DFPLAYER est utilisé sans amplificateur 
En addition la carte arduino et le NRF24L01 peuvent être enfichés sur des supports :
  • 2 connecteurs 12 broches femelles au pas de 2.54
  • 1 connecteur 2x4 broches femelle au pas de 2.54

4.2. L'alimentation

4.2.1. L'alimentation à régulateur
Cette alimentation utilise les composants suivants :
  • 1 LM7805, LM7812 ou LM7824
  • 1 transistor MOSFET IRL3303
  • 1 résistance 220Ω
  • 1 résistance 100KΩ
  • 1 condensateur 470nF
  • 1 condensateur 100nF
  • 1 connecteur 3 broches mâle au pas de 2.54
  • 3 connecteurs 2 broches femelle au pas de 2.54 (NS25 ou KF2510)
  • 1 dissipateur TO220 24x12x30
4.2.2. L'alimentation à régulateur et relais
Cette alimentation utilise les composants suivants :
  • 1 LM7805, LM7812 ou LM7824
  • 1 condensateur 470nF
  • 1 condensateur 100nF
  • option éclairage basse tension :
    • 1 transistor MOSFET IRL3303
    • 1 résistance 220Ω
    • 1 résistance 100KΩ
    • 1 connecteur 2 broches femelle au pas de 2.54 (NS25 ou KF2510)
    • 1 dissipateur TO220 24x12x30
  • option éclairage 230V : 
    • 1 transistor 2N2222
    • 1 résistance 1KΩ
    • 1 diode 1N4148
    • 1 relais FINDER 36.11 5V, 12V ou 24V
    • 2 borniers à vis 2 broches au pas de 5.08mm
  • 1 connecteur 3 broches mâle au pas de 2.54
  • 2 connecteurs 2 broches femelle au pas de 2.54 (NS25 ou KF2510) 
4.2.3. L'alimentation séparée
Cette alimentation utilise les composants suivants :
  • 1 alimentation IRM-05-5, IRM-05-12 ou IRM-05-24
  • option éclairage basse tension : 
    • 1 transistor MOSFET IRL3303
    • 1 résistance 220Ω
    • 1 résistance 100KΩ
    • 1 connecteur 2 broches femelle au pas de 2.54 (NS25 ou KF2510)
  • option éclairage 230V :
    • 1 transistor 2N2222
    • 1 résistance 1KΩ
    • 1 diode 1N4148
    • 1 relais FINDER 36.11 5V, 12V ou 24V
    • 1 bornier à vis 2 broches au pas de 5.08mm
  • option amplificateur audio :
    • 1 transistor 2N2222
    • 1 résistance 1KΩ
    • 1 diode 1N4148
    • 1 relais FINDER 36.11 5V, 12V ou 24V
    • 1 bornier à vis 2 broches au pas de 5.08mm
  • 1 connecteur 3 broches mâle au pas de 2.54
  • 1 connecteur 2 broches femelle au pas de 2.54 (NS25 ou KF2510)
  • 1 bornier à vis 2 broches au pas de 5.08mm
4.2.4. Relais et MOSFET
Les relais peuvent être des FINDER 36.11 ou des relais chinois du type SONGLE SRD-XXVDC-SL-C ou équivalents.

Le MOSFET IRL3303 commandé en 3.3V provoque une chute de la tension d'éclairage 12V de 40mV avec une charge de 100mA.
Il peut être remplacé par tout MOSFET logic level en boîtier TO220 ayant un brochage identique (IRLZ44N, IRLB8721, etc.).
Voir ici : https://riton-duino.blogspot.com/2019/01/mosfets-de-puissance.html

4.3. L'amplification

Si un amplificateur audio est nécessaire on ajoutera :
  • 1 module amplificateur audio
  • 1 alimentation 12V ou 24V pour l'amplificateur audio choisi

4.4. La carte capteurs et éclairage à LEDs

Cette carte utilise les composants suivants :
  • 1 LDR du type GL5528
  • 1 détecteur MH-SR602
  • 1 connecteur 4 broches mâle coudé au pas de 2.54
  • 1 connecteur 2 broches mâle coudé au pas de 2.54 (NS25 ou KF2510)
  • 2 rubans de LEDs 5630 de 10cm

5. La réalisation

5.1. Les PCB

Si l'on désire un montage propre et fiable, il vaudra mieux recourir à la réalisation des différentes cartes :
  • carte principale
  • carte d'alimentation
  • carte capteurs PIR, LDR et éclairage à LEDs
La carte capteurs sera de préférence vernie car elle se trouve à l'extérieur.

5.2. Le montage sur plaquette à pastilles

Le montage de la carte principale est facilement réalisable sur une plaquette à pastilles :

Le PCB de la carte principale a une surface de 100x55mm. Une plaquette à pastilles de 90x70mm devrait suffire pour cette carte.

En ce qui concerne la carte d'alimentation je déconseille cependant d'implanter les composants exposés au 230V sur ce genre de plaquette, l'espacement entre les pastilles étant inférieure à 1mm, largement insuffisant par rapport au minimum recommandé de 1.25mm.

Les composants où circulent le 230V sont peu nombreux :
  • alimentation(s)
  • relais
  • borniers
Pour simplifier on peut utiliser un module à un ou deux relais, directement pilotable par une sortie de l'ARDUINO :
Un module de ce type permet de remplacer un relais et ses composants de pilotage (transistor, résistance et diode).
Si un éclairage basse tension est envisagé, une petite plaquette à pastilles peut être ajoutée pour accueillir le MOSFET, ses résistances et le bornier.

L'alimentation peut être collée dans un coin du boîtier et reliée par des fils volants. On choisira plutôt un modèle open-frame ou encastrable.

5.3. Connecteurs

Les connecteurs transportant des signaux de commande sont du type DUPONT :


Ces connecteurs DUPONT ne possèdent pas de détrompeur. Il est facile de déposer une goutte de vernis à ongle sur la carte et le connecteur afin d'éviter les erreurs de branchement :

Si l'on préfère les connecteurs avec détrompeur ces connecteurs peuvent être remplacés par des JST XH :


Les connecteurs transportant de la puissance sont du type NS25 ou KF2510 :


Ces connecteurs peuvent éventuellement être remplacés par des connecteurs DUPONT si la puissance de l'éclairage est raisonnable.

Les connecteurs transportant du 230V sont des borniers au pas de 5.08 :


Ces borniers peuvent être remplacés par des connecteurs au pas de 5.08 (des JST NV par exemple).

5.4. Le boîtier

Si le haut-parleur utilisé est de taille importante, on aura avantage à créer un petit caisson pour obtenir un meilleur rendu des graves. Le bass-reflex peut être une solution intéressante.

5.5. Câblage

Quelques précautions de câblage : le câble audio entre la carte carillon et l'amplificateur audio peut être blindé ou constitué de simples fils courts et torsadés de faible section.

L'alimentation de l'amplificateur doit être éloignée de la carte carillon, en tous cas ne pas être située près de la sortie audio.

Le boîtier est démontable. Pour ce faire il est équipé de différents connecteurs.

J'ai utilisé un socle DB9 pour le raccordement aux éléments situés à la porte d'entrée. Le brochage est le suivant :
  • 1 & 2 : bouton de sonnette
  • 3 & 4 : éclairage basse tension
    • 3 : pôle positif
    • 4 : pôle négatif
  • 6 à 9  : capteurs
    • 6 : PIR
    • 7 : GND
    • 8 : 3.3V
    • 9 : LDR
Le haut-parleur est raccordé sur un bornier classique :


L'entrée du câble secteur passe simplement à travers un passe-fil. Le câble est branché sur une prise secteur à proximité.
Si l'on envisage un raccordement sur un câble sortant d'une cloison il sera
préférable d'installer un petit socle IEC sur le boîtier :


Un modèle 2P+T peut être nécessaire si l'alimentation choisie est équipée d'une borne de terre :


Un IEC standard sera plus encombrant :


Pourquoi pas un modèle avec interrupteur :


Si un éclairage 230V est prévu, il est hors de question d'utiliser deux pins sur le connecteur DB9. Prévoir un connecteur adapté, un petit IEC femelle par exemple :


Ou un IEC femelle standard :


Ou une prise murale d'habitation, plus encombrante.

Il faut penser sécurité. Une prise 230V en entrée sera mâle, une prise 230V en sortie sera femelle.

6. Le code

Pour récupérer le projet voir plus bas :  9. Téléchargements.

Le code comporte quelques options modifiables :

#define USE_MYSENSORS

Utilise un NRF24L01 pour la connexion à un serveur domotique.

#define NIGHT_LUMINOSOTY  5

Seuil de luminosité en lux en dessous duquel on allume l'éclairage.

#define DIMMER

Activation du mode progressif de l'éclairage.

Il faudra commenter cette ligne si l'éclairage est activé par un relais ou si l'éclairage basse tension ne se prête pas à la commande par PWM.

#define LIGHT_DURATION    60L

Cette constante définit le temps d'allumage de l'éclairage en secondes. Le L est important, il signifie : long.

Pour le chargement du code dans la carte PRO MINI, voir cet article :
https://riton-duino.blogspot.com/2018/02/arduino-pro-mini-basse-consommation.html
5. Chargement

7. Les tests

7.1. Configuration minimale

Celle-ci comporte les options suivantes :
  • pas d'amplificateur
  • éclairage : ampoule à LED 230V
  • pas de module NRF24L01
Les options matérielles sont les suivantes :
  • PIR MH-SR602
  • haut-parleur : 5cm sans marque + connecteur P9
  • relais de commande d'éclairage : 5V
  • alimentation générale MeanWell 5V 5W PS-05-5
  • le LM7805 est absent (le jumper JP1 est en place)
L'alimentation 5V alimente l'ensemble du montage. Il n'y aucune nécessité d'ajouter une carte d'alimentation.
Le modèle PS-05 sera plus facile à loger et câbler qu'une IRM-05 pour PCB et sera moins cher :


On peut aussi utiliser un bloc secteur :

Le relais de commande de l'éclairage est un simple module relais 5V :

Le petit haut-parleur de 5cm est suffisamment audible dans une maison de taille moyenne, mais n'assurera pas la diffusion de sons à basse fréquence. Il vaut mieux choisir des mélodies dans le médium-aigu.

En fonction du haut-parleur choisi il sera peut-être souhaitable d'ajouter une résistance en série pour éviter la saturation.

La consommation au repos de la carte carillon sous 5V est de 23mA, ce qui donne une puissance de 115mW.
A cela il faudra ajouter la consommation de l'alimentation 5V choisie.

7.2. La configuration musclée

Celle-ci comporte les options suivantes :
  • amplificateur audio 30W
  • éclairage à LEDs : 2 rubans de LEDs 5630 12V de 10cm (12 LEDs)
  • module radio NRF24L01
Les options matérielles sont les suivantes :
  • PIR MH-SR602
  • amplificateur audio classe D TDA8932
  • haut-parleur : MONACOR SPH-60X 10cm 8Ω 60W
  • potentiomètre de volume : 47KΩ
  • alimentation 12V : 12V 5W MeanWell IRM-05-12
  • alimentation audio : 24V 50W MeanWell LRS-50-24
  • transistor MOSFET IRL3303
  • régulateur 12V pour l'alimentation générale

Comme l'éclairage est en 12V, l'alimentation générale doit fournir également 12V. J'ai choisi la solution à alimentation séparée.
La carte d'alimentation accueille le module MeanWell IRM-05-12, le relais 12V de commutation d'alimentation audio et le MOSFET de commande d'éclairage.

L'alimentation 24V n'alimente donc que l'amplificateur.

La carte capteurs et éclairage à LEDs 5630 est également utilisée.

Le son est bien évidemment beaucoup plus généreux avec l'amplificateur et le haut-parleur large bande de 10cm.

L'alimentation de l'amplificateur ne produit aucun ploc dans le haut-parleur lors de la mise sous tension.

Une alimentation à découpage de 24V 25W s'est avérée insuffisante pour reproduire par exemple un aboiement de chien avec un volume sonore réaliste. Elle se met rapidement en protection lorsque les pointes de courant sont trop importantes, d'où l'adoption d'une version 50W.

On pourrait utiliser une alimentation de 25W à transformateur, redressée et filtrée mais sans régulation. Elle supporterait plus facilement les pics de courant, mais serait moins compacte.
Voir ici : https://riton-duino.blogspot.com/2019/01/alimentation-transformateur.html

La consommation au repos de la carte carillon sous 12V est de 39mA, ce qui donne une puissance de 470mW.
A cela il faudra ajouter la consommation de l'alimenation choisie.

8. Mode d'emploi

Lors du premier démarrage, les sons choisis sont le N°1 aussi bien pour la détection d'approche que pour la sonnette.

8.1. La carte SD

Préparer une carte µSD comme suit :
  • 01 : répertoire des sonneries
  • 02 : répertoire des bruitages
Les sons doivent être obligatoirement numérotés sur 3 chiffres, mais ils peuvent être également nommés. Exemple :
  • répertoire 01 :
    • 001-sonnerie1.mp3
    • 002-sonnerie2.mp3
    • 003-sonnerie3.mp3
    • etc.
  • répertoire 02 :
    • 001-sonnerie1.mp3
    • 002-sonnerie2.mp3
    • 003-sonnerie3.mp3
Les fichier peuvent être au format MP3 ou WAV.

Je conseille d'ajouter un silence de 5 secondes à vos sonneries si elle sont trop courtes, car cela vous sera utile lorsque vous utiliserez le bouton de sélection pour choisir la sonnerie à utiliser.

8.2. Le bouton de sélection

L'utilisation du bouton de sélection est simple :

Pour choisir le bruitage lié à la détection de présence, appuyer sur le bouton de sélection plusieurs fois jusqu'à entendre le son voulu.

Pour choisir le son lié à la sonnette, appuyer d'abord sur le bouton de sonnette, puis appuyer sur le bouton de sélection plusieurs fois jusqu'à entendre le son voulu.
Il faut appuyer sur le bouton pendant l'écoute du morceau. Si le bouton est appuyé après la fin du morceau le logiciel retourne en mode sélection du bruitage. D'où l'intérêt d'avoir des morceaux suffisamment longs (au moins 5 secondes) pour qu'on ait le temps de réagir.

Chaque appui sur le bouton provoque l'incrément du numéro, avec retour à 1 si le numéro dépasse le nombre de sons disponibles.

8.3. Le serveur domotique

Si un serveur domotique est utilisé, il faudra ajouter les différents dispositifs dans l'interface du serveur :
  • l'interrupteur de sonnette
  • le détecteur d'approche
  • le capteur de luminosité
  • l'interrupteur de choix du son lié à la sonnette
  • l'interrupteur de choix du son lié à la détection de présence
Pour Domoticz voir ici : https://riton-duino.blogspot.com/2019/05/mysensors-presentation.html
Voir 5.2. Ajouter un dispositif MySensors à Domoticz

Ensuite il sera possible d'utiliser les deux interrupteurs (onglet interrupteurs dans Domoticz) pour modifier le choix des sons.
Ici aussi chaque appui sur un bouton provoque l'incrément du numéro, avec retour à 1 si le numéro dépasse le nombre de sons disponibles.

9. Téléchargements

Pour télécharger le projet :
https://bitbucket.org/henri_bachetti/mysensors-bell.git

Cette page vous donne toutes les informations nécessaires :
https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

10. Photos

Voici les 4 cartes :
La carte carillon
 Le dissipateur est uniquement utile dans la version sans amplificateur.

L'alimentation 12V
Le relais (K2) est celui permettant la mise sous tension de l'alimentation de l'amplificateur.
Le relais (K1) déclairage est absent ainsi que le transistor de commande et le bornier de sortie car c'est une version à éclairage basse tension.

La carte capteurs et éclairage
La carte régulation et éclairage LED

Voici une image du montage fonctionnel sur table de la version avec amplificateur et alimentations séparées :


De haut en bas et de gauche à droite :
  • la carte éclairage et capteurs
  • la carte alimentation avec un relais
  • l'alimentation 24V
  • les deux boutons sélection et sonnette
  • la carte carillon
  • l'amplificateur TDA8932
L'éclairage à LEDs allumé
Le carillon dans son boîtier
Vue côté connecteur DB9

Un interrupteur marche/arrêt à LED a été ajouté.

11. Conclusion

C'est sans doute le projet domotique le plus sympathique que j'aie réalisé jusqu'à présent. J’espère qu'il vous tentera.


Cordialement
Henri

12. Mises à jour
28/09/2019 : 8.1. La carte SD
                     8.2. Le bouton de sélection
30/09/2019 : 10. photos du boîtier

mercredi 11 septembre 2019

XR2206 : le Générateur de Fonctions




XR2206 : le Générateur de Fonctions


Le XR2206 est un circuit intégré permettant de réaliser à moindre frais un générateur de fonctions (GBF pour les intimes).

1. Le XR2206


Le XR2206 de Exar est apparu à la fin des années 1970 et il est encore commercialisé de nos jours. On trouve même des kits chez les revendeurs chinois :

Dans cet article nous allons réaliser un générateur assez élaboré à partir de ce circuit, pourvu de toutes les commandes nécessaires pour en faire un véritable outil de tous les jours :
  • sortie sinus / triangle
  • sortie signal carré
  • réglage de fréquence + réglage fin
  • réglage amplitude + offset
  • fréquencemètre
Il est normalement capable de monter à 1MHz, mais il sera plus réaliste de compter sur 500KHz si l'on désire une distorsion raisonnable.

L'idée de départ vient de cet article :
http://www.vwlowen.co.uk/arduino/xr2206/XR2206-function-generator.htm


C'est un projet que j'ai légèrement remanié, en particulier l'alimentation, et je l'ai bien entendu redessiné sous KICAD.
Cela faisait quelques mois que les cartes étaient prêtes et testées. Il ne manquait plus que la partie mécanique à réaliser.

2. Le schéma

On pourrait se demander tout d'abord pourquoi s'imposer la réalisation d'un PCB maison étant donné qu'il existe des modules tout faits pour environ 4€. Voici quelques raisons :
  • ces kits possèdent rarement les réglages indispensables de distorsion et symétrie
  • le choix de la forme de signal et le réglage de la gamme de fréquence est généralement fait par des cavaliers
  • souvent ces modules sont équipés de circuits contrefaits (voir ici : https://www.youtube.com/watch?v=02XtneCHnDA).
Malgré tout, si l'on parvient à trouver un module de qualité, il est parfaitement possible de le monter dans un boîtier, de reporter les potentiomètres en façade et d'ajouter quelques commutateurs et un fréquencemètre pour le rendre plus convivial.

Celui-ci par exemple : https://rhelectronics.net/store/function-generator-xr2206-diy-kit-20hz-100khz.html

Revenons à nos moutons : le générateur de John Owen. Celui-ci possède pas mal d'avantages intéressants :
  • il est alimenté symétriquement en +/-12V ce qui l'autorise à délivrer un signal de +/-10V
  • il possède un amplificateur de sortie
  • il est pourvu également de réglages d'offset, symétrie, distorsion
  • deux réglages de fréquence sont utilisés : réglage grossier, réglage fin
  • la sortie signal carré passe par un comparateur rapide afin de générer un signal 5V propre
  • il est équipé d'un fréquencemètre
Sur le schéma d'origine, les composants de l'alimentation symétrique sont sur la même carte que le générateur. J'ai préféré un montage en deux cartes séparées. 
Cela permet en particulier de pouvoir utiliser une alimentation du commerce, deux modules à découpage par exemple.
Seul le régulateur 5V qui alimente le fréquencemètre et les comparateurs a été laissé sur la carte principale.

2.1. Le générateur


Le schéma n'est pas fondamentalement différent de l'original, mis à part l'ajout d'une gamme de fréquence 0.2Hz - 20Hz, et quelques découplages d'alimentation supplémentaires.

2.2. Le compteur

Le fréquencemètre d'origine est réalisé à l'aide d'un ATMEGA328 DIP et d'un module 8 digits MAX7219.

On peut directement l'utiliser tel quel, ou adopter celui que je propose, qui est basé sur une carte ARDUINO NANO, plus à la portée de l'amateur :


Attention le brochage du connecteur d'entrée est différent :
  • compteur original :
    • 1 : 5V
    • 2 : GND
    • 3 : compteur
  • compteur NANO
    • 1 : 5V
    • 2 : compteur
    • 3 : GND
Le code du fréquencemètre reste identique à l'original.

2.3. L'alimentation

L'alimentation par contre a été recalculée en fonction des consommations réelles sur chaque rail.
Le fréquencemètre à base d'ARDUINO NANO et l'afficheur 7 segments réclament pas mal d'énergie. Le module 8 digits MAX7219 possède 15 pas de réglage de luminosité et la consommation est proportionnelle à la luminosité :
  • 90mA avec une luminosité de 4/15
  • 250mA avec une luminosité de 15/15
Le filtrage du rail positif (1000µF) est largement insuffisant, surtout si l'on choisit une luminosité forte, et l'ondulation sera importante :
  • luminosité de 4/15 : ondulation de 1.5V
  • luminosité de 15/15 :  ondulation de 2.5V
L'ondulation ne serait pas assez forte pour gêner le régulateur LM7812 mais provoquerait un vieillissement prématuré du condensateur de filtrage.

Voici le nouveau schéma :


 
Une varistance 275V protège l'alimentation des surtensions. La résistance fusible de 47Ω est optionnelle si un porte-fusible est installé à l'arrière du boîtier.

3. Le matériel

Les cartes sont équipées de connecteurs pour que l'ensemble soit facilement démontable.
Les connecteurs petits signaux au pas de 2.54 sont du type DUPONT.
Les connecteurs de puissance (JST) peuvent être remplacés par n'importe quels connecteurs au pas de 3.96.

3.1. Le générateur

  • 1 XR2206
  • 1 TL082 
  • 1 LM293
  • 1 LM7805 
  • 1 résistance 100KΩ
  • 1 résistance 33KΩ
  • 3 résistance 1KΩ
  • 1 résistance 300Ω
  • 2 résistances 4.7KΩ
  • 1 résistance 10KΩ
  • 1 résistance 8.2KΩ
  • 1 résistance 1.5KΩ
  • 2 résistances 2.2KΩ
  • 1 résistance 47KΩ
  • 1 condensateur céramique 100pF
  • 1 condensateur polyester 1nF
  • 1 condensateur polyester 10nF
  • 1 condensateur polyester 100nF
  • 1 condensateur polyester 1µF
  • 1 condensateur polyester 10µF
  • 1 condensateur électrolytique 10µF 10V
  • 2 condensateurs électrolytique 10µF 16V
  • 1 condensateur électrolytique 10µF 25V 
  • 2 condensateurs électrolytique 2.2µF 16V 
  • 1 condensateur électrolytique 470µF 10V 
  • 1 condensateur électrolytique non polarisé 10µF 35V 
  • 3 condensateurs polyester 100nF
  • 2 condensateurs polyester 10nF 
  • 3 condensateurs polyester 330nF
  • 2 potentiomètres 47KΩ horizontal au pas de 5.08x10.16
  • 1 potentiomètre 10KΩ horizontal au pas de 5.08x10.16
  • 1 potentiomètre 47KΩ horizontal au pas de 5.08x10.16
  • 1 potentiomètre 10 tours Bourns 3296 1KΩ
  • 1 potentiomètre 10 tours Bourns 3296 22KΩ
  • 1 diode 1N4148
  • 1 dissipateur pour TO220 24x30x12
  • 3 potentiomètres 10KΩ
  • 1 potentiomètre 470KΩ
  • 1 commutateur rotatif 6 positions
  • 1 double inverseur
  • 1 inverseur
  • 2 connecteur mâles 2 broches pin-header au pas de 2.54 
  • 2 connecteur mâles 3 broches pin-header au pas de 2.54 
  • 1 connecteur mâle 3 broches pin-header au pas de 2.54
  • 1 connecteur JST-B3P-VH
  • 4 colonnettes plastique M2.5 ou M3 10mm

3.2. Le compteur

  • 1 ARDUINO NANO
  • 1 condensateur polyester 100nF
  • 1 module afficheur 7 segments MAX7219
  • 1 connecteur mâle 3 broches coudé pin-header au pas de 2.54
  • 1 connecteur femelle 5 broches pin-header au pas de 2.54
  • 1 connecteur mâle 5 broches pin-header au pas de 2.54 
  • 2 barrettes femelles 15 broches (support pour la NANO) 
  • 4 colonnettes plastique M2.5 ou M3 20mm
  • 4 colonnettes plastique M2.5 ou M3 10mm

 3.3. L'alimentation

  • 1 LM7812
  • 1 LM7912
  • 1 résistance fusible 47Ω  (optionnelle)
  • 1 varistance S10K275 
  • 1 pont de diodes KBP2005G
  • 1 condensateur électrolytique 4700µF 25V
  • 1 condensateur électrolytique 1000µF 25V
  • 2 condensateurs polyester 470nF
  • 2 condensateurs polyester 100nF
  • 2 condensateurs céramique 100pF
  • 2 connecteurs JST-B3P-VH
  • 1 dissipateur pour TO220 24x30x12
  • 1 dissipateur pour TO220 20x19x10
  • 4 colonnettes plastique M2.5 ou M3 10mm
  • 1 transformateur pour PCB
    • HAHN BV EI 481 1327 12-12V 10VA
    • ou
    • BREVE TUFVASSONS TEZ10/D230/12-12V 10VA
Si la luminosité de l'afficheur est réduite (jusqu'à 8/15) un autre transformateur peut être utilisé. Dans ce cas, on pourra également réduire le filtrage :
  • HAHN BV EI 422 1260 12-12V 6VA
  • ou
  • BREVE TUFVASSONS TEZ6/D230/12-12V 6VA
  • C3 : 2200µF 25V au lieu de 4700µF

3.4. Le boîtier

Le boîtier que j'ai choisi est un Galaxy GX287 (80x230x170).

Il faudra l'équiper de quelques composants :
  • 1 embase IEC 250V 
  • 1 cordon secteur
  • 1 porte fusible + 1 fusible 500mA (optionnel)
  • 2 embases BNC
  • 5 boutons ⌀20mm
Le porte fusible + son fusible 500mA sont optionnels si l'on préfère souder une résistance fusible sur l'alimentation (R2 : 47Ω).

Voici le câblage :
  • un câble 3 brins de 10cm 0.5mm² + 2 connecteurs JST-VHR-3N (câble d'alimentation 12-12V)
  • un câble 3 brins de 10cm 0.2mm² + 2 connecteurs femelles 3 broches pin-header au pas de 2.54 (câble du compteur)
  • un câble 2 brins de 40cm 0.5mm² + 1 connecteur JST-VHR-3N (alimentation 230V)
  • un câble 2 brins de 25cm + 1 connecteur femelle 2 broches pin-header au pas de 2.54 (câble de la LED de l'alimentation)
  • 30cm de câble blindé
Voici l'afficheur utilisé :
Pour pouvoir l'enficher sur la carte compteur ARDUINO NANO, étant donné la hauteur de la carte NANO + son support, il faut un connecteur 5 broches assez long (sandwich 20mm) :


Mais on peut également fixer la carte compteur sur le fond du boîtier.

4. La réalisation

Commencer par assembler l'alimentation, la raccorder au secteur et vérifier son voltage.

Assembler ensuite la carte du générateur.

Programmer la carte compteur à l'aide du sketch fourni et placer ensuite les colonnettes de 20mm, l'afficheur, puis les colonnettes de 10mm.
Le module assemblé ne permettra pas l'accès au connecteur USB de la NANO. Vu la hauteur du boîtier (80mm) je ne pouvais me permettre de décaler la carte NANO vers le bas.

Après avoir assemblé les cartes et les avoir raccordées entre elles, il faut effectuer quelques petits réglages.
Les potentiomètres à régler sont repérés en rouge :

Le PCB avec les potentiomètres en rouge
Mettre en marche le générateur et le laisser monter en température 15 minutes.
Brancher la sortie SINE/TRIANGLE sur un oscilloscope.

Placer le commutateur TRIANGLE/SINE sur SINE, régler l'amplitude au maximum. régler le bouton DC OFFSET à mi-course.

Ajuster RV2 pour obtenir un signal crête à crête de +/- 10V.

Placer le commutateur TRIANGLE/SINE sur TRIANGLE. Ajuster RV3 pour obtenir un signal crête à crête de +/- 10V.

Placer le commutateur sur TRIANGLE/SINE sur SINE. Ajuster RV1 afin de centrer la sinusoïde verticalement.

Ajuster RV6 et RV7 afin d'obtenir une sinusoïde symétrique et diminuer au maximum la distorsion.

Il faudra probablement procéder par itérations successives sur différentes fréquences pour obtenir les réglages optimums.

5. Photos


L'ensemble après câblage (la LED de l'alimentation n'est pas encore câblée).


Détail de la carte compteur. Les colonnettes de 10mm sont simplement collées contre la face avant.


Le générateur et l'alimentation symétrique empilés.

Et voici le résultat à l'oscilloscope :



6. Téléchargements

Pour télécharger le projet :
https://bitbucket.org/henri_bachetti/xr2206-function-generator.git

Cette page vous donne toutes les informations nécessaires :
https://riton-duino.blogspot.com/p/migration-sous-bitbucket.html

7. Bibliographie

L'XR2206 : https://www.sparkfun.com/datasheets/Kits/XR2206_104_020808.pdf

L'article de John Owen :
http://www.vwlowen.co.uk/arduino/xr2206/XR2206-function-generator.htm

John Owen a réalisé deux autres projets :
http://www.vwlowen.co.uk/arduino/AD9833-waveform-generator/AD9833-waveform-generator.htm
http://www.vwlowen.co.uk/arduino/AD9850-waveform-generator/AD9850-waveform-generator.htm

8. Conclusion

Ce générateur n'est pas un foudre de guerre en terme de rapidité. La sinusoïde est assez propre jusqu'à 100KHz, ensuite elle devient plutôt triangulaire.
Mais comme je compte utiliser ce générateur pour des applications audio, il est rare d'avoir besoin d'une sinusoïde au delà de quelques dizaines de KHz.
Le signal carré reste exploitable comme signal de synchronisation pour un oscilloscope jusqu'à 1MHz.

Voilà un petit outil bien sympathique qui vient compléter utilement le laboratoire déjà bien fourni :

Cordialement
Henri