Съдържание:

EnergyChain: 4 стъпки
EnergyChain: 4 стъпки

Видео: EnergyChain: 4 стъпки

Видео: EnergyChain: 4 стъпки
Видео: Energy Chains -Junior 4 - Grade 4 - 2024, Юли
Anonim
Енергийна верига
Енергийна верига

/ * Работата все още тече */

Енергийната верига е POC, който комбинира IOT и блокчейн.

Това, което направихме, позволява на хората да продават енергията, която произвеждат, на всеки, без да е необходимо ниво. За да се гарантира безопасността между производителя и потребителя, потребителят може да свърже с него каквото иска и да получи енергия. Кутията измерва количеството консумиран ток и записва еквивалента

Стъпка 1: Материали

Материали
Материали
Материали
Материали
Материали
Материали

За да направим този проект, ще използваме:

- 1 Raspberry Pi Zero

- 1 токов сензор AS712 (20A)

- 1 ADC 16 -битов I2C ADS1555

- 1 RFID сензор RC522

- 1 реле 5V

- 1AC/DC 5V/2A преобразувател ECL10US05-E от Farnell

- 1 електрически контакт

Стъпка 2: Окабеляване

Електрически инсталации
Електрически инсталации

Трябва да свържем всичко заедно, както е показано на снимката, бъдете внимателни към тока, доставен от Raspberry Pi.

Командно окабеляване:

  • Захранване 3v3 - реле 5V Vcc/токов сензор Vcc/RFID Vcc/ADC Vcc
  • 5v Power - AC/DC преобразувател 5v
  • Заземяване - реле 5V GND/токов сензор GND/AC/DC преобразувател GND/RFID GND/ADC вход и изход 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 - Реле 5V IN
  • BCM 24 - Нулиране на RFID
  • BCM 25 - RFID RST

Стъпка 3: Код

Този код работи както следва:

RFID сензорът чака етикет и го записва в терминала. След това токовият сензор измерва количеството консумиран променлив ток и показва в терминала моментната мощност на всеки 100 мерки. Благодарение на това можем да получим количеството kWh.

гнездо за импортиране, json

import sys от threading import Thread from pirc522 import RFID import RPi. GPIO като GPIO ## Импортиране на GPIO библиотека импортиране на сигнал за импортиране време за импортиране Adafruit_ADS1x15 GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. OUT) GPIO.output (11, Вярно) 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 (сигнал, кадър): глобално изпълнение print ("\ nCtrl+C уловен, завършващо четене.") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT, end_read) def loopRead (s): DemandeTag = 1 DemandeMesure = 0 бол = Вярно докато (bol): ако DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1 ако DemandeMesure == 1: Mesure2 () опитайте: data = s.recv (BUFFER_SIZE) ако не са данни: прекъснете данните за печат JSON = json.loads (data) if "message" в dataJSON: print dataJSON ['message'] if dataJSON ['message'] == "exit": print ('Exit demande') GPIO.output (11, GPIO. HIGH) DemandeTag = 0 DemandeMesure = 0 bol = False, ако dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 ако dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' с изключение на изключение като e: продължи s.close () def tag (): rdr.wait_for_tag () (грешка, данни) = rdr.request () time.sleep (0.25) (грешка, uid) = rdr.anticoll () ID = str (uid [0])+'. '+str (uid [1])+'. '+str (uid [2])+'. '+str (uid [3]) print ("UID за четене на карта:"+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 докато imax_voltage: max_voltage = readValue, ако readValue def Mesure3 (): печат (str (adc.read_adc (0, gain = 1))), ако _name_ == "_main_": s = socket.socket (socket. AF_INET, socket. SOCK_STREAM) #s.connect ((TCP_IP, TCP_PORT)) #s.setblocking (0) loopRead (s)

Стъпка 4: Кутията

За да направим цялата електроника по -компактна, ние проектирахме кутия, която ще съдържа всичко вътре. За да завием всичко, ще използваме винтове M3.

Препоръчано: