מבוא ל-IOT ברספברי פיי: ממשק ה-GPIO

הפעלה ראשונה של מעגל חשמלי עם GPIO והדלקת נורה באופן ממוחשב

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

אז נבנה מעגל חשמלי עם רספברי פיי. אנחנו צריכים את המצרכים הבאים:

  1. רספברי פיי עם לינוקס שיש לנו גישת SSH אליו שמחובר לחשמל.
  2. breadboard – לוח חשמלי.
  3. נורת LED אדומה בצבע אדום. צריכה מקסימום 2 וולט ו-20 מיליאמפר.
  4. נגד עם 150Ω לפחות או יותר (אני משתמש באחד שהוא 250Ω).
  5. כבלים זכר/נקבה

את 1-4 קונים כזכור בעלי אקספרס. ככה זה נראה:

רכיבים של רספברי פיי - מעגל חשמלי פשוט
רכיבים של רספברי פיי – מעגל חשמלי פשוט

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

מעגל חשמלי פשוט

ניקח את ה-breadboard. הרכיב שעליו הכל יושב:

Breadbasket

נחבר את הכבל זכר/נקבה באיזור של הפלוס מעכשיו כל העמודה "מוארת" נשים את הנגד ממש מעליו.

הנגד, שמתאים לנורת LED, קופץ מעל התעלה לשורה 29, שם נחבר את נורת ה-LED כשזרוע אחת שלה בצד אחד של ה-breadboard והזרוע השניה מעל התעלה. למה? כי אנחנו רוצים שהזרם יעבור דרכה. באותה שורה אנו נוציא את הזרם.

ככה זה נראה

טוב, עכשיו לאן לחבר את הכבל האדום והכבל האפור? מן הסתם לבאס של רספברי פיי. אבל לאן? התשובה נעוצה כמובן במפת ה-bus שדיברנו עליה באחד המאמרים הקודמים:

אנו נחבר פין אחד לגראונד, פין מספר 6 והשני לפין מספר 2 או 4. מה שנוח. ברגע שנחבר את הכל כמו שצריך – הכל יעבוד והמנורה תדלק באופן קבוע.

אם זה לא עובד – נסו לבדוק את הדברים הבאים:

  1. האם המנורה עובדת? תחליפו אותה במנורה אחרת. ייתכן שהיא תקולה.
  2. האם החיבורים מהודקים?
  3. האם החיבורים בקו ישר בדיוק כפי שרואים?

אם הכל עובד – מה הלאה?

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

ראשית, אנו נבחר את הפין. נציץ ברשימה של ה-bus ברספברי פיי. מה שמעניין אותנו הם אלו שמסומנים כ-GPIO. אנו ננתק את החוט שמחובר לפין שנותן מתח תמידי ונעביר אותו לפין המסומן כ- GPIO17.

חיבור ל-GPIO17

המנורה לא תדלק. למה? כיוון שאין מתח. עכשיו אנחנו נעביר מתח באמצעות לינוקס. נתחבר ב-SSH לרספברי פיי ונפתח פתח אל הבאס או ליתר דיוק אל GPIO17.

ישנן שתי שיטות לחיבור ל-GPIO. אני מראה כרגע את הישנה והפשוטה יותר. היא עדיין עובדת, למרות שבעתיד היא לא תעבוד. אנו נכנס לטרמינל ונקליד:

echo "17" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio17/direction

הכל מוכן. מה שעשינו פה הוא להגדיר את GPIO17 ולהגדיר את הנתונים שלו כ"יציאה". עכשיו אם נעביר 1, הוא יופעל והמתח יעבור בו. נעביר 0? הוא ייכבה. אם תקלידוL

echo "1" > /sys/class/gpio/gpio17/value

תראו שהמנורה עובדת!

וזה? זה רגע מכריע, לפחות אצלי כפרחח ווב. כל החיים הייתי רגיל לתכנת אבל התכנות היה במסגרת הרשת. עכשיו משהו שאני מקליד ועושה גורם למשהו בעולם האמיתי – רק נורה כמובן – אבל אם זו נורה אפשר לעשות הרבה יותר (אנחנו נדבר על זה במאמר אחר). אבל אפילו זה מפיל את הראש.

אם נקליד

echo "0" > /sys/class/gpio/gpio17/value

המנורה תכבה.

ומהרגע הזה? פתאום יש עולם של אפשרויות. למשל לחבר עוד GPIO ולחבר כמה נורות. למשל:

שימו לב שכאשר אני מחבר כמה נורות, אני צריך רק גראונד אחד. כל פין עם מתח מתחבר ל-GPIO אחר. איזה? אנחנו נבחר. זוכרים את https://pinout.xyz ? זה האתר שבו אנו נשתמש על מנת לבחור את הפינים ולראות מה המספר הפיזי שלהם לעומת המספר שלהם ב"מערכת".

אבל זו השיטה הישנה. מה השיטה החדשה שבה משתמשים? על כך במאמר הבא. ואז נכנס קצת ל-C++.

פוסטים נוספים שכדאי לקרוא

פתרונות ומאמרים על פיתוח אינטרנט

מודל הרשאות מבוסס טוקנים/ססמאות לעומת OIDC

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

יסודות בתכנות

Decoupling ו-Coupling בהנדסת תוכנה

הסבר על מושג מרכזי בהנדסת תוכנה ובכתיבת קוד שכדאי להכיר במיוחד כשמנחים LLM בכתיבת קוד.

בינה מלאכותית

hooks של LLMים שעורכים קוד

הסבר על הוקים: הפעלה אוטומטית של פקודות שקיימת בכל האייג׳נטים שעורכים קוד (כלומר קורסור, קלוד קוד, קודקס וחבריהם) שיכולה מאד לסייע בפיתוח.

בינה מלאכותית

שימוש ב-Plan Mode באופן חכם

כך נמנעי את קריאות השבר של "מה האייג'נט עשה?!" שיטת Plan mode: שיטה קריטית לעבודה יעילה, המייצרת תוכנית עבודה מפורטת (DoD) עוד לפני כתיבת שורת קוד אחת.

גלילה לראש העמוד