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

לוח הודעות IoT RPi LED: 3 שלבים (עם תמונות)
לוח הודעות IoT RPi LED: 3 שלבים (עם תמונות)

וִידֵאוֹ: לוח הודעות IoT RPi LED: 3 שלבים (עם תמונות)

וִידֵאוֹ: לוח הודעות IoT RPi LED: 3 שלבים (עם תמונות)
וִידֵאוֹ: ESP32 Tutorial 3 - Resistor, LED, Bredboard and First Project: Hello LED -ESP32 IoT Learnig kit 2024, נוֹבֶמבֶּר
Anonim
Image
Image
התקנת חומרה
התקנת חומרה

במדריך זה הכנתי לוח הודעות LED המחובר ל- WiFi באמצעות פטל פטל (RPi). משתמשים יתחברו לשרת האינטרנט של ה- Raspberry Pi באמצעות הדפדפנים שלהם כדי לשלוח הודעות קצרות שיופיעו בתצוגת 8x8 LED. מכיוון שממשק מטריצת 8x8 LED עם מנהל ההתקן MAX7219 בפייתון מתועד היטב על ידי אחרים באינטרנט, פרויקט זה מתמקד בבניית ממשק שרת אינטרנט ושימוש ב- ZeroMQ Messaging לניהול הודעות נכנסות.

עדכון: להלן פרויקט המשך IoT Decimal/Hexadecimal 8x8 LED Matrix Drawing Board

(אני מנחה מועדונים של Girls Who Code Club והבאתי עם הפרויקט הפשוט הזה ללמד סטודנטים על עיצוב ממשקי אינטרנט והודעות.)

שלב 1: התקנת חומרה

התקנת חומרה
התקנת חומרה
התקנת חומרה
התקנת חומרה

פרויקט זה דורש חומרה הבאה:

  • פאי פטל
  • מקור כוח USB כגון Anker עם כבל USB קצר ל- MicroUSB
  • מודול מטריקס MAX7219 עם כבל סרט (Aliexpress בפחות מ -2 $)
  • מארז (הכנתי אחת מתוך קופסת קרטון וריסוס בצבע שחור)

התקנת חומרה היא החלק הקל. כל שעליך לעשות הוא לחבר כבל סרט 5 חוטים ממטריצת ה- LED למסמך ספריית RPi לכל MAX7219.

LED-> RPi ======== VCC-> GPIO Pin #2 (5v) GND-> GPIO Pin #6 (GND) DIN-> GPIO Pin #19CS-> GPIO Pin #24CLK-> GPIO Pin # 23

השתמשתי בקלטת קצף דו צדדית להדבקת יחידת ה- LED למארז RPi. לאחר מכן, הכנתי מארז מקופסת קרטון כדי להכיל RPi וסוללה.

שלב 2: התקנת תוכנה

התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה
התקנת תוכנה

ל- RPi צריכה להיות התוכנה הבאה:

  • פייתון 3
  • שומר אינטרנט של Apache 2
  • מנהל התקן Max7219 עבור פייתון
  • העברת הודעות ZeroMQ

פייתון 3

RPi צריך להיות מותקן מראש ב- Python 3. בעוד הקוד שלי כתוב עבור Python 3, Python 2 אמור לעבוד עם מעט שינויים קלים.

אפאצ'י 2

הגדר Apache והפעל סקריפטים של Python CGI. להלן מספר משאבים מצוינים להגדרת Apache ב- RPi כך שלא אחזור כאן. פשוט עקוב אחר ההדרכות להלן כדי להגדיר Apache ו- CGI. ודא כי סקריפטים של.py ניתנים להפעלה מדפדפן.

  • https://raspberrywebserver.com/cgiscripting/
  • https://www.knight-of-pi.org/apache-web-server-with-cgi-for-python/

נהג Max7291

התקן את מנהל ההתקן Max7219 על ידי ביצוע מדריך ההתקנה העדכני ביותר:

https://max7219.readthedocs.io/en/latest/install.html

לאחר ההתקנה, הפעל את הקוד לדוגמא, matrix_test.py, לפי מדריך ההתקנה להצגת "שלום עולם" על מטריצת ה- LED. זה צריך לעבוד לפני שעוברים לשלב הבא.

הודעות ZeroMQ

מדוע אנו זקוקים להודעות? נסה להריץ את קוד הדוגמא לעיל, matrix_test.py, בשני מסכי מסוף בו זמנית. המערכת תאפשר לרוץ מספר קודים בו זמנית אך תראה הודעות חופפות וזה לא רצוי. בסביבת משתמש אחד, ייתכן שזו לא בעיה, מכיוון שאתה יכול לוודא שרק תוכנית אחת יכולה לפעול בכל פעם. בסביבה מרובת משתמשים כגון אינטרנט, המערכת צריכה ליצור תור של FIFO (First-In-First-Out) כדי לוודא שרק אדם אחד יכול לבצע את הקוד בזמן שאחרים ממתינים. למרות שיש אולי פתרונות אחרים להשיג זאת, החלטתי להשתמש ב- ZeroMQ לניהול התור של FIFO. קוד שרת ZeroMQ מכיל את קריאת הפונקציה בפועל להצגת הודעה על מטריצת ה- LED אחת בכל פעם, בעוד שרת האינטרנט פועל כלקוח ZeroMQ לשאול ולשלוח הודעות לשרת ZeroMQ. כך, בעוד מספר משתמשים יכולים לשלוח הודעות באמצעות דף אינטרנט בו זמנית, שרת ZeroMQ יציג הודעה אחת בכל פעם.

עבור פרויקט זה, נתקין את חבילת Python pyzmq ולא את כל חבילת ZeroMQ.

לָרוּץ:

sudo pip3 התקן pyzmq

קרא את מדריך ZeroMQ ב https://zguide.zeromq.org ונסה את שרת העולם שלום ודוגמא לקוח ב- Python. העתק את קוד הדוגמה של Python הן לשרת והן ללקוח ל- RPi וודא שהם פועלים לפני שעבור לשלב הבא.

שלב 3: הגדרת דף אינטרנט

בדף האינטרנט השתמשתי במסגרת ה- bootstrap css/js בכדי לגרום לדף להיראות יפה. זה אופציונלי לחלוטין.

הורד את הקובץ המצורף led_msg.tar.gz לשורש Apache או לספריית המשנה. כדי לבטל את סימון קובץ הזפת gzip'd, הפעל:

tar -xzvf led_msg.tar.gz

פעולה זו יוצרת את הקבצים הבאים:

msg.py (תוכנית ראשית)

תבניות/interstitial.html (תבנית HTML) תבניות/send_msg.html (תבנית HTML) static/img/led_150x150-j.webp

לחלופין, התקן את מסגרת ה- bootstrap css/js תחת הספרייה הסטטית.

הזן את כתובת האתר של msg.py בדפדפן שלך וודא שדף האינטרנט יופיע. אל תשלח הודעה עדיין !!!

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

הורד את הקוד max7219_server.py המצורף לספריית הבית שלך, לא ב- dir apache root שבו הוא יכול להתבצע על ידי משתמשי אינטרנט. הפעל אותו כשורש:

sudo python max7219_server.py

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

אם אתה רוצה לכבות את השרת, פשוט בצע את Control-C כדי לצאת ממסך השרת.

זהו זה. מקווה שתיהנו מהפרויקט הזה כמוני.

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

מוּמלָץ: