ዝርዝር ሁኔታ:

EnergyChain: 4 ደረጃዎች
EnergyChain: 4 ደረጃዎች

ቪዲዮ: EnergyChain: 4 ደረጃዎች

ቪዲዮ: EnergyChain: 4 ደረጃዎች
ቪዲዮ: igus® e-chainsystem® E4.1 - One for All 2024, ሀምሌ
Anonim
ኢነርጂ ቻይን
ኢነርጂ ቻይን

/ * ሥራ ገና በሂደት ላይ ነው */

የኢነርጂ ሰንሰለት IOT እና Blockchain ን የሚያጣምር POC ነው።

እኛ ያደረግነው ሰዎች ምንም ዓይነት ደረጃ ሳያስፈልጋቸው የሚያፈሩትን ኃይል ለማንም እንዲሸጡ ያስችላቸዋል። በአምራቹ እና በተጠቃሚው መካከል ደህንነትን ለማረጋገጥ ሸማቹ በላዩ ላይ የፈለገውን ማገናኘት እና ኃይል ማግኘት ይችላል። ሳጥኑ የአሁኑን ፍጆታ መጠን ይለካል እና ተመጣጣኝ ይፃፋል

ደረጃ 1: ቁሳቁሶች

ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች
ቁሳቁሶች

ይህንን ፕሮጄክት ለመሥራት እኛ እንጠቀማለን-

- 1 Raspberry Pi Zero

- 1 የአሁኑ ዳሳሽ AS712 (20A)

- 1 ADC 16bit I2C ADS1555

- 1 የ RFID ዳሳሽ RC522

- 1 ቅብብል 5 ቪ

- 1AC/DC 5V/2A መቀየሪያ ECL10US05-E ከፋርኔል

- 1 የኤሌክትሪክ መውጫ

ደረጃ 2 - ሽቦ

ሽቦ
ሽቦ

በሥዕሉ ላይ እንደሚታየው ሁሉንም ነገር አንድ ላይ ማያያዝ አለብን ፣ Raspberry Pi ለላከው የአሁኑ ጥንቃቄ ያድርጉ።

የትእዛዝ መስመር;

  • 3v3 ኃይል - Relay 5V Vcc/የአሁኑ ዳሳሽ Vcc/RFID Vcc/ADC Vcc
  • 5v ኃይል - ኤሲ/ዲሲ መለወጫ 5v
  • መሬት - Relay 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 - Relay 5V IN
  • BCM 24 - RFID ዳግም ማስጀመር
  • BCM 25 - RFID RST

ደረጃ 3 ኮድ

ይህ ኮድ እንደሚከተለው ይሠራል

የ RFID አነፍናፊ መለያን ይጠብቃል እና ተርሚናል ውስጥ ይጽፋል። ከዚያ የአሁኑ አነፍናፊ የ AC የአሁኑን ፍጆታ መጠን ይለካል እና ተርሚናል ውስጥ በየ 100 መለኪያዎች ፈጣንውን ኃይል ያሳያል። ለዚያ ምስጋና ይግባው ፣ የ kWh መጠን ማግኘት እንችላለን።

ማስመጫ ሶኬት ፣ json

ማስመጣት sys ከ ክር ማስመጣት ክር ከ pirc522 ማስመጣት RFID ማስመጣት 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 (ሲግናል ፣ ፍሬም) ፦ ዓለም አቀፍ ሩጫ ማተም ("\ nCtrl+C ተይ,ል ፣ ማንበብን ያበቃል።") run = False rdr.cleanup () sys.exit () signal.signal (signal. SIGINT ፣ end_read) def loop አንብብ (ዎች): DemandeTag = 1 DemandeMesure = 0 bol = እውነት እያለ (ቦል): DemandeTag == 1: መለያ () DemandeTag = 0 DemandeMesure = 1 DemandeMesure == 1: Mesure2 () ይሞክሩ: data = s.recv (BUFFER_SIZE) ውሂብ ካልሆነ የሕትመት መረጃን ያጥፉ JSON = json.loads (ውሂብ) በውሂብ ውስጥ "መልዕክት" ከሆነ JSON: data print JSON ['message'] dataJSON ['message'] == "output": print ('Exit demande') GPIO.output (11, GPIO. HIGH) DemandeTag = 0 DemandeMesure = 0 bol = የውሸት ከሆነ JSON ['መልዕክት'] == "በርቷል": GPIO.output (11, GPIO. LOW) DemandeMesure = 1 DemandeTag = 1 dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = "ካልሆነ በስተቀር እንደ: ቀጥል 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]) ህትመት ("ካርድ ተነባቢ UID ፦"+ID) GPIO.output (11, GPIO. LOW) def Mesure (): mesure_voltage = 0 Nbre_mesure = 100 i = 0 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 ከተነበበ ቫልዩ 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) loop አንብብ (ዎች)

ደረጃ 4: ሳጥኑ

ሁሉንም የኤሌክትሮኒክስ ዕቃዎች የበለጠ የታመቀ ለማድረግ ፣ በውስጡ ያለውን ሁሉ የሚይዝ ሣጥን አዘጋጅተናል። ሁሉንም ነገር ለማሽከርከር M3 ዊንጮችን እንጠቀማለን።

የሚመከር: