תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-13 06:57
עקוב אחר מאת המחבר:
היה לי פטל וכובע נייר אלקטרוני ורציתי להשתמש בו כדי להציג מידע כמו היכן ISS או כמה אנשים נמצאים כעת בחלל …
הצהרתי לבדוק אם יש ממשקי API באינטרנט כדי לקבל את הנתונים האלה, ומצאתי אותם. OK, gotcha !!!!
רגע, לכובע הזה יש 4 כפתורים, ואז אני צריך להציג 4 נתונים …
- איפה ISS כעת?- כמה אנשים נמצאים כעת בחלל?- באיזה שלב נמצא הירח?- יורד גשם? זה כל כך חם?…
כרגע, אני מציג את המידע הזה, אבל אוכל לעדכן את ה"הנחיה "הזה ברגע שעלה לי רעיון טוב, או שאם אתה יודע מידע טוב, תוכל להציע לי זאת !!!
ובכן, הגעתי לערב אחד וה- "FrontEnd" הסתיים כמה ימים אחרי. אל תתלונן על האופן שבו המידע מוצג, אני לא אוהב לעשות את החלק הזה:)
אספקה
- פטל PI (אפס מספיק). 2.7 אינץ 'נייר אלקטרוני כובע. (קניתי את שלי כאן)- כרטיס SD (מספיק 4Gb).
אתה גם צריך אסימון מ- OpenWeather כדי להשתמש בהם בממשקי API (מכאן)
שלב 1: עדכן תוכנה (SO)
השלב הראשון, כמו תמיד, הוא להכין את ה- RI של ה- Raspberry עם מערכת ההפעלה העדכנית ביותר.- הורד את מערכת ההפעלה העדכנית ביותר (עם שולחן עבודה) מכאן.- כתוב את התמונה על כרטיס SD ריק.- צור קובץ ריק "ssh" כדי לאפשר חיבור ה- SSH.- שמור את קובץ "wpa_supplicant.conf" בכרטיס ה- SD כדי להגדיר את ה- Wifi שלך כדי להתחבר ל- Raspberry PI שלך באמצעות SSH (יש לך אותו מוכן במחשב שלך, אני יודע זאת).
הפעל את ה- Raspberry Pi שלך.
התחבר אליו באמצעות SSH (תוכל לעשות זאת גם אם יש לך צג, מקלדת ועכבר, אך אין לי ואני מעדיף להתחבר באמצעות SSH) ולעדכן אותו …
sudo apt -get update -y
sudo apt -get upgrade -y
כעת, עליך לאפשר ל- VNC להיות מסוגל להתחבר מרחוק ול- SPI עבור ה- HAT של נייר אלקטרוני:
sudo raspi-config
אפשרויות ממשק> VNC> כן אפשרויות ממשק> SPI> כן
ואתחל אותו מחדש.
שלב 2: תוכנה נחוצה
אוקיי, עכשיו יש לנו פטל PI פועל עם התוכנה העדכנית ביותר וכל הבסיס להתחבר אליו.
זה הרגע להתחיל להתקין את התוכנה הדרושה לשליטה בכובע ה- E-Paper.
אם לא חיברת את HAT ל- Raspberry PI שלך, עכשיו זה הרגע האחרון לחבר אותו. כבה את ה- Raspberry PI והנח עליו את ה- HAT.
לשלבים הבאים תוכל לעקוב אחר ההוראות מ- Waveshare או לעקוב אחר השלבים הבאים.
התקן את ספריות BCM2835:
wget
tar zxvf bcm2835-1.60.tar.gz cd bcm2835-1.60/sudo./configure sudo make sudo make check sudo make install #לפרטים נוספים, עיין ב
התקן ספריות wiringPi:
sudo apt-get להתקין wiringpi
#עבור Pi 4, עליך לעדכן אותו: cd/tmp wget https://project-downloads.drogon.net/wiringpi-latest.deb sudo dpkg -i wiringpi-latest.deb gpio -v #תקבל 2.52 מידע אם תתקין אותו נכון
התקן את ספריות Python: (אם עדכנת את קובץ ה- SO בגרסה העדכנית ביותר, כל השלבים הללו יהיו כמו "דרישה כבר מסופקת").
עדכון sudo apt-get
sudo apt-get להתקין python3-pip sudo apt-get להתקין python3-pil sudo apt-get להתקין python3-numpy sudo pip3 להתקין RPi. GPIO sudo pip3 להתקין spidev
כעת תוכל להוריד את הדוגמאות מ- Waveshare: (אין צורך בחלק זה, אך תוכל להוריד אותן כדי לדעת כיצד הוא פועל).
sudo git שיבוט
cd e-Paper/RaspberryPi / & JetsonNano/
אני ממליץ לך להסיר כמה תיקיות:- e-Paper/Arduino (זהו פטל PI).- e-Paper/STM32 (זהו פטל PI).- e-Paper/Raspberry & JetsonNano/c (נשתמש בפייתון על הפרויקט הזה).
לא תשתמש בהם, ואינך זקוק להם על PI של פטל.
ואם תרצה, תוכל להסיר את כל הקבצים שאינך צריך מהתיקיה "lib", כמו: - epd1in02.py - epd1in54.py - epd2in9.py - …
אם אנחנו הולכים להשתמש 2.7 אינץ ', שאר הקבצים אינם נחוצים.
אני ממליץ לך להזיז את תיקיית "lib" מעט אחורה כדי להשתמש בה בקלות:
sudo mv lib/home/pi/e-Paper/
עם זאת, בקוד שלי (מ- GitHub) הספריות כלולות.
כל התוכנות הדרושות מותקנות.
השלב הבא הוא הקוד שלנו!
שלב 3: הורד את הקוד שלי
כעת עלינו להוריד את הקוד מ- GitHub:
שיבוט sudo git
עם זה יהיה לנו את כל הקוד הדרוש, כולל הספריות מ- Waveshare לפרויקט בפועל.
ערוך את הקובץ "ShowInfo.py" כדי להוסיף את אסימון ה- API שלך מ- OpenWeather.com …. והעיר (השתמש בשם או במזהה העיר):
def WeatherForecast ():
url = "https://api.openweathermap.org/data/2.5/forecast?" #url = url + "q = {city_name}" #url = url + "q = דיסלדורף" #בעיות ASCII !!! url = url + "id = 2934246" #url = url + "& appid = {your_API_key}" url = url + "& units = metric" # In Metric url = url + "& cnt = 6" # רק 6 תוצאות
עם זאת, עלינו להתקין את קבצי הגופנים שבהם אנו משתמשים בפרויקט. הקבצים הורדו עם כל הקוד.
הגופנים נמצאים בתיקייה "נייר אלקטרוני/גופנים".
כדי לפתוח:
sudo unzip Bangers.zip -d/usr/share/fonts/truetype/google/
sudo unzip Bungee_Inline.zip -d/usr/share/fonts/truetype/google/sudo unzip Bungee_Outline.zip -d/usr/share/fonts/truetype/google/sudo unzip Bungee_Shade.zip -d/usr/share/fonts/ truetype/google/sudo unzip droid-sans.zip -d/usr/share/fonts/truetype/google/sudo unzip Indie_Flower.zip -d/usr/share/fonts/truetype/google/sudo unzip Jacques_Francois_Shadow.zip -d/ usr/share/fonts/truetype/google/sudo unzip Londrina_Outline.zip -d/usr/share/fonts/truetype/google/sudo unzip Londrina_Shadow.zip -d/usr/share/fonts/truetype/google/sudo unzip Londrina_Sketch. zip -d/usr/share/fonts/truetype/google/sudo unzip Oswald.zip -d/usr/share/fonts/truetype/google/sudo unzip Roboto.zip -d/usr/share/fonts/truetype/google/ sudo unzip Vast_Shadow.zip -d/usr/share/fonts/truetype/google/
אני ממליץ לך למחוק את קבצי ה- zip לאחר ההתקנה, מכיוון שאיננו זקוקים יותר לקבצים אלה:
sudo rm -R גופנים
שלב 4: בצע את הבדיקה
עבור לתיקיה הנכונה שבה יש לנו את קובץ הבדיקה:
cd ~/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk
בצע את קובץ הבדיקה עם גירסה 3 של Python:
python3 Test001.py
יהיו לך הערות עקבות בינתיים התוכנית מופעלת.
ובמסך הדואר האלקטרוני תוכלו לראות את ההודעות.
עבור כל כפתור, המסך יציג הודעה אחרת.
שלב 5: הצגת מידע על הירח / החלל / ISS…
בסדר, כולנו פועלים ועכשיו אנחנו רוצים לראות היכן נמצא ISS ברחבי העולם, או שלב הירח …
ראשית עליך לבצע את הקובץ "ShowInfo.py" (הממוקם ב- "~/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk").
python3 ~/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk/ShowInfo.py
ועכשיו, אם תלחץ על כפתור אחד, יהיה לך המידע המתוכנת לכפתור זה:
● לחצן 1: תחזית מזג אוויר.
● לחצן 2: מי נמצא בחלל ואיפה.
● לחצן 3: היכן נמצא ה- ISS ברחבי העולם.
● לחצן 4: מידע על הירח.
שלב 6: בצע אותו כשירות
כחלופה, ניתן להפעיל את הסקריפט של פייתון במהלך האתחול על ידי יצירת שירות - מידע נוסף בכתובת
צור קובץ חדש בשם ShowInfo.service והעתק את התוכן שלהלן לקובץ החדש - התאם את נתיב WorkingDirectory בהתאם:
[יחידה]
Description = ShowInfo After = network-online.target רוצה = network-online.target [Service] ExecStart =/usr/bin/python3 ShowInfo.py WorkingDirectory =/home/pi/eInk_Moon_ISS_PeopleSpace/e-Paper/ShowEInk/StandardOutput = erft StandardError = inherit Restart = always User = pi [Install] WantedBy = multi-user.target
העתק את הקובץ ShowInfo.service אל/etc/systemd/system כבסיס:
sudo cp ShowInfo.service/etc/systemd/system/
התחל את השירות:
sudo systemctl הפעל את ShowInfo.service
בדוק אם השירות פועל:
sudo systemctl סטטוס ShowInfo.service
הפלט צריך להיות דומה ל:
● ShowInfo.service - ShowInfo
טעון: טעון (/etc/systemd/system/ShowInfo.service; מושבת; ספק מראש: מופעל) פעיל: פעיל (פועל) מאז יום שישי 2020-09-11 15:17:16 CEST; לפני 14 שניות PID ראשי: 1453 (python3) CGroup: /system.slice/ShowInfo.service └─1453/usr/bin/python3 ShowInfo.py 11 בספטמבר 15:33:17 eInk systemd [1]: התחיל ShowInfo.
אם השירות פועל כשורה, תוכל להפעיל אותו ולהפעיל מחדש את ה- Raspberry Pi כדי לטעון אותו אוטומטית במהלך האתחול:
sudo systemctl אפשר ShowInfo.service
להפסקת השירות:
sudo systemctl עצור את ShowInfo.service
וזה הכל !!!!!
תודה !!!!!