Мазмұны:

EnergyChain: 4 қадам
EnergyChain: 4 қадам

Бейне: EnergyChain: 4 қадам

Бейне: EnergyChain: 4 қадам
Бейне: Хотите получить МИЛЛИОН ДОЛЛАРОВ США? 2024, Шілде
Anonim
EnergyChain
EnergyChain

/ * Жұмыс әлі жүріп жатыр */

Энергетикалық тізбек - бұл IOT пен блокчейнді біріктіретін POC.

Біз жасаған нәрсе адамдарға өндірілетін энергияны ешбір деңгейсіз ешкімге сатуға мүмкіндік береді. Өндіруші мен тұтынушы арасындағы қауіпсіздікті қамтамасыз ету үшін тұтынушы оған қалағанын қосып, энергия ала алады. Қорап тұтынылған ток мөлшерін өлшейді және эквивалентін жазады

1 -қадам: материалдар

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

Бұл жобаны жасау үшін біз мыналарды қолданамыз:

- 1 Raspberry Pi Zero

- 1 ток сенсоры AS712 (20А)

- 1 ADC 16 биттік I2C ADS1555

- 1 RC522 RFID сенсоры

- 5 вольтты 1 реле

- Фарнелден 1AC/DC 5V/2A ECL10US05-E түрлендіргіші

- 1 электр розеткасы

2 -қадам: Сымдарды жалғау

Сымдар
Сымдар

Біз бәрін суретте көрсетілгендей біріктіруіміз керек, Raspberry Pi жеткізетін токқа абай болу керек.

Командалық сымдар:

  • 3v3 қуаты - релелік 5V Vcc/ток сенсоры Vcc/RFID Vcc/ADC Vcc
  • 5в қуаты - 5В айнымалы/тұрақты ток түрлендіргіші
  • Жер - релелік 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 - RST RFID

3 -қадам: код

Бұл код келесідей жұмыс істейді:

RFID сенсоры тегті күтеді және оны терминалға жазады, содан кейін ағымдағы сенсор тұтынылатын айнымалы токтың мөлшерін өлшейді және терминалда лездік қуатты әр 100 өлшеуде көрсетеді. Соның арқасында біз кВтсағ көлемін ала аламыз.

импорт сокеті, json

тізбекті импорттаудан sys импорттау pirc522 ішінен RFID импорты RPi. GPIO GPIO ## импорттау GPIO кітапханасының импорттық сигналын импорттау уақыты импорттау 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 (сигнал, кадр): жаһандық жүгіру 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): егер DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1 болса DemandeMesure == 1: Mesure2 () try: data = s.recv (BUFFER_SIZE) егер деректер болмаса: басып шығару деректерін бұзуJSON = json.loads (деректер) егер деректер «хабарламада» болса JSON: деректерді басып шығарыңыз DemandeTag = 0 DemandeMesure = 0 bol = Егер жалған, егер dataJSON ['message'] == «on»: GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1, егер dataJSON ['message'] == «off»: GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' e ретінде Exception қоспағанда: continue 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]) басып шығару («Card read UID:»+ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0, ал мен Defure 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, пайда = 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 бұрандаларын қолданамыз.

Ұсынылған: