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

SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת: 3 שלבים (עם תמונות)
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת: 3 שלבים (עם תמונות)

וִידֵאוֹ: SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת: 3 שלבים (עם תמונות)

וִידֵאוֹ: SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת: 3 שלבים (עם תמונות)
וִידֵאוֹ: Java tech talk: Spring Boot and GraphQl integration. Как сделать это просто? 2024, נוֹבֶמבֶּר
Anonim
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת
SilverLight: צג סביבתי מבוסס Arduino לחדרי שרת

פעם קיבלתי את המשימה לחפש בדיקה סביבתית לניטור הטמפרטורה בחדר השרתים של החברה שלי. הרעיון הראשון שלי היה: למה לא להשתמש רק ב- Raspberry PI וחיישן DHT, ניתן להתקין אותו תוך פחות משעה כולל התקנת מערכת ההפעלה. בשביל זה קיבלתי את התגובה הקרה מאנשים בוסים כבושים כי אנחנו לא נעשה את זה כי זה יעלה יותר בשעות העבודה להגדיר אותו מאשר לקנות מכשיר. הצורך לקבל אנשים בעלי אופקים כאלו לחלק מהחיים שלי היה דבר אחד והזמנתי איזה גרוטאות EATON מהארגון מחוץ ל- eBay וקוראים לזה אבל החלטתי באותו הרגע שבחדר שרתים שלי אבנה ארדואינו של קוד פתוח לגמרי. מכשיר מבוסס שיהיה הרבה יותר טוב ממה שהזמנתי זה עתה.

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

שלב 1: עיצוב חומרה

עיצוב חומרה
עיצוב חומרה
עיצוב חומרה
עיצוב חומרה
עיצוב חומרה
עיצוב חומרה

סקירת חומרה מסחרית.

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

התקן ניטור סביבתי תאימות

10/100Mb Network-MS, PXGUPS, PXGPDP ו- PXGMS.

10/100Mb ConnectUPS-X, ConnectUPS-BD ו- ConnectUPS-E עם FW V3.01 ומעלה. מידות (LXWXH)

2.26 x 1.48 x 1.15 (אינץ ') 57.6 x 37.6 x 29.3 (מ מ) משקל

1.19 עוז (34 גרם)

זה מידע מאוד שימושי לא? אין מה לדאוג כי הם לא יכולים לעשות הרבה. אפילו כדי להתחיל, UPS שלך יצטרך להוסיף כרטיס נוסף נוסף יקר לשם כך המחבר אותו עם חיישן הסביבה שאתה קונה בנפרד, בדרך כלל עם כבל CAT5 רגיל (אל תנסה לחבר שום דבר ליציאה כי אין שום דבר סטנדרטי בנוגע לזה). הם טוענים שהמכשיר צריך 10 דקות כדי "להתחמם" שבמציאות זה היה שעות וברגע שהוא עשה וואלה הוא הופיע בממשק ה- java המתעדכן לאט ויש לנו טמפרטורה ולחות. התקנת תנאים מבוססי התראות הייתה קלה מנקודה זו אבל למי אכפת בואו נבנה משהו טוב יותר.

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

  • מדד טמפרטורה/לחות/חום
  • ריכוז גפ"מ, עשן, אלכוהול, פרופן, מימן, מתאן ופחמן חד חמצני באוויר (MQ2)
  • רגישות לשמש (האם האור דולק בחדר השרת?)
  • חיישן Motion PIR (אתה יכול אפילו להדליק/לכבות את האורות אוטומטית מעכשיו הודות לחיישן התנועה כאשר מישהו נכנס לחדר)

כל הנתונים האלה מוצגים יפה על מסך LCD תוך שהם מועברים למחשב (Orange PI Zero) לעיבוד והתראות נוספות. למרות שניתן יהיה לחבר חיישנים דיגיטליים כגון DHT והסיכה הדיגיטלית של ה- MQ2 ישירות ל- OrangePI, אני תמיד מעדיף להשתמש במיקרו ייעודי למשימות אלה וכאשר עליך לעדכן גם את ה- LCD ולעשות רמה נמוכה אחרת. דברים שהארדואינו פשוט בלתי מנוצח ויכול לפעול בצורה אמינה ללא הפסקה במשך שנים רבות (למעשה אף ארדואינו אחד שפועל 24/7 נכשל עלי עדיין). ה- OrangePI עם החסרונות שלו (בואו נודה בזה זה מחשב של 10 $) שאינו שמיש לעומס רב, אין תמיכה ב- bsd, wifi משולב נפוח וכו 'יכול להתמודד בקלות עם עומס עבודה קטן כמו ביצוע קריאות חיישנים באמצעות סדרות (USB) ועיבודם.

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

  • Arduino PRO Micro
  • מסך LCD 2x16 תווים RGB
  • מתג מתח מתג בידוד AC-DC 220V עד 5V HLK-5M05 (אלה טובים מאוד לפרויקטים של Arduino/ESP), זוהי גרסת 5V/5W!
  • נגדי 2x300ohm
  • 2xleds (אדום/ירוק)
  • חיישן תנועה PIR
  • חיישן MQ2
  • DHT22
  • LDR
  • נגד 2X10Kohm
  • זַמזָם
  • כתום PI אפס
  • כבל נתונים מיני USB

לא טרחתי אפילו להכין PCB בשביל זה פשוט השתמשתי בלוח לחם רגיל מכיוון שניתן לחבר את הרכיבים פשוט ל- Arduino (ראו תמונות המצורפות):

-DHT22 ידרוש pullup 10K ל- VCC (דיגיטלי)

-LDR ידרוש הנפת 10K ל- GND (אנלוגי)

-MQ2 יכול להיות מחובר ישירות לכל סיכה אנלוגית (אנלוגי) <מעדיף להשתמש באנלוגי כי למה לא כשיש לנו MCU עם סיכות אנלוגיות שבהן נוכל לקבל את הערך המדויק במקום להתאים איזה סיר בגב המכשיר כדי לקבל HIGH או LOW out of it, בשל ההדבקה בעיצוב שלי שאינה נגישה בכל מקרה. בדוק:

-PIR ניתן לחבר ישירות לכל סיכה (דיגיטלית)

-LCD: ניתן להניע עם 4 פינים, ניתן לחבר אותו לכל פין (דיגיטלי) יצטרך +2 RS/E (דיגיטלי)

-בוזר: ניתן לחבר אותו ישירות לכל סיכות ארדואינו (דיגיטלי)

ניתן לראות את הקוד מהשימוש בו השתמשתי בקוד. חיבור הכל יחד אחרי שזה די פשוט קדימה, אתה יכול גם לעשות אותם אחד אחד, לוודא שחיישן אחד עובד בצורה מושלמת ואז להמשיך לחלק הבא, כל מה שאתה יכול לטעות הוא בטעות חיבור חוטים למקומות לא נכונים (למשל החלפת vcc /gnd לחיישן, עד כה זה מעולם לא הרג אף אחד מהמכשירים שלי). מה שאציין כאן שיש יותר מדי VCC ו- GND שנערמו בשבילי, לא יכולתי לסחוט אותם דרך פס מסוף אז הלחמתי את כולם.

גם לגבי ה- DHTs אל תשכח מהפרויקטים האחרים שלי: אם אתה שם את ספריית ה- DHT בקוד שלך וחיישן DHT אינו מחובר או DHT לא מחובר (למשל 11 המוגדרים בקוד שאתה משתמש 22) שיכול להוביל לתוכנית לתלות לנצח בהתחלה.

לגבי חיישני זיהוי התנועה של PIR, כפי שאתה יכול לראות בתמונה שלי יש המון זיופים מזויפים של אלה, למעשה אפילו הייתי מתקשה לקנות אחד אמיתי מ- eBay. הזיופים עובדים באותה מידה, גם בטווח הארוך, אך המעגל שלהם מופיע במראה מה שגורם להפוך את הסיכות + ו- - הפוכות, וגם קל לזהות אותן: מגיעות עם PCB כחול לא הירוק הרגיל, חסרות התוויות עבור הקדרות. היה לי מזל שמצאתי תיבה אמיתית בתיבה שלי אחרת שינוי המיקום יכסה בשני את שתי הנורות בשבילי. גיליתי ששני הסירים שהורכבו עד אמצע הדרך עובדים בשבילי. זה ייתן לך טווח ארוך מספיק לחישה גם כאשר יש תנועה הרגל הדיגיטלית תישאר במצב גבוה למשך כדקה, כך שלא תצטרך להשלים את הקוד לשם כך. על הזיופים קל לקבוע איזה צד הוא ה - ו + רק להסתכל על הרגליים המתאימות לכובעים האלקטרוליטיים המחוברים לסיכות.

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

שלב 2: עיצוב תוכנה

עיצוב תוכנה
עיצוב תוכנה
עיצוב תוכנה
עיצוב תוכנה

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

פרויקט זה משתמש בתקשורת חד כיוונית מ- Arduino-> OrangePI, אין פקודות מכל סוג שהוא מיושמות. למרות שזה יהיה בהחלט אפשרי לעשות זאת כפי שעשיתי את זה באחד הפרויקטים האחרים שלי שבהם המחשב יכול לשלוח LCD_PRINT1 או LCD_PRINT2 כדי להחליף שורה אחת של מסך LCD עם הודעה משלו (למשל: כתובת IP, זמן פעולה, תאריך מערכת, שימוש במעבד), שטח המסך כל כך קטן להצגת נתונים משלושה חיישנים שאפילו לא טרחתי. ערכי SOL ו- SMK יכולים לעלות עד 4 ספרות 0000-1023 ולקחת כבר 8 תווים יקרי ערך על המסך.

עם ה- LCD אתה יכול להבחין בטריק קטן בקוד שאחרי כל ערך נמדד מוחלת הדפסה של רווחים לבנים (""), ואז אני מעביר את הסמן למיקומים קבועים כדי למקם את הסמלים והנתונים החדשים. אלה יש שם מכיוון שה- LCD לא כל כך חכם להבין מספרים, הוא רק מצייר מה שהוא מקבל ולמשל אם היה לך ערך סולרי של 525 שפתאום ירד ל -3 אז הוא יציג 325 משאיר את הזבל הישן על המסך שם.

קוד בקרה C הפועל על ה- OrangePI ורשום את הנתונים הסביבתיים ושולח התראות דוא ל בעת הצורך.

OrangePI מריץ את ארמביאן (שבזמן הכתיבה מבוסס על Debian Stretch). אני אכלול את זה בחלק התוכנה לגבי זה היה בעיה של מה שזה פתר. להלן ניקוז הכוח הממוצע של המכשיר:

0.17 A - Arduino בלבד + חיישנים

0.5-0.62 A - אתחול OrangePI

0.31 A - PI כתום במצב סרק

0.29 A - כתום PI כבוי (לא ממש יכול לכבות אותו, אין לו ACPI או משהו כזה)

0.60 A - מבחן לחץ 100% שימוש במעבד על 4 ליבות

היה לי את ה- OrangePI הזה בקופסה מאז הרבה זמן. עם הגרעין הישן, המכשיר סחב כל כך הרבה זרם (כפי שאמר המטר הגיע לשיא בסביבות 0.63 א ') מה שהוא כנראה לא יכול לספק שהוא פשוט לא אתחול, תהליך האתחול תקוע וקיבלתי את 2 נוריות ה- Ethernet דולקות כל הזמן ולא עושה כלום.

עכשיו זה די מעצבן מכיוון שה- HLK-5M05 טוען שהוא יכול לעשות 5W על 5V מה שהופך אותו ליכולת לספק 1 אמפר אבל עם מכשירים אלה שיוצאים מסין אתה פשוט לא יודע, השיא של 0.63 היה נמוך בהרבה מהמקסימום המדורג ערך. אז הפעלתי בדיקות אתחול פשוטות, מ -10 אתחול מחדש ה- OrangePI יאתחל פעמיים בהצלחה, מה שכמעט גרם לי לזרוק אותו מהפרויקט מכיוון שאני לא אוהב התנהגות לא עקבית של עגלות במעגלים. אז התחלתי לחפש בגוגל אולי יש דרך להוריד את צריכת החשמל בזמן האתחול מתוכנה (מכיוון שזו הייתה רק בעיה אז) ומצאתי איזה מאמר שמדבר על התאמה של script.bin אבל זה היה למחשב Orange PI ול- קבצים היו חסרים באחסון, כך שבכל מוצא אחרון עשיתי את "השדרוג המתאים" הקסום כדי לשדרג את הקושחה, הגרעין וכל השאר, בתקווה שזה יתרוקן פחות והמכשיר יכול לאתחל ו:

Linux silverlight 4.14.18-sunxi #24 SMP שישי 9 בפברואר 16:24:32 CET 2018 armv7l GNU/Linux

Linux silverlight 4.19.62-sunxi #5.92 SMP רביעי 31 ביולי 22:07:23 CEST 2019 armv7l GNU/Linux

זה עבד! הזרקת חומרה לבעיית תוכנה היא בדרך כלל מפתחי הג'אווה העצלנים ללכת למקום, אך במקרה זה פתרנו בעיית חומרה עם תוכנה איזו הצלחה גדולה. עשיתי כמו עוד 20 בדיקות אתחול שהמכשיר אתחל בכל מקרה. עדיין אעיר שזינוק החשמל מהפעלת ה- Opi (חיבור/ניתוק) הוא כה גדול עד שהוא יאפס את הארדואינו בכל זמן נתון (אתחול פשוט פשוט יהבהב ב- LCD אך לא יגרום לבעיות נוספות), אך בעיה זו נשארת מוסתר מכיוון שה -2 יאתחלו יחד.

בדקתי גם את מודולי הגרעין:

usb_f_acm u_serial g_serial libcomposite xradio_wlan mac80211 לימה sun8i_codec_analog snd_soc_simple_card gpu_sched sun8i_adda_pr_regmap sun4i_i2s snd_soc_simple_card_utils TTM sun4i_gpadc_iio snd_soc_core cfg80211 snd_pcm_dmaengine industrialio snd_pcm snd_timer SND sun8i_ths soundcore cpufreq_dt uio_pdrv_genirq UIO thermal_sys pwrseq_simple

מה אנחנו באמת צריכים מאלה? אוקיי ה- pwr והתרמי עשויים להיות שימושיים אך צליל, יציאה טורית, wifi (כבר שבור) אנחנו לא צריכים את כל אלה יכולים להיות ברשימה השחורה. אני גם אצור גרעין מותאם אישית עם רק המודולים הדרושים בהמשך.

מה שאנחנו כן צריכים והוא לא נטען כברירת מחדל הוא ה- CDC ACM כדי לתקשר עם ה- Arduino, לאפשר אותו באמצעות:

הד "cdc-acm" >> /etc /modules

אחרי זה אתה כבר יכול לבדוק את הקשר עם:

מסך /dev /ttyACM0 9600

אתה אמור לראות את נתוני הסטטוס נשלחים כל 10 שניות.

התראות ומעקב

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

- הטמפרטורה עולה על 30 מעלות צלזיוס

- לחות עולה על 70 % (לא בריא לשרתים)

- זוהה תנועה בחדר (זה יכול להיות מעצבן אם אתה ממשיך בחדר השרת שלך)

- זיהוי עשן או גז (ניתן להתייחס ברצינות להתראות מעל 100, שיחקתי עם החיישן הזה והוא נדלק להרבה דברים, למשל יצירת עשן ליד החיישן עם ברזל הלחמה הביאה לקצת יותר מ -50 בעוד עישון סיגריה הבא o הוא זינק עד 500, הוא אפילו זיהה גז מדאודורנט רגיל מרחוק)

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

apt-get להתקין zabbix-agent

הוסף לסוף: /etc/zabbix/zabbix_agentd.conf

UserParameter = silverlight.hum, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 1}'

UserParameter = silverlight.tmp, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 2}' UserParameter = silverlight.sol, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 4}' UserParameter = silverlight.mot, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 5}' UserParameter = silverlight.smk, head -1 /dev/shm/silverlight-zbx.log | awk -F "," '{print $ 6}'

הפעלת zabbix_agentd -p צריכה להחזיר כעת את הערכים הנכונים:

silverlight.hum [t | 41]

silverlight.tmp [t | 23] silverlight.sol [t | 144] silverlight.mot [t | 0] silverlight.smk [t | 19]

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

[SILVERLIGHT] נתונים שהתקבלו בתאריך 2019-09-10 23:36:08 => לחות: 44, טמפ: 22, היי: 25, שמש: 0, תנועה: 0, עשן: 21

[SILVERLIGHT] נתונים שהתקבלו בתאריך 2019-09-10 23:36:18 => לחות: 44, טמפ: 22, שלום: 25, שמש: 0, תנועה: 0, עשן: 21 [SILVERLIGHT] נתונים שהתקבלו בתאריך 2019-09 -10 23:36:29 => לחות: 44, טמפ: 22, היי: 25, שמש: 0, תנועה: 0, עשן: 22 [SILVERLIGHT] נתונים שהתקבלו בתאריך 2019-09-10 23:36:39 => לחות: 44, טמפ ': 22, היי: 25, שמש: 0, תנועה: 0, עשן: 21

השני:

logger void2 (char *text) {

קובץ *f = fopen ("/dev/shm/silverlight-zbx.log", "w"); if (f == NULL) {printf ("שגיאה בפתיחת קובץ יומן זיכרון! / n"); לַחֲזוֹר; } fprintf (f, "%s", טקסט); fclose (f); לַחֲזוֹר; }

זה יכניס יומן 1 אניה לזיכרון (ביטול פעולות rw מיותרות בכרטיס sd) אשר תמיד יוחלף בפעם הבאה. יומן זה יכיל רק את 6 עמודות הנתונים וללא חותמת זמן, הוא קריא בקלות עבור Zabbix.

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

ישנן 2 דרכים:

-דרך קלה: התקן IDE מלא של Arduino וספריות השתמש בשולחן עבודה מרוחק כלשהו כמו X11 עם העברה, Xrdp, Xvnc, Nxserver וכו '.

-דרך קשה: התקן את Arduino IDE והשתמש בשורת הפקודה

הפעם אנחנו הולכים לעשות את הדרך הקשה כיוון שאני לא אוהב להתקין X11 בשרתים. לשם כך תצטרך 6 רכיבים:

1, Arduino IDE עבור ARM 32 ביט ->

2, Python serial-> apt-get להתקין python serial

3, פרויקט Arduino Makefile -> שיבוט git

4, ספריית DHT

5, הגדרות לוח Sparkfun

6, SilverLight.ino, קוד ראשי

כדי להקל עליכם אספתי את הקבצים הדרושים ל -4 הנקודות האחרונות (sketchbook.tgz) כך שתצטרכו רק את 2 הראשונות

