Taula de continguts:

EnergyChain: 4 passos
EnergyChain: 4 passos

Vídeo: EnergyChain: 4 passos

Vídeo: EnergyChain: 4 passos
Vídeo: Flexible cables for Energy Chains 2024, Juliol
Anonim
EnergyChain
EnergyChain

/ * Treballs encara en curs * /

Energy Chain és un POC que combina IOT i Blockchain.

El que vam fer permetia a la gent vendre l'energia que produïa a qualsevol persona sense necessitat de cap nivell. Per garantir la seguretat entre el productor i el consumidor, el consumidor pot connectar-hi el que vulgui i obtenir energia. La casella mesura la quantitat de corrent consumida i escriu l'equivalent

Pas 1: materials

Materials
Materials
Materials
Materials
Materials
Materials

Per fer aquest projecte utilitzarem:

- 1 Raspberry Pi Zero

- 1 sensor de corrent AS712 (20A)

- 1 ADC 16 bits I2C ADS1555

- 1 sensor RFID RC522

- 1 relé 5V

- Convertidor 1AC / DC 5V / 2A ECL10US05-E de Farnell

- 1 presa de corrent

Pas 2: cablejat

Cablejat
Cablejat

Hem de connectar-ho tot tal com es mostra a la imatge, amb compte amb el corrent lliurat pel Raspberry Pi.

Cablatge de comandaments:

  • 3v3 Power - Relé 5V Vcc / Sensor de corrent Vcc / RFID Vcc / ADC Vcc
  • 5v Power - convertidor de CA / CC 5v
  • Terra: relé 5V GND / sensor de corrent GND / AC / DC convertidor GND / RFID GND / ADC entrada i sortida GND
  • BCM 2 - ADC SDA
  • BCM 3 - ADC SCL
  • BCM 4 - ADC CLK
  • BCM 6 - RFID SDA
  • BCM 9 - RFID MISO
  • BCM 10 - RFID MOSI
  • BCM 11 - RFID SCK
  • BCM 17 - Relé 5V IN
  • BCM 24 - Restabliment RFID
  • BCM 25 - RFID RST

Pas 3: Codi

Aquest codi funciona de la següent manera:

El sensor RFID espera una etiqueta i l’escriu al terminal. Aleshores, el sensor actual mesura la quantitat de corrent altern consumit i mostra al terminal la potència instantània cada 100 mesures. Gràcies a això, podem obtenir la quantitat de kWh.

socket d'importació, json

import sys from threading import Fil de pirc522 importació RFID importació RPi. GPIO com GPIO ## Importació biblioteca GPIO importació senyal importació temps importació Adafruit_ADS1x15 GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. OUT) GPIO.output (11, True) rdr = RFID () util = rdr.util () util.debug = True TCP_IP = '172.31.29.215' TCP_PORT = 5000 BUFFER_SIZE = 1024 adc = Adafruit_ADS1x15. ADS1115 () def end_read (senyal, marc): execució global print ("\ nCtrl + C capturat, finalitzant la lectura.") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT, end_read) def loopLectura (s): DemandeTag = 1 DemandeMesure = 0 bol = True while (bol): if DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1 if DemandeMesure == 1: Mesure2 () try: data = s.recv (BUFFER_SIZE) if not data: break print data dataJSON = json.loads (data) if "message" in dataJSON: imprimeix dataJSON ['message'] if dataJSON ['message'] == "exit": print ('Exit demande') GPIO.output (11, GPIO. HIGH) DemandeTag = 0 DemandeMesure = 0 bol = False si dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 if dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' except Exception as e: continue s.close () etiqueta def (): rdr.wait_for_tag () (error, dades) = rdr.request () time.sleep (0.25) (error, uid) = rdr.anticoll () ID = str (uid [0]) + '. '+ str (uid [1]) +'. '+ str (uid [2]) +'. '+ str (uid [3]) print ("UID de lectura de targeta:" + ID) sortida GPIO.out (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0 mentre que def Mesure2 (): mesure_voltage = 0 Nbre_mesure = 200 max_voltage = 0 min_voltage = 32768 mVparAmp = 100 Puissance = 0 i = 0 readValue = 0 while imax_voltage: max_voltage = readValue if readValue def Mesure3 (): print (str (adc.read_adc (0, gain = 1))) if _name_ == "_main_": s = socket.socket (socket. AF_INET, socket. SOCK_STREAM) # s.connect ((TCP_IP, TCP_PORT)) # s.setblocking (0) loopRead (s)

Pas 4: la caixa

Per fer tota l’electrònica més compacta, hem dissenyat una caixa que contindrà tot el que hi ha a l’interior. Per cargolar-ho tot utilitzarem cargols M3.

Recomanat: