Automatisation 2.0 d’un portail (DIY)

Le but de ce système est l’ouverture et la fermeture à distance d’un portail électrique depuis :
– un smartphone grâce à un serveur web
– une télécommande radio
– un bouton poussoir extérieur ou intérieur

En complément, on gère la sonnette qui diffuse un message sur les enceintes Google et une ou plusieurs Caméras IP pour surveiller l’ouverture. De même, un mail est adressé à des personnes désigné avec les photos prisent par les caméras.

Architecture

Le système par sa structure modulaire permet de moderniser un portail existant en conservant les moteurs ou vérins, ou de concevoir l’ensemble.

Par expérience, depuis de nombreuses années, il faut un système très robuste aux pannes, aux coupures de courant afin de garantir le service pendant des mois et ne pas tomber sur le système à l’arrêt en rentrant chez soi. Pour cela, on décompose l’ensemble en 2:
– un microcontrôleur Arduino, en charge des fonctions essentiels, déclenchement sur poussoir ou radio, contrôle des moteurs, surveillance de la sonnette. La simplicité du montage et du logiciel offre la robustesse exigée,
– un « Single Board Computer » ou micro-ordinateur qui se connecte au web, permet l’ouverture à distance par smartphone, prend des photos à l’aide de caméras IP, informe par mail, enregistre les allées et venues. La complexité des logiciels, les coupures d’internet, les micro-coupures électriques font que la qualité de service sur des mois n’est pas celle d’un simple Arduino.

Vidéo de présentation

Arduino Nano

La carte Arduino Nano est basée sur un ATMega328 cadencé à 16 MHz. Elle dispose d’une mémoire de 32 kB et d’un grand nombre d’E/S:
– 14 broches d’E/S dont 6 PWM
– 8 entrées analogiques 10 bits
– bus série

Les entées analogiques seront utilisées pour surveiller les courants qui alimentent les moteurs afin de les arrêter en fin de course ou si blocage.

La carte est disponible pour quelques € en Chine (Aliexpress), une dizaine d’€ en France (provenance de Chine), 30 € sur le magasin officiel…

Orange Pi Zero

Orange Pi Zero

Pratiquement, vu la pénurie de Raspberry , on se tourne vers des Orange Pi qui répondent également au besoin. Cela change de fruit et fonctionne toujours bien. L’Orange Pi Zero est l’entrée de gamme, mais est suffisant pour notre application. Il faut l’acheter en Chine en passant par Aliexpress en choisissant la version 512M de RAM et non 256M. L’Operating System que j’utilise dessus est Armbian. Pour l’installer, voir l’article https://f1atb.fr/mise-en-route-orange-pi-zero/
Créer un utilisateur Portail par exemple, cela crée un dossier /home/Portail dans lequel on implante les sources.

Ne pas installer Samba ou les drivers Audio.

On se connecte à l’Orange Pi par un cable ethernet ou le wifi.

Si vous disposez d’un autre « Single Board Computer », Raspberry Pi, Orange Pi xxx… tournant sous une variante Debian, cela est adaptable facilement.

Schéma électrique

Toute l’électronique s’articule principalement autour de l’Arduino. Ce dernier est lié à l’Orange Pi par le cable USB qui lui permet l’échange de données et fourni l’alimentation 5V.

L’Orange pi zero a une LED branchée sur la pin 26 avec une résistance en série entre 300 et 1000 ohm. Elle clignote par logiciel pour afficher le bon fonctionnement. L’Orange pi est alimentée par un chargeur 5V/2A, il alimente via l’USB l’Arduino.

Logiciels

Pour piloter à distance via le web, on utilise Apache comme serveur. Son installation est aisée : https://f1atb.fr/apache-sur-orange-pi-zero/
Comme l’installation de notre appli se trouve dans un dossier dédié, il faut configurer Apache dans le fichier 000-default.conf du dossier « /etc/apache2/sites-available/ ». Puis redémarrer Apache.

Installez, VNC sur l’Orange Pi si vous souhaitez y accéder à distance depuis un PC et écrire / modifier le programme sur l’Arduino. Restez sous l’utilisateur « root » c’est plus simple.

Installez de même VNC-Viewer sur votre PC et connectez-vous à l’adresse IP de votre Orange ou Raspberry. Pour les Orange Pi, préciser le port 5901.

Après avoir installé le bureau et VNC, un petit « apt-get update » peut-être utile.

Installez les librairies python permettant de faire des « pings » pour tester la liaison internet et pour les liaisons série.

pip install ping3
pip install pyserial

Installez la librairie pour envoyer un message audio sur une Google Home.

pip install PyChromecast

L’orange pi zero ayant peu de mémoire, il est bon de lui allouer un fichier de swap de 1 Go. Suivez la procédure ici : https://linuxize.com/post/how-to-add-swap-space-on-debian-9/

Installer l’IDE Arduino

L’environnement Arduino est disponible dans les dépôts:
apt-get install arduino -y

Branchez la carte Arduino Nano sur le port USB de l’Orange Pi Zero et dans Tools, sélectionnez la carte, le type de processeur si besoin et le port /dev/ttyUSB0. Si vous utilisez d’autres cartes ou port série, adaptez en conséquence.

Attention, si vous avez un Arduino Nano avec l’ancien Bootloader, il faut programmer le nouveau Bootloader afin de pouvoir utiliser le watchdog. Il y a une bonne explication ici: https://www.youtube.com/watch?v=VewaVZ4H5Cw

Téléchargez le programme le plus simple pour tester l’ensemble « Blink ». Le clignotement d’une Led sur la carte. Lancez la compilation et le téléchargement sur l’Arduino. À présent, la Led doit clignoter.

Code Source

Le code source pour l’Arduino et l’Orange Pi Zero est disponible ici sous forme de fichier zip :

Lancement du logiciel

On emploie les tâches cron sous root. Tapez ‘crontab -e’ dans un terminal et remplissez en bas de page:

1 1 * * * python3 /home/portail/cron_clean.py
*/5 * * * * python3 /home/portail/cron_temp_cpu.py
@reboot python3 /home/portail/portail.py

cron_clean.py efface toutes les nuits les journaux d’évènements vieux de plus d’un mois.
cron_temp_cpu.py envoi la température du CPU à ma domotique (optionnel)
portail.py programme principal de gestion du portail

Achats

Pour l’Orange Pi Zero allez par exemple ici et choisissez la version 512Mb de mémoire. Si vous ne le trouvez pas, vous pouvez prendre un Orange Pi Zero 2 plus récent.

Pour l’Arduino Nano, de nombreux vendeurs le proposent sur Aliexpress. Prenez la version avec le câble USB.

Pour la Radio, on trouve le module tout monté avec 2 canaux (2 relais, un pour ouvrir et un pour fermer) avec plusieurs radios pour moins de 20€.

La mesure de courant par effet Hall (ACS712) est disponible ici. La version 20A devrait correspondre à la plupart des moteurs.

Les 2 relais pour alimenter le transformateur de puissance des moteurs et la lampe de sécurité sont des modèles classiques pour Arduino.

Les relais qui pilotent les moteurs sont un point délicat. Les relais classiques bleus à brancher sur des Arduinos sont limités à 10A. Ils grillent avec le temps. J’ai trouvé des modèles plus costauds de 16A max qui nécessitent des transistors pour les piloter, car ils consomment trop de courant en 5V.

Sécurité

En travaillant sur ce projet en 230V, vous acceptez d’assumer la responsabilité de votre propre sécurité et de prendre toutes les précautions nécessaires pour éviter les accidents électriques.

F1ATB André

Radio Amateur - Domotique - Photovoltaïque

Vous aimerez aussi...

20 réponses

  1. bruno dit :

    Il faut l’acheter en Chine en passant par Aliexpress en choisissant la version 512k de RAM et non 256k,
    Ce n’est qu’un détail mais il s’agit de Mégas pas de Kilos 🙂

  2. hippolyte georges marie BAILLIF dit :

    Bonsoir,
    Félicitation pour votre travail et de le partager.
    Concernant l’alimentation des moteurs, est-ce que c’est possible de passer en 24 volts ?
    Cordialement

    • F1ATB André dit :

      Oui pas de souci. On peut mettre du 24V, c’est uniquement pour les moteurs. L’électronique a son alimentation 5V séparée.
      Cdlt

  3. Stef dit :

    Bonjour,
    Merci pour le partage de vos projets et de vos connaissances. J’ai quelques questions : Avez vous éprouvé cet automatisation de portail et dans l’affirmative quel en est le bilan ? Quels sont les moteurs utilisés dans votre configuration ? Quel est le modèle de transformateur utilisé ?
    Par avance, je vous remercie pour le temps consacré à votre retour d’information.

    • F1ATB André dit :

      Je suis très content,car il ne bug jamais. L’arduino en charge des fonctions essentielles est super fiable. Depuis 1an, jamais d’arrêt.
      Pour le transfo, c’est un modèle torique qui allait avec mes moteurs sur le système d’origine.

  4. Emile dit :

    bravo pour votre réalisation… quant à moi ancien technicien de 68 ans mais bricoleur averti avec quelques bases bien lointaines en électronique, je suis juste capable de reproduire « bêtement » ce que vous avez fait; alors une question « idiote peut être » :
    Mon but serait de réaliser des systèmes d’ouverture de volets battants ( 8 fenêtres et porte fenêtre ) alors est -il possible de supprimer l’orange pi pour ne garder que le bouton de commande voire la télécommande.
    vous en remerciant

    • F1ATB André dit :

      On peut garder que l’Arduino Nano pour mettre en place une commande des ouvertures de volets.Mais il faudra reprendre le code. Vous n’avez pas 2 moteurs etc…
      Cdlt

      • Emole dit :

        ce sont des volets 2 battants et je prévois un moteur par battant. En fait comme un portail miniature.

        • F1ATB André dit :

          OK dans ce cas, prenez simplement l’Arduino Nano et sont logiciel.
          Vous n’aurez que la possibilité d’actionner avec un bouton ou une radio.

          Cdlt

  5. Emile dit :

    emile et non pas emole (faute de frappe) Je prévois aussi une alimentation par batterie solaire.

  6. Marco dit :

    Bonsoir , tout d’ abord très bon travail .
    Ne faudrait- il pas rajouter des diodes de roue libre sur les bobines des relais ?

  7. Hippo dit :

    Bonjour,
    Les commandes installations ne fonctionnent pas
    Avez-vous une idée
    pip install ping3
    pip install pyserial
    pip install PyChromecast

    Merci de votre retour
    cordialement

  8. Baillif dit :

    bonsoir
    André
    j’ai suivi le tuto à la lettre
    je suis bloqué sur l’installation de ping3
    Pip déjà intégré version 23.0.1
    Le serveur apache fonctionne j’arrive à afficher la la page Web.
    Le point bloquage ? la led raccordée sur la pin 26
    ne clignote pas.

    la version Python 3.11.2
    Apache 2.4.57

    que pensez-vous du problème et dans quelle piste je dois investiguer.
    merci d’avance.

    • F1ATB André dit :

      pip install ping3, pourquoi cela ne fonctionne pas. S’il vous dit déjà installé, c’est bon.

      Essayez d’écrire un petit ptrogramme de test pour la pin26 et comprendre ce qui ne va pas.

      Cdlt

  9. tazhf45 dit :

    Bonsoir André,
    Je viens de lire votre tuto et je vous remercie pour ce partage d’info.
    Je pense que je vais me servir de votre montage pour remplacer la commande de mon portail ( Extel Hello V ) qui me fait tourner en bourrique depuis plusieurs jours, car j’ai le premier vantail qui s’ouvre de façon aléatoire….. J’ai déconnecté le module de réception 433mHZ pensant à des interférences, mais même en direct avec juste un bouton poussoir qui valide que l’ouverture des deux vantaux j’ai encore eu le phénomène. Un truc à devenir fou ….
    Par contre, j’ai quasi 80m entre ma maison et mon portail, et je pense mettre un switch dans le boitier pour y rajouter également la caméra.
    Pour la commande par bouton, le buzzer et la sonnette , pensez vous que le système pourra fonctionner tel quel ?
    Sinon avez vous des liens ( type Aliexpress ) pour les caméras dont on peut réellement récupérer le flux sans passer par des clouds chinois ?
    Merci d’avance

    • F1ATB André dit :

      Pour les caméras, prenez des modèles au standard Onvif. Vous sortirez des images jpg ou des flux video RSTP à retravailler pour diffuser sur une page web.

      Cdlt