สารบัญ:

EnergyChain: 4 ขั้นตอน
EnergyChain: 4 ขั้นตอน

วีดีโอ: EnergyChain: 4 ขั้นตอน

วีดีโอ: EnergyChain: 4 ขั้นตอน
วีดีโอ: การหายใจระดับเซลล์ cellular respiration 2024, กรกฎาคม
Anonim
EnergyChain
EnergyChain

/* อยู่ระหว่างดำเนินการ */

Energy Chain เป็น POC ที่รวม IOT และ Blockchain

สิ่งที่เราทำขึ้นทำให้ผู้คนสามารถขายพลังงานที่พวกเขาผลิตให้กับใครก็ได้โดยไม่ต้องมีระดับใดๆ เพื่อความปลอดภัยระหว่างผู้ผลิตและผู้บริโภค ผู้บริโภคสามารถเชื่อมต่อทุกอย่างที่เขาต้องการกับมันและรับพลังงาน กล่องวัดปริมาณกระแสไฟที่ใช้และเขียนเทียบเท่า

ขั้นตอนที่ 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 - ตัวแปลงไฟ AC/DC 5v
  • กราวด์ - รีเลย์ 5V GND/เซ็นเซอร์ปัจจุบัน GND/AC/DC converter 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 จะรอแท็กและเขียนลงในเทอร์มินัล จากนั้นเซ็นเซอร์ปัจจุบันจะวัดปริมาณกระแสไฟ 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, 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(สัญญาณ, เฟรม): global run 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): if DemandeTag==1: tag() DemandeTag=0 DemandeMesure=1 if DemandeMesure==1: Mesure2() try: data = s.recv(BUFFER_SIZE) if not data: ทำลายข้อมูลการพิมพ์ jSON = json.loads(data) ถ้า "ข้อความ" ใน dataJSON: พิมพ์ 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 if dataJSON['message'] == "off": GPIO.output(11, GPIO. HIGH) DemandeTag=1 message='' ยกเว้นข้อยกเว้นเป็น e: ดำเนินการต่อ s.close() แท็ก def(): 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(): 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: กล่อง

เพื่อให้อุปกรณ์อิเล็กทรอนิกส์ทั้งหมดมีขนาดกะทัดรัดยิ่งขึ้น เราจึงออกแบบกล่องที่บรรจุทุกอย่างไว้ข้างใน ในการขันทุกอย่างเราจะใช้สกรู M3

แนะนำ: