Índice:

EnergyChain: 4 etapas
EnergyChain: 4 etapas

Vídeo: EnergyChain: 4 etapas

Vídeo: EnergyChain: 4 etapas
Vídeo: Rube Goldberg 3D Animation 2024, Julho
Anonim
EnergyChain
EnergyChain

/ * Trabalho ainda em andamento * /

Energy Chain é um POC que combina IOT e Blockchain.

O que fizemos permite que as pessoas vendam a energia que produzem a qualquer pessoa, sem necessidade de qualquer nível. Para garantir a segurança entre o produtor e o consumidor, o consumidor pode conectar o que quiser nele e obter energia. A caixa mede a quantidade de corrente consumida e escreve o equivalente

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais
Materiais
Materiais

Para fazer este projeto usaremos:

- 1 Raspberry Pi Zero

- 1 sensor de corrente AS712 (20A)

- 1 ADC 16bit I2C ADS1555

- 1 sensor RFID RC522

- 1 relé 5V

- Conversor 1AC / DC 5V / 2A ECL10US05-E da Farnell

- 1 tomada elétrica

Etapa 2: Fiação

Fiação
Fiação

Precisamos conectar tudo como é mostrado na imagem, cuidado com a corrente fornecida pelo Raspberry Pi.

Fiação de comando:

  • Alimentação 3v3 - Relé 5V Vcc / Sensor de corrente Vcc / RFID Vcc / ADC Vcc
  • Energia 5v - conversor CA / CC 5v
  • Terra - Relé 5V GND / Sensor de corrente GND / conversor AC / DC GND / RFID GND / ADC entrada e saída 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 - Reinicialização RFID
  • BCM 25 - RFID RST

Etapa 3: Código

Este código funciona da seguinte maneira:

O sensor RFID espera por uma etiqueta e a escreve no Terminal. Em seguida, o sensor de corrente mede a quantidade de corrente CA consumida e exibe no terminal a potência instantânea a cada 100 medidas. Graças a isso, podemos obter a quantidade de kWh.

import socket, json

import sys from threading import Thread from pirc522 importar RFID importar RPi. GPIO como GPIO ## Importar biblioteca GPIO importar sinal importar tempo importar 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 (sinal, quadro): execução global print ("\ nCtrl + C capturado, finalizando a leitura.") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT, end_read) def loopRead (s): DemandeTag = 1 DemandeMesure = 0 bol = True while (bol): se DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1 se DemandeMesure == 1: Mesure2 () try: data = s.recv (BUFFER_SIZE) se não data: break print data dataJSON = json.loads (data) if "mensagem" em dataJSON: print dataJSON ['mensagem'] if dataJSON ['mensagem'] == "exit": print ('Exit demande') GPIO.output (11, GPIO. HIGH) DemandeTag = 0 DemandeMesure = 0 bol = False if dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 if dataJSON ['mensagem'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 mensagem = '' exceto Exceção como e: continue s.close () def tag (): rdr.wait_for_tag () (erro, dados) = rdr.request () time.sleep (0,25) (erro, uid) = rdr.anticoll () ID = str (uid [0]) + '. '+ str (uid [1]) +'. '+ str (uid [2]) +'. '+ str (uid [3]) print ("Cartão lido UID:" + ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0 enquanto i def Mesure2 (): mesure_voltage = 0 Nbre_mesure = 200 max_voltage = 0 min_voltage = 32768 mVparAmp = 100 Puissance = 0 i = 0 readValue = 0 enquanto imax_voltage: max_voltage = readValue if readValue def Mesure3 (): print (str (adc.read_adc (0, ganho = 1))) if _name_ == "_main_": s = socket.socket (socket. AF_INET, socket. SOCK_STREAM) # s.connect ((TCP_IP, TCP_PORT)) # s.setblocking (0) loopRead (s)

Etapa 4: a caixa

Para tornar toda a eletrônica mais compacta, projetamos uma caixa que conterá tudo dentro. Para aparafusar tudo usaremos parafusos M3.

Recomendado: