Faire un afficheur déporté

Plus d'informations
21 Nov 2022 09:53 #1 par Baroudeur
Faire un afficheur déporté a été créé par Baroudeur
Le problème que j'ai (ma femme surtout) est de savoir si on peut mettre en marche une machine ou pas.
J'aurais souhaité mettre un ESP32 avec un afficheur e-paper qui affiche la production PV, la conso cumulus et la conso ou injection EDF.
Est-il possible de récupérer ces infos sur le MSunPV et permettre ainsi un affichage facile ?

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
21 Nov 2022 10:22 #2 par Defaliz
Réponse de Defaliz sur le sujet Faire un afficheur déporté
bonjour baroudeur..
sans problème avec une requete curl ou wget sur l'url http://ip_du_msun/status.xml")
j'ai écrit en script en python pour utiliser avec l'appli de smartphone blynk ici :
ard-tek.com/index.php/forum/vos-installa...ans-l-app-blynk#4685
bonne journée

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
22 Nov 2022 07:20 - 17 Avr 2023 14:26 #3 par syl2222fr
Réponse de syl2222fr sur le sujet Faire un afficheur déporté
Drapal :)

Je fais déjà ça sur mon ecojoko Home-Made avec un raspberry (script en bash tout simple , led , ecran oled et sg90), mais, curieux de nature, et n'y connaissant rien en esp , ça m’intéresse :=)


Edit:
Pense-bête =>

Le github de baroudeur:
github.com/JJHontebeyrie/Companion

Github rempli d'exemples pour faire des tests quand on a des soucis (ecran noir par exemple):
github.com/teastainGit/LilyGO-T-display-S3-setup-and-examples

Les versions custom:
ard-tek.com/index.php/forum/vos-installa...cheur-deporte-custom
Dernière édition: 17 Avr 2023 14:26 par syl2222fr.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
03 Déc 2022 23:42 - 03 Déc 2022 23:43 #4 par Baroudeur
Réponse de Baroudeur sur le sujet Faire un afficheur déporté

Drapal :)

Je fais déjà ça sur mon ecojoko Home-Made avec un raspberry (script en bash tout simple , led , ecran oled et sg90), mais, curieux de nature, et n'y connaissant rien en esp , ça m’intéresse :=)

Par contre ta solution avec le Raspi m’intéresse aussi
Dernière édition: 03 Déc 2022 23:43 par Baroudeur.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
04 Déc 2022 19:55 #5 par xavax
Réponse de xavax sur le sujet Faire un afficheur déporté
Intéressant ce sujet. J’aimerais faire la même chose avec un esp qui consomme pas beaucoup.
J’avais vu le led smart messager mais après faut voir comment faire arriver les données dessus

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
05 Déc 2022 06:26 - 06 Déc 2022 11:37 #6 par syl2222fr
Réponse de syl2222fr sur le sujet Faire un afficheur déporté
@Baroudeur .

Alors , sur raspberry :

Pour la partie gestion oled, j'ai récupéré ce dépot github :
github.com/nopnop2002/Raspberry-ssd1306

Ca permet de piloter, en bash, un écran oled.

Au niveau du code , ci-dessous quelques explications

J'ai un oled sur lequel j'affiche :
Conso/injection Enedis,
Generation Solaire
routage vers chaque sortie
adresse ip

J'ai 2 sg90 :
Un premier me montre ma conso (entre 0 et 6000w)
Le second me montre ce que je génére (ente 0 et 2920w)

3 led:
Rouge= je récupére depuis le réseau enedis
Vert = je génére depuis les panneaux
Bleu= J'injecte vers enedis

Toutes les infos brut sont récupérées depuis ma domotique qui, elle-même récupére depuis le routeur (curl http://xxxx/status.xml )

Le code est pas propre, mais, étant donné que je suis nul en python , c'est mieux que rien
#/bin/bash

#Init Gpio for motor and initial position
gpio -g mode 19 pwm
gpio -g mode 12 pwm
gpio pwm-ms
gpio pwmc 192
gpio pwmr 2000
#At startup , put sg90 at initial value
#sg can go from 250 (left) to 50 (right)
gpio -g pwm 19 150
gpio -g pwm 12 150
oldvaluepwm=150
oldvaluepwmsun=150

#Init Leds
#Led rouge
echo 4 > /sys/class/gpio/export
#Led verte
echo 17 > /sys/class/gpio/export
#Led bleue
echo 27 > /sys/class/gpio/export
sleep 1
echo out > /sys/class/gpio/gpio17/direction
echo out > /sys/class/gpio/gpio4/direction
echo out > /sys/class/gpio/gpio27/direction

#Init Oled
sudo /home/pi/tests/oled3c r
#sudo /home/pi/tests/oled3d r

#Init few variables
sun=300
valuetempoenedis=300


##############################################################################

#Get ip address and show it
sudo /home/pi/tests/oled3c +4 "$(ip a l | grep 192.168 | cut -d ' ' -f6)"


###################################
while true
do

tempo=$(curl -s http://xxxx/conso.html )
#The curl point to my local http serveur where values are in this form
#500;0;0;0  (enedis in/out; solar generated;routage 1; routage2

valueenedis=$(echo $tempo | cut -d ';' -f1)
valuesun=$(echo $tempo | cut -d ';' -f2)
routage=$(echo $tempo | cut -d ';' -f3-4)

##############
##Led color ##
##############

###########
#Red when Enedis >0
##########
if [ "$valueenedis" -gt 1 ]
then
echo 1 > /sys/class/gpio/gpio4/value
else
echo 0 > /sys/class/gpio/gpio4/value
fi

###########
#Greeen when valuesun >1
###########
if [ "$valuesun" -gt 1 ]
then
echo 1 > /sys/class/gpio/gpio17/value
else
echo 0 > /sys/class/gpio/gpio17/value
fi

##########
# Blue when inject to enedis
###########
if [ "$valueenedis" -lt 0 ]
then
echo 1 > /sys/class/gpio/gpio27/value
else
echo 0 > /sys/class/gpio/gpio27/value
fi


###############
##OLED      ###
###############


###
# Affichage oled enedis quand il change
####
if [ "$valueenedis" != "$valueendistempo" ]; then
valueendistempo=$valueenedis
sudo /home/pi/tests/oled3c +2 "C.Rsx(Va):$valueenedis"
sudo /home/pi/tests/oled3c s
fi


###
# Affichage oled sun et routage quand il change
####
if [ "$valuesun" != "$sun" ]; then
sun=$valuesun
sudo /home/pi/tests/oled3c +1 "P.Sol(Va):$valuesun"
sudo /home/pi/tests/oled3c +3 "Rout(%):$routage"
sudo /home/pi/tests/oled3c +4 "$(ip a l | grep 192.168 | cut -d ' ' -f6)"
sudo /home/pi/tests/oled3c s
fi


####################
##### Motor     ####
####################

###Boucle Enedis
if [ "$valueenedis" != "$oldvalueenedis" ]; then

#Calcul pwm . Middle pwm = 150 , min =250 , max =50
#250 = 0 W consomme enedis
#50=6000W aspire
# soit 200 points pour 6000 w. chaque point fais donc 30w

#In case inject to enedis, lets say than valueenedis equal 0 otherwise sg90 become broken
if [ "$valueenedis" -lt 1 ]; then
valueenedis=0
fi
newvaluepwm=$(echo "250-($valueenedis/30)" |bc)



#if old greater than new
while [ "$oldvaluepwm" -gt "$newvaluepwm" ]
do
gpio -g pwm 19 $oldvaluepwm
oldvaluepwm=$((oldvaluepwm-1))
sleep 0.2
done


#if old lower than new
while [ "$oldvaluepwm" -lt "$newvaluepwm" ]
do
gpio -g pwm 19 $oldvaluepwm
oldvaluepwm=$((oldvaluepwm+1))
sleep 0.2
done

#Fin de boucle . On remets  a jour la variable
oldvalueenedis=$valueenedis
fi




###Boucle Sun
if [ "$valuesun" != "$oldvaluesun" ]; then

#Calcul pwm . Middle pwm = 150 , min =50 , max =250
#250 = 2950 W produis panneaux
#50=0W panneaux
# soit 200 points pour 2950 w. chaque point fais donc 14w
newvaluepwmsun=$(echo "50+($valuesun/14)" |bc)


#if old greater than new
while [ "$oldvaluepwmsun" -gt "$newvaluepwmsun" ]
do
gpio -g pwm 12 $oldvaluepwmsun
oldvaluepwmsun=$((oldvaluepwmsun-1))
sleep 0.2
done


#if old lower than new
while [ "$oldvaluepwmsun" -lt "$newvaluepwmsun" ]
do
gpio -g pwm 12 $oldvaluepwmsun
oldvaluepwmsun=$((oldvaluepwmsun+1))
sleep 0.2
done

#Fin de boucle . On remets  a jour la variable
oldvaluesun=$valuesun
fi
sleep 5
done
Dernière édition: 06 Déc 2022 11:37 par syl2222fr.
Les utilisateur(s) suivant ont remercié: Sarthe Vador, Ptitseb457

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
05 Déc 2022 19:54 #7 par Baroudeur
Réponse de Baroudeur sur le sujet Faire un afficheur déporté
Très, très intéressant, tu pourrais mettre une photo de ton boitier pour voir le look ?
Les utilisateur(s) suivant ont remercié: Sarthe Vador

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
06 Déc 2022 09:30 - 06 Déc 2022 11:53 #8 par syl2222fr
Réponse de syl2222fr sur le sujet Faire un afficheur déporté
Hello

Recto:
ibb.co/44dRPNY

Verso:
ibb.co/LYCHB4k

Et, si quelqu'un veut essayer, voici ce que j'ai tapé sur un raspbian tout neuf (certaines commandes servent certainement à rien, mais, bon, ça marche):
nano /boot/config.txt .
Rajouter à la fin:
dtoverlay=pwm-2chan

Sudo raspi-config : enable i2c
sudo apt install git bc i2c-tools

wget project-downloads.drogon.net/wiringpi-latest.deb
sudo dpkg -i wiringpi-latest.deb
mkdir tests
mkdir tests/fontx
git clone github.com/nopnop2002/Raspberry-ssd1306
cd Raspberry-ssd1306
i2cdetect -y 1

Récupérer l'adresse de l'écran et modifier si nécessaire le fichier oled.c (adresse par défaut 3c dans le fichier)
J'ai un écran i2c 128*64 , du coup:
cc -o oled3c oled.c fontx.c -lwiringPi -lpthread -DI2C
cp fontx/* ../tests/fontx/
cp oled3c ../tests
cd ..
rm -fr Raspberry-ssd1306
cd tests
nano afficheur.sh
(copier/coller le code, changez l'url dans le code + save et exit)
chmod +x afficheur.sh

./afficheur.sh &
optionnel: crontab -e : @reboot bash /home/pi/tests/afficheur.sh

Et, normalement ça marche . Y'a certainement des trucs faux, vu que j'écris tout ça sans être devant le rasp.

Au niveau du cablage : les leds sont sur les gpio 4,17,27 , l'ecran sur le bus i2c, les sg90 sur les gpio 12 et 19


Je rajoute un SOS : J'ai bricolé ça sur un reveil , car, j'y connais fichtrement rien en conception 3D/imprimante 3D.
Si quelqu'un est trés doué et est capable de nous faire une jolie boite, je serais preneur du fichier pour le faire imprimer par un pro :)
Dernière édition: 06 Déc 2022 11:53 par syl2222fr.

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
06 Déc 2022 13:37 #9 par Baroudeur
Réponse de Baroudeur sur le sujet Faire un afficheur déporté
Ouais, au point de vue boitier, on peut mieux faire.
j'ai des problèmes pour récupérer les données du routeur sous Arduino, faut que je creuse

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
15 Déc 2022 08:10 #10 par Baroudeur
Réponse de Baroudeur sur le sujet Faire un afficheur déporté
Je cherche une âme charitable pour me montrer comment récupérer les données du fichier xml en programmant sous Arduino, si l'un de vous a fait un code,je suis preneur :cheer:

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
20 Déc 2022 10:58 - 20 Déc 2022 16:17 #11 par Baroudeur
Réponse de Baroudeur sur le sujet Faire un afficheur déporté
Bon, j'ai avancé un peu, encore du boulot à faire. le circuit utilisé est un LILYGO ESP32 S3 ( s.click.aliexpress.com/e/_DBQ43UT ), c'est minuscule et ça peut être collé au mur n'importe ou.
Sur ce circuit des boutons en façade sont dispos, ils permettent d'afficher de façon cyclique le détail, le cumul des consos et production et la dépendance énergétique.
Encore en stade de développement, je vous donnerai tous les détails dès que tout sera optimisé.
Le voyant permet de savoir si on peut mettre une machine en marche ou pas pour ne pas gréver la facture.


Pièces jointes :
Dernière édition: 20 Déc 2022 16:17 par Baroudeur.
Les utilisateur(s) suivant ont remercié: ultimbou, Festayros

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
20 Déc 2022 11:24 #12 par Sarthe Vador
Réponse de Sarthe Vador sur le sujet Faire un afficheur déporté
Splendide !!!

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
20 Déc 2022 13:39 #13 par xavax
Réponse de xavax sur le sujet Faire un afficheur déporté
top ! impatient d'avoir les details

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
22 Déc 2022 11:12 #14 par felvic
Réponse de felvic sur le sujet Faire un afficheur déporté
Je suis admiratif du travail effectué.

Mais une petite tablette ou un smartphone Android avec l'interface du routeur ?

Avec Linux vous avez un noyau, avec Windows vous avez des pépins...

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
22 Déc 2022 15:03 #15 par Baroudeur
Réponse de Baroudeur sur le sujet Faire un afficheur déporté
Deux raisons :
1 - Affichage très lent sur une tablette, il est beaucoup plus rapide sur un ordi connecté filaire.
2- Nécessité d'afficher juste quelques infos. il faut que ma femme sache si elle peut lancer une machine en jetant un simple coup d’œil

Après ce module est tout petit, on peut le positionner n'importe où et le voyant donne une info immédiate:
  • vert : on lance sans réfléchir, le système réinjecte
  • bleu : ça fourni mais bof, ça dépend de la puissance de la machine qu'on veut lancer
  • rouge : on consomme déjà trop !

Connexion ou Créer un compte pour participer à la conversation.

Propulsé par Kunena