Indholdsfortegnelse:

EnergyChain: 4 trin
EnergyChain: 4 trin

Video: EnergyChain: 4 trin

Video: EnergyChain: 4 trin
Video: Cinema 4D Xpresso Tutorial 48: Energy Cable Chain. 2024, Juli
Anonim
EnergyChain
EnergyChain

/ * Arbejde stadig i gang */

Energy Chain er en POC, der kombinerer IOT og Blockchain.

Det, vi lavede, giver folk mulighed for at sælge den energi, de producerer til nogen, uden at der er behov for et niveau. For at sikre sikkerheden mellem producenten og forbrugeren kan forbrugeren forbinde, hvad han vil, på den og få energi. Boksen måler den forbrugte strøm og skriver tilsvarende

Trin 1: Materialer

Materialer
Materialer
Materialer
Materialer
Materialer
Materialer

For at lave dette projekt vil vi bruge:

- 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 converter ECL10US05-E fra Farnell

- 1 stikkontakt

Trin 2: Ledningsføring

Ledninger
Ledninger

Vi skal koble alt sammen, som det er vist på billedet, være forsigtig med strømmen leveret af Raspberry Pi.

Kommando ledninger:

  • 3v3 Power - Relæ 5V Vcc/Current Sensor Vcc/RFID Vcc/ADC Vcc
  • 5v Power - AC/DC converter 5v
  • Jord - Relæ 5V GND/Strømføler GND/AC/DC -konverter GND/RFID GND/ADC input og output 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 - Nulstilling af RFID
  • BCM 25 - RFID RST

Trin 3: Kode

Denne kode fungerer som følger:

RFID -sensoren venter på et mærke og skriver det i terminalen. Derefter måler den aktuelle sensor mængden af forbrugt vekselstrøm og viser øjeblikkelig strøm i 100 terminaler i terminalen. Takket være det kan vi få mængden af kWh.

importstik, 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 kørsel print ("\ nCtrl+C fanget, slutter læst.") run = Falsk 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 ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 if dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' undtagen Undtagelse som e: fortsæt s.close () def tag (): rdr.wait_for_tag () (fejl, data) = rdr.request () time.sleep (0,25) (fejl, uid) = rdr.anticoll () ID = str (uid [0])+'. '+str (uid [1])+'. '+str (uid [2])+'. '+str (uid [3]) print ("Kortlæst 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 mens 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.setblockering (0) loopRead (s)

Trin 4: Kassen

For at gøre al elektronikken mere kompakt designede vi en kasse, der vil indeholde alt indeni. For at skrue på alt vil vi bruge M3 skruer.

Anbefalede: