Innholdsfortegnelse:

EnergyChain: 4 trinn
EnergyChain: 4 trinn

Video: EnergyChain: 4 trinn

Video: EnergyChain: 4 trinn
Video: Самая дешевая аккумуляторная цепная пила с Алиэкспресс. Тест. Разборка. Стоит ли покупать из Китая? 2024, November
Anonim
EnergyChain
EnergyChain

/ * Arbeidet pågår fortsatt */

Energy Chain er en POC som kombinerer IOT og Blockchain.

Det vi lagde, tillater folk å selge energien de produserer til noen uten noe nivå. For å sikre sikkerheten mellom produsenten og forbrukeren, kan forbrukeren koble til det han vil på den og få energi. Boksen måler strømforbruket og skriver tilsvarende

Trinn 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

For å lage dette prosjektet vil vi bruke:

- 1 Raspberry Pi Zero

- 1 strømføler AS712 (20A)

- 1 ADC 16bit I2C ADS1555

- 1 RFID -sensor RC522

- 1 relé 5V

- 1AC/DC 5V/2A omformer ECL10US05-E fra Farnell

- 1 stikkontakt

Trinn 2: Kabling

Kabling
Kabling

Vi må koble alt sammen som det er vist på bildet, vær forsiktig med strømmen levert av Raspberry Pi.

Kommando ledninger:

  • 3v3 Power - Relé 5V Vcc/Current Sensor Vcc/RFID Vcc/ADC Vcc
  • 5v Strøm - AC/DC -omformer 5v
  • Jord - Relé 5V GND/Current Sensor GND/AC/DC converter GND/RFID GND/ADC inngang og utgang 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 - RFID Reset
  • BCM 25 - RFID RST

Trinn 3: Kode

Denne koden fungerer som følger:

RFID -sensoren venter på en etikett og skriver den i terminalen. Deretter måler den nåværende sensoren mengden vekselstrøm som forbrukes og viser øyeblikkelig strøm i 100 terminaler i terminalen. Takket være det kan vi få mengden kWh.

import socket, json

import sys from threading import Thread from pirc522 import RFID import RPi. GPIO as GPIO ## Import GPIO library import signal import time import 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 (signal, frame): global run print ("\ nCtrl+C fanget, slutt på lesing.") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT, end_read) def loopRead (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: print dataJSON ['message'] if dataJSON ['message'] == "exit": print ('Exit demande') GPIO.output (11, GPIO. HIGH) DemandeTag = 0 DemandeMesure = 0 bol = Falsk hvis dataJSON ['melding'] == "på": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 hvis dataJSON ['melding'] == "av": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 melding = '' unntatt Unntak som e: fortsett s.close () def tag (): rdr.wait_for_tag () (feil, data) = rdr.request () time.sleep (0,25) (feil, uid) = rdr.anticoll () ID = str (uid [0])+'. '+str (uid [1])+'. '+str (uid [2])+'. '+str (uid [3]) print ("Card read UID:"+ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0 mens i 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)

Trinn 4: Boksen

For å gjøre all elektronikken mer kompakt, har vi designet en eske som inneholder alt inni. For å skru på alt vil vi bruke M3 -skruer.

Anbefalt: