Съдържание:
Видео: EnergyChain: 4 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:55
/ * Работата все още тече */
Енергийната верига е 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.
Препоръчано:
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: 7 стъпки
Първи стъпки с безжични сензори за температура и вибрации на дълги разстояния: Понякога вибрациите са причина за сериозни проблеми в много приложения. От валове и лагери на машината до работа на твърдия диск, вибрациите причиняват повреда на машината, ранна подмяна, ниска производителност и нанасят сериозен удар върху точността. Мониторинг
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: 3 стъпки
Първи стъпки с STM32f767zi Cube IDE и качване на персонализирана скица: КУПЕТЕ (щракнете върху теста, за да закупите/посетете уеб страницата) STM32F767ZISUPPORTED SOFTWARE · STM32CUBE IDE · KEIL MDK ARM µVISION · EWARM IAR EMBEDDED WORKBENCH използва се за програмиране на STM микроконтролери
Как да направите 4G LTE двойна BiQuade антена Лесни стъпки: 3 стъпки
Как да направя 4G LTE двойна BiQuade антена лесни стъпки: През повечето време, с което се сблъсквах, нямам добра сила на сигнала за ежедневните ми работи. Така. Търся и опитвам различни видове антени, но не работи. След загубено време намерих антена, която се надявам да направя и изпробвам, защото тя не градивен принцип
Дизайн на играта с бързо движение в 5 стъпки: 5 стъпки
Дизайн на игра с Flick в 5 стъпки: Flick е наистина прост начин да направите игра, особено нещо като пъзел, визуален роман или приключенска игра
Система за предупреждение за паркиране на автомобил Arduino - Стъпки по стъпка: 4 стъпки
Система за предупреждение за паркиране на автомобил Arduino | Стъпки по стъпка: В този проект ще проектирам обикновена верига за сензори за паркиране на автомобил Arduino, използвайки Arduino UNO и HC-SR04 ултразвуков сензор. Тази базирана на Arduino система за предупреждение за автомобил за заден ход може да се използва за автономна навигация, измерване на роботи и други обхвати