תוכן עניינים:

שרשרת Energy: 4 שלבים
שרשרת Energy: 4 שלבים

וִידֵאוֹ: שרשרת Energy: 4 שלבים

וִידֵאוֹ: שרשרת Energy: 4 שלבים
וִידֵאוֹ: שרשרת מעבר האלקטרונים ETC 2024, נוֹבֶמבֶּר
Anonim
שרשרת Energy
שרשרת Energy

/ * העבודה עדיין בעיצומה */

שרשרת האנרגיה היא POC המשלבת IOT ובלוקצ'יין.

מה שיצרנו מאפשר לאנשים למכור את האנרגיה שהם מייצרים לכל אחד ללא צורך ברמה. כדי להבטיח בטיחות בין היצרן לצרכן, הצרכן יכול לחבר עליו מה שהוא רוצה ולקבל אנרגיה. התיבה מודדת את כמות הזרם הנצרכת וכתוב את המקבילה

שלב 1: חומרים

חומרים
חומרים
חומרים
חומרים
חומרים
חומרים

כדי לייצר פרויקט זה נשתמש ב:

- פטל פייס אפס אחד

- חיישן זרם אחד AS712 (20A)

- 1 ADC 16bit I2C ADS1555

- חיישן RFID אחד RC522

- ממסר אחד 5V

- ממיר 1AC/DC 5V/2A ECL10US05-E מבית Farnell

- שקע חשמל אחד

שלב 2: חיווט

תִיוּל
תִיוּל

עלינו לחבר הכל יחד כפי שמוצג בתמונה, להיות זהירים בזרם שמספק ה- Raspberry Pi.

חיווט פיקוד:

  • כוח 3v3 - ממסר 5V Vcc/חיישן זרם Vcc/RFID Vcc/ADC Vcc
  • כוח 5v - ממיר AC/DC 5v
  • קרקע - ממסר 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 - RFID RST

שלב 3: קוד

קוד זה פועל כדלקמן:

חיישן ה- RFID ממתין לתג וכותב אותו במסוף. לאחר מכן החיישן הנוכחי מודד את כמות זרם ה- AC הנצרך ומציג במסוף את ההספק המיידי בכל 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 (ים): DemandeTag = 1 DemandeMesure = 0 bol = נכון בעוד (bol): אם DemandeTag == 1: tag () DemandeTag = 0 DemandeMesure = 1 אם DemandeMesure == 1: Mesure2 () נסה: data = s.recv (BUFFER_SIZE) אם לא נתונים: לשבור נתוני נתונים הדפסה JSON = json.loads (נתונים) אם "הודעה" ב- dataJSON: הדפסת נתוניםJSON ['message'] if dataJSON ['message'] == "יציאה": print ('Exit demande') GPIO.output (11, GPIO. HIGH) DemandeTag = 0 DemandeMesure = 0 bol = False if dataJSON ['message'] == "on": GPIO.output (11, GPIO. LOW) DemandeMesure = DemandeTag = 1 אם dataJSON ['message'] == "off": GPIO.output (11, GPIO. HIGH) DemandeTag = 1 message = '' למעט חריגה כ- e: המשך 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 ("כרטיס קריאת 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 while 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 (ים)

שלב 4: הקופסה

כדי להפוך את כל האלקטרוניקה לקומפקטית יותר, עיצבנו קופסה שתכיל את כל מה שבתוכה. כדי לדפוק הכל נשתמש בברגי M3.

מוּמלָץ: