Cuprins:

EnergyChain: 4 pași
EnergyChain: 4 pași

Video: EnergyChain: 4 pași

Video: EnergyChain: 4 pași
Video: 4 inch chainsaw and 6 inch chainsaw assembly video 2024, Noiembrie
Anonim
EnergyChain
EnergyChain

/ * Lucrare încă în desfășurare * /

Lanțul energetic este un POC care combină IOT și Blockchain.

Ceea ce am făcut noi le permite oamenilor să vândă energia pe care o produc oricui, fără nici un nivel necesar. Pentru a asigura siguranța între producător și consumator, consumatorul poate conecta orice vrea pe el și poate obține energie. Caseta măsoară cantitatea de curent consumată și scrie echivalentul

Pasul 1: Materiale

Materiale
Materiale
Materiale
Materiale
Materiale
Materiale

Pentru realizarea acestui proiect vom folosi:

- 1 Raspberry Pi Zero

- 1 senzor de curent AS712 (20A)

- 1 ADC 16 biți I2C ADS1555

- 1 senzor RFID RC522

- 1 releu 5V

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

- 1 priză electrică

Pasul 2: Cablare

Cablare
Cablare

Trebuie să conectăm totul așa cum se arată în imagine, să fim atenți la curentul livrat de Raspberry Pi.

Cablare comandă:

  • 3v3 Putere - Releu 5V Vcc / Senzor de curent Vcc / RFID Vcc / ADC Vcc
  • 5v Putere - convertor AC / DC 5v
  • Masă - Releu 5V GND / Senzor de curent GND / AC / DC Convertor GND / RFID GND / ADC intrare și ieșire 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 - Releu 5V IN
  • BCM 24 - Resetare RFID
  • BCM 25 - RFID RST

Pasul 3: Cod

Acest cod funcționează după cum urmează:

Senzorul RFID așteaptă o etichetă și o scrie în terminal. Apoi senzorul de curent măsoară cantitatea de curent alternativ consumat și afișează în terminal puterea instantanee la fiecare 100 de măsuri. Datorită acestui fapt, putem obține cantitatea de kWh.

socket de import, 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, Adevărat) rdr = RFID () util = rdr.util () util.debug = Adevărat TCP_IP = '172.31.29.215' TCP_PORT = 5000 BUFFER_SIZE = 1024 adc = Adafruit_ADS1x15. ADS1115 () def end_read (semnal, cadru): rulare globală print ("\ nCtrl + C capturat, terminat citit.") 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 = Fals dacă dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 if dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' cu excepția excepției ca e: continue s.close () etichetă def (): rdr.wait_for_tag () (eroare, date) = rdr.request () time.sleep (0.25) (eroare, uid) = rdr.anticoll () ID = str (uid [0]) + '. '+ str (uid [1]) +'. '+ str (uid [2]) +'. '+ str (uid [3]) print ("UID citit card:" + ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0 while 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)

Pasul 4: Cutia

Pentru a face toate companiile electronice mai compacte, am proiectat o cutie care va conține totul în interior. Pentru a înșuruba totul vom folosi șuruburi M3.

Recomandat: