Turinys:

„EnergyChain“: 4 žingsniai
„EnergyChain“: 4 žingsniai

Video: „EnergyChain“: 4 žingsniai

Video: „EnergyChain“: 4 žingsniai
Video: Energy Chains -Junior 4 - Grade 4 - 2024, Lapkritis
Anonim
„EnergyChain“
„EnergyChain“

/ * Darbas vis dar vyksta */

„Energy Chain“yra POC, jungiantis IOT ir „Blockchain“.

Tai, ką mes sukūrėme, leidžia žmonėms parduoti savo pagamintą energiją bet kam, be jokių būtinų pakopų. Siekdamas užtikrinti gamintojo ir vartotojo saugumą, vartotojas gali prijungti prie jo viską, ko nori, ir gauti energijos. Langelis matuoja sunaudotos srovės kiekį ir parašo ekvivalentą

1 žingsnis: medžiagos

Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos
Medžiagos

Norėdami sukurti šį projektą, naudosime:

- 1 „Raspberry Pi Zero“

- 1 srovės jutiklis AS712 (20A)

- 1 ADC 16 bitų I2C ADS1555

- 1 RFID jutiklis RC522

- 1 relė 5V

- 1AC/DC 5V/2A keitiklis ECL10US05-E iš Farnell

- 1 elektros lizdas

2 žingsnis: laidų prijungimas

Laidai
Laidai

Turime viską sujungti, kaip parodyta paveikslėlyje, būkite atsargūs su „Raspberry Pi“tiekiama srove.

Komandos laidai:

  • 3v3 maitinimas - relė 5V Vcc/srovės jutiklis Vcc/RFID Vcc/ADC Vcc
  • 5v maitinimas - kintamosios/nuolatinės srovės keitiklis 5v
  • Įžeminimas - relė 5V GND/srovės jutiklis GND/AC/DC keitiklis GND/RFID GND/ADC įėjimas ir išėjimas 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 - relė 5V IN
  • BCM 24 - RFID nustatymas iš naujo
  • BCM 25 - RFID RST

3 žingsnis: kodas

Šis kodas veikia taip:

RFID jutiklis laukia žymos ir įrašo ją į terminalą. Tada srovės jutiklis matuoja sunaudotą kintamosios srovės kiekį ir kas 100 matuoja terminale momentinę galią. Dėl to mes galime gauti kWh kiekį.

importo lizdas, json

importuoti sistemą iš sriegių importavimo Siūlas iš pirc522 importuoti RFID importuoti RPi. GPIO kaip GPIO ## Importuoti GPIO biblioteką importuoti signalo importavimo laiko importą Adafruit_ADS1x15 GPIO.setmode (GPIO. BOARD) GPIO.setup (11, GPIO. OUT) GPIO.output (11, Tiesa) 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 (signalas, kadras): visuotinis paleidimas print ("\ nCtrl+C užfiksuota, baigta skaityti.") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT, end_read) def loopRead (s): DemandeTag = 1 DemandeMesure = 0 bol = Tiesa tuo metu (bol): jei DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1, jei DemandeMesure == 1: Mesure2 () pabandykite: data = s.recv (BUFFER_SIZE), jei ne duomenys: pertraukite spausdinimo duomenų duomenisJSON = json.loads (duomenys), jei duomenų „pranešimas“JSON: spausdinti duomenis DemandeTag = 0 DemandeMesure = 0 bol = Netiesa, jei dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1, jei dataJSON ['message'] == "išjungta": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 pranešimas = '', išskyrus išimtį kaip e: tęsti s.close () def tag (): rdr.wait_for_tag () (klaida, duomenys) = rdr.request () time.sleep (0.25) (klaida, uid) = rdr.anticoll () ID = str (uid [0])+'. '+str (uid [1])+'. '+str (uid [2])+'. '+str (uid [3]) print ("Kortelės skaitymo UID:"+ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0, o i def Mesure2 (): mesure_voltage = 0 Nbre_mesure = 200 max_voltage = 0 min_voltage = 32768 mVparAmp = 100 Puissance = 0 i = 0 readValue = 0 tuo tarpu 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 žingsnis: dėžutė

Kad visa elektronika būtų kompaktiškesnė, sukūrėme dėžutę, kurioje bus viskas. Norėdami užsukti viską, naudosime M3 varžtus.

Rekomenduojamas: