Мазмуну:

EnergyChain: 4 кадам
EnergyChain: 4 кадам

Video: EnergyChain: 4 кадам

Video: EnergyChain: 4 кадам
Video: 'Chaar Kadam' FULL VIDEO Song | PK | Sushant Singh Rajput | Anushka Sharma | T-series 2024, Июль
Anonim
EnergyChain
EnergyChain

/ * Иш дагы эле уланууда */

Energy Chain - бул IOT менен Blockchainти бириктирген POC.

Биз жасаган нерсе адамдарга өндүрүлгөн энергияны эч кандай катмарсыз эч кимге сатууга мүмкүнчүлүк берет. Өндүрүүчү менен керектөөчүнүн ортосундагы коопсуздукту камсыз кылуу үчүн керектөөчү каалаганын туташтырып, энергия ала алат. Кутуча керектелген токтун көлөмүн өлчөйт жана эквивалентин жазат

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

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

Бул проекти жасоо үчүн биз колдонобуз:

- 1 Raspberry Pi Zero

- 1 учурдагы сенсор AS712 (20A)

- 1 ADC 16 бит I2C ADS1555

- 1 RFID сенсор RC522

- 1 релелик 5В

- Фарнеллден 1AC/DC 5V/2A конвертер ECL10US05-E

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

2 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү

Сүрөттө көрсөтүлгөндөй, биз бардыгын зым менен байланыштырышыбыз керек, Raspberry Pi жеткирген токко этият болуңуз.

Буйрук зымдары:

  • 3v3 Power - Реле 5V Vcc/Учурдагы сенсор Vcc/RFID Vcc/ADC Vcc
  • 5v Power - AC/DC конвертер 5v
  • Жер - Relay 5V GND/Current Sensor GND/AC/DC converter GND/RFID GND/ADC input and output 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 өлчөөдө дароо кубаттуулукту көрсөтөт. Анын жардамы менен биз кВт / саат көлөмүн ала алабыз.

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

Импорттоо sys from threading import, 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 = Чыныгы убакыт (бол): эгерде DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1 болсо DemandeMesure == 1: Mesure2 () аракет кылыңыз: data = s.recv (BUFFER_SIZE) эгерде маалыматтар жок болсо: басып чыгаруу маалыматын бузуңуз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 = False if dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1, эгерде dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' Exception as e: 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]) print ("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, win = 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 бурамаларын колдонобуз.

Сунушталууда: