LairDesVosges

[Jdb] Tuto : Comment Gérer Son Placo Avec Un Raspberry Pi Et Domoticz

Recommended Posts

ben62224

Merci à toi !! Sa fonctionne enfin :)
J'ai donc mis aucune résistance et j'ai installer les librairie sur ton lien 

  • Like 1

Share this post


Link to post
Share on other sites
Sakweed

Yep à tous !

J'ai un problème pour répondre à ben62224 via la messagerie. Quand j'envoie le message, ça me dit "Web server is returning an unknown error"... Bref, je lui envoie la réponse via une intervention sur ce sujet puisque c'est lié à cette fameuse sonde DHD22. Et si ça peut servir à quelqu'un...

Voilà ben62224, je n'ai pas bien compris le message mais je tente... ;-)

- tu me dis que ça fonctionne avec la librairie Python
- tu me dis être "obligé" de lancer de le répertoire "exemple"
- tu me dis que la commande "sudo Adafruit_DHT 2302 4" ne fonctionne toujours pas

Pour la dernière, je n'ai pas d'idée vu que je suis pas sur la machine. À première vue, je dirais que le pilote n'est pas correctement installé mais vu que la librairie Python fonctionne... Je pensais qu'au final, le driver était le même pour le script Python ou la commande "Adafruit_DHT" qui est du C compilé.

En dernier recours, essaie peut-être la commande avec des guillemets :

sudo Adafruit_DHT "2302" "4"

Pour le script Python dans les exemples, il ne fonctionne que dans ce répertoire car c'est là qu'il est. Donc, pour le lancer, tu dois soit être dans le répertoire ou alors lancer là commande genre :

sudo python /home/utilisateur/mondossier/AdafruitDHT.py 2302 4

Sinon, voici un super plan [ ;-)] Si tu comptes l'utiliser tel quel (l'exemple) et que tu veux pouvoir le lancer de n'importe où comme la commande "normale". Tu peux toujours placer le script "AdafruitDHT.py" dans le répertoire /usr/local/bin et créer dans ce même répertoire, un script bash qui exécute simplement la commande Python.


Dans le genre un script qui s'appellera "dht" :


On copie le fichier Adafruit dans /usr/local/bin...

sudo cp /ton/repertoire/exemples/AdafruitDHT.py /usr/local/bin

On édite un nouveau fichier...

sudo nano /usr/local/bin/dht

On tape ceci dedans (CTRL+Shift+v pour coller dans le terminal)

#!/bin/sh
sudo python AdafruitDHT.py 2302 4

On sauve et on quitte l'éditeur : CTRL+o pour sauver, CTRL+x pour quitter

On rend le script exécutable.

sudo chmod +x /usr/local/bin/dhd

Donc, tu aurais dans "/usr/local/bin" le script python "AdafruitDHT.py" et ton script "dht".


Maintenant, n'importe où, tu peux simplement entrer la commande "dht" et ça va te renvoyer le résultat, normalement même sans "sudo" devant [;-)]

Si tu compte l'utiliser dans un script de ta conception, ce qui est certainement le cas, tu peux aussi placer simplement le script "AdafruitDHT.py" dans le répertoire de ton script. La commande dans ton script sera "sudo python AdafruitDHT.py 2302 4" pour récupérer les paramètres. Ou "dht" si tu as créé notre super script [;-)]

Si tu comptes développer du code, c'est dans quel langage ? J'ai plein de bouts de code Python qui peuvent t'intéresser [;-)]

C'est un conseil mais si tu comptes vouloir améliorer, compliquer etc... un simple script bash, c'est pas la joie... donc, passer tout de suite aux scripts "python" est un bon deal. C'est un langage simple et propre. Si tu peux faire des scripts bash, je pense que tu peux faire des scripts Python. Il y a énormément de ressources sur le net à propos du langage et ce, pour tous les niveaux.

Voilà ! J'espère t'aider mais tu peux aussi m'en dire plus sur tes "plans" ou me filer un lien vers un message que tu aurais déjà rédigé pour expliquer ce que tu veux faire.

Bon amusement !

 

Edited by Sakweed

Share this post


Link to post
Share on other sites
pakabonbon

Salut LairdesVosges,

 

J'ai suivi ton tutoriel pour mon montage mais je rencontre un petit problème car le raspberry se trouve dans une salle qui n'a pas accés à un routeur (que ce soit par wifi ou ethernet, on étudie la piste du CPL mais rien n'est gagné).

De ce fait, l'actualisation des données ne peux se faire. J'ai commandé une horloge autonome pour que le Rpi garde l'heure meme sans le net, je me suis dis qu'il lui fallait un temps pour l'actualisation.

Y aurai t il un moyen d'après toi en modifiant ton script "sonde_dht22-1" de palier a ce probleme?

 

En te remerciant! 

 

PS: j'ai apporté un changement a ton montage au niveau des liaisons relais-rpi; chaque relais a sa propre alimentation pour ne rien tirer sur les pins au risques de les grillers (conseil donné sur un autre forum) et l'activation se fait avec un transistor NPN.

Si ca interesse quelqu'un je peux poster plus d'info sur le montage 

  • Like 1

Share this post


Link to post
Share on other sites
ben62224

Oui effectivement je vois pas tes message ^^

Je mis attaque lundi j'ai bosser tous la journée aujourd'hui je suis hs x)

Je te tient au courant :)

Merci à toi

Share this post


Link to post
Share on other sites
wared quality

Salut LairdesVosges,

 

J'ai suivi ton tutoriel pour mon montage mais je rencontre un petit problème car le raspberry se trouve dans une salle qui n'a pas accés à un routeur (que ce soit par wifi ou ethernet, on étudie la piste du CPL mais rien n'est gagné).

De ce fait, l'actualisation des données ne peux se faire. J'ai commandé une horloge autonome pour que le Rpi garde l'heure meme sans le net, je me suis dis qu'il lui fallait un temps pour l'actualisation.

Y aurai t il un moyen d'après toi en modifiant ton script "sonde_dht22-1" de palier a ce probleme?

 

En te remerciant! 

 

PS: j'ai apporté un changement a ton montage au niveau des liaisons relais-rpi; chaque relais a sa propre alimentation pour ne rien tirer sur les pins au risques de les grillers (conseil donné sur un autre forum) et l'activation se fait avec un transistor NPN.

Si ca interesse quelqu'un je peux poster plus d'info sur le montage 

 

yop pakabonbon,

 

je suis interessé par ton montage avec le transistor

 

pour ce qui est du dht j'ai fini par trouver LA solution rapide et efficace pour la recolte des données, il faut le faire en python

1- import Adafruit_DHT

2- Adafruit_DHT.read_retry(sensor_type, n°_pin)

 

la commande depuis le bash me retournais la bonne valeur de facon aléatoire, de cette manière ca fonctionne parfaitement

 

mon script complet est dispo ici : https://www.cannaweed.com/topic/180627-raspberry-box-gestion-220v/?p=3908003

Share this post


Link to post
Share on other sites
pakabonbon

Merci pour ta réponse (que je ne comprend pas très bien pour l'instant, je suis une quille en programmation...)

 

Alors pour le montage avec transistor, rien de mieux qu'une belle image!

Je n'ai malheureusement pas pris de photo du montage finale mais je pense que c'est assez explicite.

Sans titre.tiff

 

Les transistors sont des "NPN TO-92 2N2222A" et les resistances des 10K.

Pour l'instant tout marche comme il faut je passerai bientot a l'essai sur une semaine.

 

 En esperant que ca t'ai aidé. Reste pas loin, je vais creuser ta reponse mais on ne sait jamais  :b2:

 

Share this post


Link to post
Share on other sites
Gen

Salut.

 

Ton circuit est dangereux, car il ne possède pas de séparation physique entre la commande de relais et la sortie GPIO.

remplace le transistor et la résistance par un optocouleur type PC817 et d'une résistance de 220 Ohms pour une alim de 5V ou une de 100 Ohms pour une sortie 3,3V

 

si la tension de commande nécessaire au  relais SSR est > 5V, là tu peux rajouter un transistor au cul type 2N2222 ou BC 547.

 

ik-pult-dlya-pk-i-rozetok-chast-1-27.png

 

 

Cordialement.

GEN

Edited by Gen

Share this post


Link to post
Share on other sites
pakabonbon

Bonjour Gen et merci pour ta réponse,

 

pourrais tu m'expliquer un peu le circuit stp, je suis vraiment un debutant dans le domaine et pour tout te dire, j'ai deja entendu que l'optocoupleur me permettait d'isoler l'alimentation du relais de celle du Rpi mais je ne comprenais pas trop le montage opto+transistor qu'on me proposait.

Aurais tu un schema du montage complet alim+rpi+opto+relais?

Ce type d'optocoupleur est il le bon: https://www.amazon.fr/pi%C3%A8ces-carte-Traversant-PC817C-Optocoupleur/dp/B00S4YRMB4/ref=sr_1_4?ie=UTF8&qid=1449416456&sr=8-4&keywords=pc817

en te remerciant pour ton aide.

 

 

PS: j'ai vu ton montage dans ton GDW #1 et je vois que tu connect directement les pin du Arduino aux commandes des relais. Lorsque je me suis lancé il y a un an dans ce projet (arret entre temps car j'avais plus d'ordi) on m'avais mis en garde contre le fait que la commande direct sur un Rpi (peut etre que c'est different d'un arduino) du relais risquait fortement de griller les pins. Qu'en pense tu?

Edited by pakabonbon

Share this post


Link to post
Share on other sites
Gen

Salut pakabonbon.

 

un optocoupleur est une séparation physique.

En vulgarisant la chose, je dirai que d'un coté de l'optocoupleur tu as une led et de l'autre coté un phototransistor, le tout dans un même boîtier.

cette barrière lumineuse garanti une séparation bien réelle entre certaines parties d'un circuit.

 

Ton lien est bon. ce sont bien les éléments dont je parle. (PC817)

 

Bien vu... cette tof a été prise lors des tests, les optos ont été ajoutés par la suite. Par contre ils apparaissent bien sur les schémas quand je les communique. voir GDW#2, #4, ...

 

Alors pour te faire ton petit schéma, j'ai besoin de connaître la tension qui sort de ton GPIO (normalement sur du raspberry c'est 3.3V)

 

la plage de tension de commande de ton relais SSR (normalement ca va de 3V à 32VDC)

 

la tension de sortie de ton alimentation générale.

 

le nombre de GPIO que dois gérer le schéma  et si tu le désires je peux aussi te fournir le calque pour faire un circuit imprimé.

 

En attente de te lire.

++

GEN

Edited by Gen

Share this post


Link to post
Share on other sites
pakabonbon

Merci pour ta réponse rapide et complète,

 

pour le raspberry lors de mes dernières lectures j'ai cru lire que la tension maximale tournais aux alentour de 3V.

Pour le SSR la plage de tension est de 4 à 32VDC,

mon alimentation generale (celle qui alimente les relais j'imagine) sont en 5VDC

et j'ai un total de 5 GPIO occupés par les relais plus un GPIO pour la sonde de temperature/hygrométrie.

 

Je vais relire attentivement tes posts et en attendant je suis avides de conseils si tu en as d'autres, je n'ai personne dans mon entourage pouvant me guider tout conseil ou aide est le bienvenu.  :yepah:

Merci encore

Edited by pakabonbon

Share this post


Link to post
Share on other sites
Gen

Re :

 

Non, ton alimentation générale est celle qui va alimenter ton raspberry.

du 9V je suppose  ?

 

++

GEN

Share this post


Link to post
Share on other sites
pakabonbon

Re,

 

c'est une 5V 1500mA (je me rend compte que je devrais passer sur une 2A, comme conseillé de partout)

Share this post


Link to post
Share on other sites
Gen

re:

 

Ok 5v donc, par contre concernant l'intensité nécessaire à ton montage, il faudrait une liste exhaustive de tout ce qui y est connecté et leurs consommations.

 

concernant la consommation des relais cela monterai à 125mA pour les 5 simultanément.

 

Je te prépare le plan sous eagle rapidement, as-tu besoin du calque pour le circuit imprimé ?

 

++

GEN

Edited by Gen

Share this post


Link to post
Share on other sites
pakabonbon

Re,

 

Ne t'embete pas pour le calque du circuit imprimé, j'aurai le temps de t'embeter avec ca un autre jour (on m'avais refroidis sur le fait d'en faire un, trop perfectionniste m'a t on dit, pas necessaire...) je m'applique a la theorie avant tout.

 

Tiens j'ai fait un petit recap de ce qui sera branché, il manque juste un radiateur sur la 5 eme prise (je ne connais pas encore le wattage, surement plus de 2000W).  

 

Sans titre.tiff

 

Merci encore

 

Edit: En relisant, quand tu dis "tout ce qui est connecté" tu parles de ce qui est connecté au Rpi?

Dans ce cas, il y un nanomodule wifi dont je n'arrive pas à trouver la consommation ainsi qu'une sonde DHT22 qui selon les données constructeur consomme entre 300 et 500microampere sur du 3,3V (je ne sais pas si c'est cohérent: https://akizukidenshi.com/download/ds/aosong/AM2302.pdf j'ai pris l'info ici

tout cela en plus des 5 relais.

 

Edit 2: Pour palier aux problèmes de cartes SD qui s'abiment lors des coupures de courant, j'ai trouvé ce site qui donne de quoi faire un onduleur pour Rpi : https://raspi-ups.appspot.com/

Je l'ai essayé avec le code du type et je peux vous dire que ca marche plutot bien. j'ai aimé l'idée, si ca peux en donner a d'autres  :yepah:

Edited by pakabonbon

Share this post


Link to post
Share on other sites
Gen

Yop.

 

oui, c'est bien de la conso du raspberry et des GPIO dont je parlais.

 

Voici comme promis le schéma

 

gallery_616177_4758_8630.png

 

le rendu sur platine (simple face)

 

gallery_616177_4758_24353.png

 

le calque en pdf à l'échelle 1:1

 

gpio.pdf

 

la liste des composants

 

Part       Value          Package  Library     Position (inch)       Orientation
 
D1         1N4004         DO41-10  diode       (0.65 3.3)            R180
GPIO1                     AK500/2  con-ptr500  (0.5 2.95)            R270
GPIO2                     AK500/2  con-ptr500  (0.5 2.55)            R270
GPIO3                     AK500/2  con-ptr500  (0.5 2.15)            R270
GPIO4                     AK500/2  con-ptr500  (0.5 1.75)            R270
GPIO5                     AK500/2  con-ptr500  (0.5 1.35)            R270
GPIO_INPUT                MA06-1   con-lstb    (1.45 3.6)            R0
OK1        PC817          DIL04    optocoupler (1.15 3)              R90
OK2        PC817          DIL04    optocoupler (1.15 2.55)           R90
OK3        PC817          DIL04    optocoupler (1.15 2.15)           R90
OK4        PC817          DIL04    optocoupler (1.15 1.75)           R90
OK5        PC817          DIL04    optocoupler (1.15 1.4)            R90
R1         110            0204/7   rcl         (1.6 2.95)            R0
R2         110            0204/7   rcl         (1.6 2.5)             R0
R3         110            0204/7   rcl         (1.6 2.1)             R0
R4         110            0204/7   rcl         (1.6 1.7)             R0
R5         110            0204/7   rcl         (1.6 1.35)            R0
VCC_5V                    AK500/2  con-ptr500  (0.55 3.65)           R180

 

 

Voila ptit père de quoi t'amuser.. si tu as des difficultés pour réaliser le PCB, contacte moi, je pourrai éventuellement te le faire.

 

Si tu as des questions, n'hésites pas

 

++

GEN

Edited by Gen
  • Like 4

Share this post


Link to post
Share on other sites
pakabonbon

euh.....Merci. Franchement je ne sais pas quoi dire, c'est un énorme coup de pouce que tu viens de me filer.

 

Pour l'instant je n'ai pas trop de questions concernant le montage qui devient quand meme super clair!

J'attend les optocoupleurs commandés au lien que je t'avais montré.

 

J'ai juste une question concernant un problème que j'ai rencontré lors du montage du bloc (avec transistor); je m'explique,

les relais ont été connectés à la manière du schéma que j'avais posté avec le transistor,

la commande de la prise marchait (lampe de chevet connectée au bout) puis

quelques jours après pour un nouvel essai, les relais ne marchait plus.

Peu importe l'état du relais (on/off) et de la commande envoyée depuis le rpi, je récupérais 220V dans la prise qui devrait s'allumer et s'éteindre. 

La mesure de continuité aux bornes du relais m'indique bien qu'il s'ouvre et se ferme mais au niveau de la prise j'ai toujours 220V. Pense tu que ce probleme peut etre du au montage avec transistor? Sachant que je n'ai pas oublié d'isoler le relais (pas en contact avec une plaque en metal ou autre)

Share this post


Link to post
Share on other sites
Gen

re :

 

De rien..

 

Avant toutes supputations,

1 - as-tu testé ta sortie GPIO

2-  as-tu testé ton relais en direct sur l'alim ?

3 - si ca fonctionne c'est que le problème vient du transistor.

4 - si le point 3 ne fonctionne pas c'est que ton relais est dead.

++

GEN

Edited by Gen

Share this post


Link to post
Share on other sites
pakabonbon

Re,

 

Au final je viens de revoir ca ce soir et la solution est trop bête... Mais ca pourrais servir a quelqu'un 

Je mesurai l'intensité aux bornes de la prises sans rien branché dessus et la je mesurai 220V peu importe l'état du relais,

mais une fois une lampe branché dessus tout est revenue à la normale. Je n'ai pas top d'explication, le pote avec moi m'a dit que ca lui était arrivé avec un relais pour portail electrique et qu'apparement il fallait une "resistance" au bout pour que tout marche. Peut etre que tu as une réponse plus technique à ça.

En tout cas ca me rassure, ce soir le systeme tourne, je vais attendre de recevoir les optocoupleur pour finaliser le montage et lancer tout ca dans son but final :)

 

Pour le PCB, maintenant que la question peux se poser  :high:  tu les fais toi même ou tu les commandes sur un site à qui tu envois les fichier? 

 

Merci encore pour tes conseils, j'ai commandé un UNO avec un LCD pour commencer à apprendre l'arduino, tu m'as donné envi avec tes tutos!

Share this post


Link to post
Share on other sites
Gen

re :

 

Concernant les PCB,  en simple face je les fais moi-même, pour le double face,  je m'adresse à une société spécialisée.

 

++

GEN

Share this post


Link to post
Share on other sites
pakabonbon

Re, 

Ca marche, j'avais regardé les methodes de realisation pour un PCB encore un petit challenge.

Par simple curiosité, pour quelque chose de propre fais par une société spécialisée il faudrait compter combien pour un PCB de ce type? Et si il y a une adresse que tu préfères plutot qu'une prise au hasard sur google, je suis preneur aussi.

 

Dans l'attente de te lire, thanks pour tous ces conseils

Share this post


Link to post
Share on other sites
Gen

re:

 

Perso je fais faire mes PCB au japon, mais c'est des séries faites par des robots sur chaine, un article unique va te coûter un avion.

Sinon il existe des petits particuliers en FR qui font des circuits à la pièce pour les bricoleurs pas cher.

(difficile de t'aider, je suis en Espagne)

 

tapes dans google PCB prototyping france et tu trouveras ton bonheur.

 

****************************************************************************

 

Cordialement.

GEN

Edited by Etranje
proposition supprimée

Share this post


Link to post
Share on other sites
pakabonbon

Re,

 

 

EDIT: JE cherche en parallèle à rendre le rpi complètement autonome du point de vue connection (en attendant de transferer le tout sur arduino) comme je l'avais dis un peu avant avec l'achat d'une horloge autonome.

Jusqu'ici tout va bien, les allumages de relais programmés se font très bien sans aucune connection et les scénarios programmés se font sans soucis. Wared Quality ton script me sert bien pour la récolte des donnés de la sonde vers le rpi mais elles ne sont pas intégrées dans domoticz.

Le hic, vient donc de l'envoi des données de la sonde vers domoticz qui se fait grâce à ce script:

#!/bin/sh

# Domoticz server

SERVER="192.168.0.29:8080"

# DHT IDX

# le numero de l4IDX dans la liste des dispositifs Domoticz

DHTIDX="1"

DHTIDX2="2"

DHTIDX3="3"

DHTIDX4="4"

#DHTPIN

# LE GPIO ou est connecte le DHT11

DHTPIN="4"

# si vous avez un DHT22 modifiez plus bas sur la ligne Adafruit_DHT 11 par Adafruit_DHT 22

# TMPFILE : chemin pour fichier temporaire a placer dans le RAMDRIVE pour eviter les

# ecritures sur la SD card

# sinon chemin ou sera ecrit le fichier contenant les temperature

# /tmp/temper.txt est un bon choix si pas de RAMDRIVE installe

# consultez www.easydomoticz.com pour tout savoir

TMPFILE="/var/tmp/temper.txt"

TEMP=""

 

until [ -n "$TEMP" ] ; do

sleep 5

sudo nice -20 Adafruit_DHT 22 $DHTPIN > $TMPFILE

TEMP=$(cat $TMPFILE|grep Temp |awk '{print $3}')

done

 

TEMP=$(cat $TMPFILE|grep Temp |awk '{print $3}')

HUM=$(cat $TMPFILE |grep Temp |awk '{print $7}')

 

# Send data

curl -s -i -H "Accept: application/json" "https://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX&nvalue=0&svalue=$TEMP;$HUM;2"

curl -s -i -H "Accept: application/json" "https://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX2&nvalue=0&svalue=$TEMP"

curl -s -i -H "Accept: application/json" "https://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX3&nvalue=0&svalue=$HUM"

curl -s -i -H "Accept: application/json" "https://$SERVER/json.htm?type=command&param=udevice&idx=$DHTIDX4&nvalue=0&svalue=$HUM"

TEMP=""

HUM=""

 

 

Le problème vient je pense du fait qu'il appel le serveur domoticz par son IP afin d'utiliser json et donc dès qu'il y a un changement d'IP ou une déconnection internet, les données ne sont plus envoyés vers domoticz et les scénarios, etc... en lien avec ces données ne sont plus actualisés.

Quelqu'un aurai-t-il une solution à ce problème?

 

Merci d'avance

Share this post


Link to post
Share on other sites
wared quality

ton probleme est que tu utilises le dhcp pour l'attribution de l'adresse ip

 

il te suffit de choisir une ip et de la configurer en ip fixe

 

tu trouveras pleins de tutos pour ca

 

dernier conseil, penses à sauvegarder ta carte regulierement, ca evite de tout réinstaller en cas de mauvaise manip

Share this post


Link to post
Share on other sites
pakabonbon

Yes, j'ai vu pleins de tutos pour palier à ça mais tous traites d'adresses IP dans le DHCP.

La manip pour une adresse IP hors du DHCP est la meme?

 

Et quand tu parles de sauvegardes de la carte régulière, tu parles de backup domoticz?

Edited by pakabonbon

Share this post


Link to post
Share on other sites
pakabonbon

Re tout le monde,

 

Alors ces derniers jours j'ai planché sur un problème que j'avais dans l'endroit ou est situé la box à savoir: pas internet.

J'ai donc palié au problème énoncé ci-dessus en changeant l'adresse SERVER dans le script par 127.0.0.1.

Ensuite, afin de pouvoir quand meme gérer les variables et voir les logs, j'ai mis le Rpi en mode AccessPoint Wifi, j'ai donc autour de la box un réseau Wifi qui me permet de rentrer sur domoticz, faire mes backups etc... 

Le tout est donc maintenant parfaitement autonome question internet et accessible avec un simple telephone portable une fois à proximité.
 

Si ca intérresse du monde, j'ai noté toutes les manip que j'ai du faire pour arriver à ça, je les posterai ici si besoin 

 

Voila, le projet est fini, reste quelques trucs à finaliser comme l'alumage de la lampe grâce aux évenements, je ne veux pas utiliser le timer car si le Rpi s'éteint puis se rallume, la lampe ne fera pas de meme, il faudra attendre le prochain cycle. (Problème résolu pour l'instant en mettant une action ON toutes les 10min avec le timer pendant le temps d'allumage, mais ca fait quand meme 100 commandes...

Edited by pakabonbon

Share this post


Link to post
Share on other sites