ראשית, עדיף ליצור משתמש רגיל שיש לו גישה rw ליציאת ה- USB:

תוסף כסף

usermod -a -G חיוג כסף

SCP את sketchbook.tgz למכשיר בספריית הבית של המשתמש החדש שנוצר וחלץ אותו ממש שם:

תקליטור /בית /כסף

tar xvzf sketchbook.tgz

כדי להבין קצת מה קורה מתחת למכסה המנוע כאשר אתה משתמש ב- IDE הגרפי:

זרימת העבודה של בניית סקיצה של Arduino בעת שימוש ב- Arduino IDE מתוארת באתר Arduino https://www.arduino.cc/en/Hacking/BuildProcess ובפירוט רב יותר כאן: https://www.arduino.cc/ he/Hacking/BuildProcess

באופן כללי, תהליך הבנייה הסטנדרטי של Arduino הוא:

שלב קבצי.ino לתוך קובץ הסקיצה הראשי. טרנספורמציה של קובץ הסקיצה הראשי: הוסף את המשפט #include; ליצור הצהרות פונקציות (אב טיפוס) של כל הפונקציות בקובץ הסקיצה הראשי; צרף את תוכן קובץ main.cxx של היעד לקובץ הסקיצה הראשי. הידור הקוד לקבצי אובייקטים. קשר את קבצי האובייקטים ליצירת קובץ.hex מוכן להעלאתו ל- Arduino.

ישנם כמה הבדלים קלים בין תהליך הבנייה הסטנדרטי של Arduino לבין תהליך הבנייה באמצעות Arduino-Makefile:

נתמך רק קובץ.ino אחד. הצהרות פונקציות אינן נוצרות באופן אוטומטי בקובץ ה-ino. על המשתמש לדאוג ליצירת הצהרות הפונקציות הנכונות.

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

BOARD_TAG = פרסום

ALTERNATE_CORE = SparkFun BOARD_SUB = 16MHzatmega32U4 ARDUINO_PORT =/dev/ttyACM0 USER_LIB_PATH =/home/silver/sketchbook/libraries ARDUINO_DIR = /opt/arduino-1.8.9 include /home/silver/sketchbook/Ar

וכל מה שאתה צריך להקליד הוא a: עשה העלאה (שתבנה קודם את קבצי.hex ואז תשתמש ב- avrdude להעלות אותם), זה יסתיים במשהו כמו:

mkdir -p build-promicro-16MHzatmega32U4

בצע איפוס עשה [1]: כניסה לספרייה '/home/silver/sketchbook'/home/silver/sketchbook/Arduino-Makefile/bin/ard-reset-arduino --caterina/dev/ttyACM0 make [1]: Leaving directory ' /home/silver/sketchbook 'make do_upload make [1]: כניסה לספרייה'/home/silver/sketchbook '/opt/arduino-1.8.9/hardware/tools/avr/bin/avrdude -q -V -p atmega32u4 - C /opt/arduino-1.8.9/hardware/tools/avr/etc/avrdude.conf -D -c avr109 -b 57600 -P/dev/ttyACM0 / -U פלאש: w: build -promicro -16MHzatmega32U4/ספר סקיצות. hex: i מתחבר למתכנת:. מתכנת נמצא: Id = "CATERIN"; type = S גרסת תוכנה = 1.0; לא ניתנה גרסת חומרה. המתכנת תומך בהוספה אוטומטית של התוספת. המתכנת תומך בגישה לזיכרון שנאגר עם גודל מאגר = 128 בתים. המתכנת תומך במכשירים הבאים: קוד מכשיר: 0x44 avrdude: מכשיר AVR מאתחל ומוכן לקבל הוראות avrdude: חתימת התקן = 0x1e9587 (כנראה m32u4) avrdude: קריאת קובץ קלט "build-promicro-16MHzatmega32U4/sketchbook.hex" avrdude: כתיבת פלאש (11580 בתים): avrdude: 11580 בתים של flash כתוב avrdude: safemode: נתיכים אישור (E: CB, H: D8, L: FF) avrdude נעשה. תודה.

ובכן תודה לך avrdude, ועכשיו ה- Arduino שלנו מתאפס ומתוכנת עם הקוד החדש, מה שאתה יכול פשוט לערוך עם vi או העורך האהוב עליך באופן מקומי, אין צורך בשום IDE. אעיר כי עליך לסגור הן את תוכנית הבקרה C, את המסך או כל דבר אחר שניגש ל arduino בזמן ההעלאה, אחרת היציאה תחזור כ- /dev /ttyACM1 לאחר האיפוס.

שלב 3: סגירה ורשימת טודו

סגירה ורשימת טודו
סגירה ורשימת טודו
סגירה ורשימת טודו
סגירה ורשימת טודו
סגירה ורשימת טודו
סגירה ורשימת טודו

למרות שיצרתי את תיבת החיישנים הסביבתיים הזו לחדרי שרת, תוכל להשתמש בה למעבדות כימיה/אלקטרוניות, מחסנים, חדרים רגילים וכל דבר אחר. וכן, מכיוון שהוא משתמש ב- TCP/IP זהו מכשיר IoT, G הייתי צריך לשים את זה גם בכותרת כדי להפוך אותו ליזמי יותר:)

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

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

מוּמלָץ: