Tartalomjegyzék:

EnergyChain: 4 lépés
EnergyChain: 4 lépés

Videó: EnergyChain: 4 lépés

Videó: EnergyChain: 4 lépés
Videó: ▶️ Третья жизнь Дарьи Кирилловны 3 и 4 серия - Мелодрама | Фильмы и сериалы - Русские мелодрамы 2024, November
Anonim
EnergyChain
EnergyChain

/ * A munka még folyamatban van */

Az Energy Chain egy POC, amely egyesíti az IOT -t és a blokkláncot.

Amit tettünk, lehetővé teszi az emberek számára, hogy az általuk előállított energiát bárkinek eladják, anélkül, hogy szükség lenne rájuk. A termelő és a fogyasztó közötti biztonság biztosítása érdekében a fogyasztó bármit csatlakoztathat a készülékhez, és energiát kaphat. A doboz méri az elfogyasztott áram mennyiségét, és írja be az egyenértéket

1. lépés: Anyagok

Anyagok
Anyagok
Anyagok
Anyagok
Anyagok
Anyagok

A projekt elkészítéséhez a következőket használjuk:

- 1 Raspberry Pi Zero

- 1 áramérzékelő AS712 (20A)

- 1 ADC 16 bites I2C ADS1555

- 1 RFID érzékelő RC522

- 1 relé 5V

- 1AC/DC 5V/2A átalakító ECL10US05-E a Farnell-től

- 1 elektromos aljzat

2. lépés: Kábelezés

Vezeték
Vezeték

Mindent össze kell kötnünk, ahogy a képen is látható, legyen óvatos a Raspberry Pi által szállított árammal.

Parancsvezetékek:

  • 3v3 táp - relé 5V Vcc/áramérzékelő Vcc/RFID Vcc/ADC Vcc
  • 5V teljesítmény - AC/DC átalakító 5v
  • Földelés - relé 5V GND/áramérzékelő GND/AC/DC átalakító GND/RFID GND/ADC bemenet és kimenet 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 visszaállítás
  • BCM 25 - RFID RST

3. lépés: Kód

Ez a kód a következőképpen működik:

Az RFID -érzékelő várja a címkét, és írja be a terminálba. Ezután az áramérzékelő méri az elfogyasztott váltakozó áram mennyiségét, és 100 mérésenként megjeleníti a terminálon a pillanatnyi teljesítményt. Ennek köszönhetően megkaphatjuk a kWh mennyiséget.

import aljzat, json

import sys from threading import Téma from pirc522 import RFID import RPi. GPIO mint GPIO ## GPIO könyvtár importálása import import 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 (jel, keret): globális futás print ("\ nCtrl+C rögzítve, az olvasás befejezése.") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT, end_read) def loopRead (s): DemandeTag = 1 DemandeMesure = 0 bol = Igaz, míg (bol): ha DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1, ha DemandeMesure == 1: Mesure2 () try: data = s.recv (BUFFER_SIZE), ha nem adat: megszakítja a nyomtatási adatokat JSON = 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 = Hamis, ha dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1, ha dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '') def tag (): rdr.wait_for_tag () (hiba, adatok) = rdr.request () time.sleep (0.25) (hiba, uid) = rdr.anticoll () ID = str (uid [0])+'. '+str (uid [1])+'. '+str (uid [2])+'. '+str (uid [3]) print ("Kártyaolvasási UID:"+ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0, míg i def Mesure2 (): mesure_voltage = 0 Nbre_mesure = 200 max_voltage = 0 min_voltage = 32768 mVparAmp = 100 Puissance = 0 i = 0 readValue = 0 míg 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)

4. lépés: A doboz

Az összes elektronika kompaktabbá tétele érdekében egy dobozt terveztünk, amely mindent tartalmaz. Minden csavarozásához M3 csavarokat használunk.

Ajánlott: