Les cookies assurent le bon fonctionnement de nos services. En utilisant ces derniers, vous acceptez l'utilisation des cookies. En savoir plus

C'est parti !

Le Challenge des Makers 2020

J'y cours

Atelier promotion 1

C'est parti !

Le Challenge des Makers 2020

J'y cours

Atelier promotion 1

Affichage déporté pour compteur Linky

Partager:

Difficulté:

Je vous propose de réaliser un afficheur déporté pour compteur Linky. Cet afficheur, disponible au sein de votre lieu de vie, vous permettra d'apprécier en direct la consommation des différents appareils de votre logement. Il pourra également vous éviter de surcharger votre installation et éviter de faire "sauter les plombs" en échelonnant vos différents consommateurs d'énergie : lave-linge, lave-vaisselle, sèche-linge, etc. Le programme proposé est adapté à un abonnement avec option heures creuses, monophasé. Mais il est tout à fait possible d'adapter le programme écrit en micropython et interprété par la carte Pybstick26.

Pour cette version de programme, la pybstick26 lite suffit. Vous la trouverez ici : https://shop.mchobby.be/fr/micropython/1830-pybstick-lite-26-micropython-et-arduino

Un mot sur la sécurité, ce montage ne respecte pas les exigences du document : https://www.enedis.fr/sites/default/files/Enedis-NOI-CPT_54E.pdf Il est donc naturel que je me décharge de toute responsabilité concernant la réalisation de ce dispositif par un tiers. Vous voilà averti. Néanmoins, s'il est correctement réalisé, il ne représente aucun danger pour l'utilisateur et le compteur lui-même. Il consomme environ 10mA sous 3,6 à 6V donc moins de 130mW. 

Par contre, il ne tiendra pas les agressions  comme le branchement direct au 220V AC. Mais avez-vous envie de vous électriser au 220V ?

Bonne réalisation.

Matériel :

Budget : 39€

  • 1 carte PYBSTICK26 LITE
  • 1 résistance 470 ohms
  • 1 résistance 10 kOhms
  • 1 condensateur chimique 100uF/16V
  • 1 optocoupleur VISHAY K814P
  • 1 plaque à trous au pas 2.54
  • 1 afficheur OLED 128x64
  • 2 barettes 13 broche mâle pas 2.54mm
  • 4 diodes 1N4148
  • 10 mètres de câble téléphonique ou alarme

Fichiers :

Etape 1 : Le schéma de principe

Voilà le schéma de principe de notre afficheur déporté Linky. Rien de bien compliqué. Le compteur Linky, par rapport à ses prédécesseurs, offre une troisième broche à coté des broches I1 et I2 nommée A pour alimentation. Celle-ci délivre un courant alternatif de 6Vcc pouvant aller jusqu'à 12Vcc entre les broches I1 & A. On peut consommer 130mW sur cette alimentation. C'est donc un simple pont redresseur double alternance réalisé avec 4 diodes de commutations 1N4148 et une "grosse" capacité réservoir de 100uF qui alimentera les broches 2 et 4 de la carte PYBSTICK.

Les données sont fournies au rythme démentiel de 1200 bauds, 1 bit de start, 7 bits de données, 1 bit parité paire et 1 de stop entre les broches I1 et I2 sous la forme d'une tension alternative de 6Vcc présente pour un bit dominant ou absente pour un bit ressessif. C'est donc avec un optocoupleur avec émetteur alternatif et une sortie de type collecteur émetteur qui, associé à une résistance de tirage de 10kohms fixée à la tension de sortie de 3.3V réalisera la conversion en niveau logique interprété par l'entrée RX de l'UART2 de la PYBSTICK (broche 8).

Le petit écran OLED sera lui câblé en I2C avec un signal de reset généré par par l'IO S7 de la PYBSTICK 26.

Etape 2 : Installation du câble déporté

Qui dit afficheur déporté dit câble.Vous avez besoin d'un câble avec à minima trois conducteurs. Un câble 4 paires torsadées, non blindé, pour centrale d'alarme et assez bon marché. A acheter en grande surface de bricolage ou à récupérer sur une ancienne installation. Cela peut-être du câble téléphonique agrafé sur une plinthe (on ne s'enkikinait pas en 1970-80 lorsque le téléphone arrivait à la maison, les techniciens France Telecom posaient ça le plus vite possible). Il vaut mieux utiliser du câble monobrin, plus pratique pour le connecteur sans soudure présent sur le compteur Linky.

Etape 3 : Assemblage de la Pybstick26 sur la plaque à trous

Il s'agit de braser les deux connecteurs femelles livrés avec la pybstick26 de manière à obtenir quelque chose comme ça.

Etape 4 : Preparation de l'afficheur OLED 6 broches

Sources :

# main.py -- put your code here!
 
from machine import I2C, Pin
import pyb
import select
import ssd1306
from time import sleep, sleep_ms
from fdrawer import FontDrawer
 
# pybstick lite à 48MHz pour autoalimentation sur compteur Linky
pyb.freq(48000000)
 
# init bus i2c a 400KHz
i2c=I2C(1, freq=400000)
 
# reset afficheur OLED
rst=Pin("S7", Pin.OUT_PP)
rst.low()
sleep_ms(50)
rst.high()
 
# Initialisation afficheur
oled = ssd1306.SSD1306_I2C(width=128, height=64, i2c=i2c, addr=0x3c, external_vcc=False)
oled.init_display()
 
# Dessiner un rectangle blanc - rect( x, y, w, h, c )
oled.show() # doit être appelé
 
def display(wh, hp, hc, ph):
    oled.fill(0)
    oled.rect( 0, 0, 128, 64, 1 )
    oled.line( 92, 30, 92, 64, 1 )
    oled.line( 0, 30, 128, 30, 1 )
    fd = FontDrawer( frame_buffer=oled, font_name = 'vera_23' )
    fd.print_str(str(wh), 8, 5 )
    fd.print_str(str(ph), 96, 36 )
    fd = FontDrawer( frame_buffer=oled, font_name = 'vera_15' )
    fd.print_str("W/Hr", 80, 10 )
    fd.print_str("HP:", 8, 30 )
    fd.print_str("HC:", 8, 46 )
    fd.print_str(str(hp), 35, 32 )
    fd.print_str(str(hc), 35, 46 )
    oled.show()  
 
# declaration à zéro des index
wh = 'xxxxx'
hc = 'xxxxxx'
hp = 'xxxxxx'
ph = 'xx'
buffer_size = 128
loop = 0
 
 
info = pyb.UART(2, 1200, bits=7, parity=0, stop=1, timeout=0)
 
while 1:
    tampon=str(info.read(buffer_size))
 
    if tampon :
        print (tampon)
        x=tampon.find('HCHC')
        if x >=0 and x < (buffer_size-20): hc=tampon[x+5:x+11]
        x=tampon.find('HCHP')  
        if x >=0 and x < (buffer_size-20): hp=tampon[x+5:x+11]
        x=tampon.find('PAPP')  
        if x >=0 and x < (buffer_size-16) and tampon[x+10] == ' ': wh=tampon[x+5:x+10]
        x=tampon.find('PTEC')  
        if x >=0 and x < (buffer_size-16): ph=tampon[x+5:x+7]
    loop = loop + 1
     
    if loop >= 3:
        display(wh, hp, hc, ph)
        loop = 0


Partager:

Recevez une fois par mois les meilleurs tutoriels Déco dans votre boîte mail


Ces tutoriels devraient vous plaire

Construire son R2D2 taille réelle
fabrication de circuits imprimés facile
Connecter un écran LCD en I2C

fpie

Suivre

Vues: 355
J'aime: 2

Découvrez d'autres tutoriels de

fpie

Découvrez tous les tutoriels partagés sur Oui Are Makers

Powered by Oui Are Makers