Оглавление:

EnergyChain: 4 шага
EnergyChain: 4 шага

Видео: EnergyChain: 4 шага

Видео: EnergyChain: 4 шага
Видео: Цепная аккумуляторная пила на Алиэкспресс.Дешевая и лучшая пила! 2024, Ноябрь
Anonim
EnergyChain
EnergyChain

/ * Работа еще не завершена * /

Energy Chain - это POC, сочетающий IOT и Blockchain.

То, что мы сделали, позволяет людям продавать энергию, которую они производят, кому угодно, не требуя какого-либо уровня. Чтобы обеспечить безопасность между производителем и потребителем, потребитель может подключать к нему все, что хочет, и получать энергию. Коробка измеряет количество потребляемого тока и записывает эквивалент

Шаг 1: материалы

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

Для создания этого проекта мы будем использовать:

- 1 Raspberry Pi Zero

- 1 датчик тока AS712 (20А)

- 1 АЦП 16 бит I2C ADS1555

- 1 датчик RFID RC522

- 1 реле 5В

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

- 1 электрическая розетка

Шаг 2: Подключение

Проводка
Проводка

Нам нужно соединить все вместе, как показано на картинке, будьте осторожны с током, подаваемым Raspberry Pi.

Командная проводка:

  • 3v3 Power - реле 5V Vcc / датчик тока Vcc / RFID Vcc / ADC Vcc
  • 5v Power - преобразователь AC / DC 5v
  • Земля - Реле 5V GND / Датчик тока GND / AC / DC преобразователь GND / RFID GND / Вход и выход АЦП GND
  • BCM 2 - АЦП SDA
  • BCM 3 - АЦП SCL
  • BCM 4 - АЦП 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 измерений. Благодаря этому мы можем получить количество кВтч.

импортный сокет, 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 захвачено, чтение завершено.") 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" в 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 if dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' кроме Exception as e: continue s.close () def tag (): rdr.wait_for_tag () (error, data) = rdr.request () time.sleep (0.25) (error, 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 в то время как 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)

Шаг 4: Коробка

Чтобы вся электроника была более компактной, мы разработали коробку, в которой будет все, что находится внутри. Чтобы прикрутить все, мы будем использовать винты M3.

Рекомендуемые: