תוכן עניינים:
- שלב 1: מה שאתה צריך
- שלב 2: הכנת מודול ה- Bluetooth
- שלב 3: הרכבת החלקים
- שלב 4: התאמה
- שלב 5: התוכנה
- שלב 6: בדוק
וִידֵאוֹ: חיישן אבק נתרן באנדרואיד: 6 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:16
לפני שנה עברה חבר שלי סדנת סוף שבוע בנושא ניטור סביבתי. מטרת הסדנה הייתה לבנות חיישן אבק המחובר ללוח פי פטל כדי לשים נתוני מדידה על שרת כלשהו שמספק מפות ריכוז אבק המתעדכנות לעתים קרובות. חבר שלי שאל אם יש דרך לקבל את נתוני החיישן ישירות בסמארטפון שלו לצורך ניטור ורישום. אז חפרתי באינטרנט לגליון נתונים וראיתי שלחיישן יש ממשק UART פשוט עם פרוטוקול 9600Baud 8N1. אבל איך לחבר UART לסמארטפון? ובכן, זה קל. פשוט הייתי צריך להשתמש באחד מאותם מודולי Bluetooth קטנים בכל מקום המספקים קומפורט חיקוי באנדרואיד. עכשיו תראה איך הצלחתי.
שלב 1: מה שאתה צריך
אתה צריך את החלקים הבאים
- מחבר התאמה JST XH 7 פינים לממשק Sodial עם חוטים. קניתי את שלי ב- eBay.
- מודול בלוטות 'HC05 או 06 תואם למחבר UART
- ממיר USB-סדרתי עם ממשק ברמת TTL. אנו משתמשים בזה כדי לתת למודול BT שם ייחודי
- חיישן אבק Sodial SDS011. את שלי קיבלתי מאיביי
- חתיכת veroboard
- מחבר USB-B
- חוּט
- פיסת עץ להרכבה הכל
אז תזדקק לכמה כלים פשוטים:
- מסור כסף לחיתוך העץ
- מַלְקֶטֶת
- ברזל הלחמה והלחמה
- קאטר
- אקדח דבק חם
- חתיכת שרוול סיליקון 8 מ"מ (לא בתמונה)
אתה יכול להוריד את גליון הנתונים של Sodial SDS011 כאן גליון הנתונים של Sodial SDS011
שלב 2: הכנת מודול ה- Bluetooth
למודול BT יש ממשק UART עם רמת TTL. ניתן להגדיר אותו מחדש עם פקודות "AT" כמו שעשינו עם מודמים באינטרנט עוד בימי קדם. כדי לחבר אותו לתוכנית מסוף במחשב שלך עליך להתאים את ה- UART למחשב שלך. השתמשתי בממיר USB-RS232 שקניתי באמזון. החלתי מחבר למודול BT וניתבתי את ספק הכוח 3, 3V וה- GND מהממיר למודול BT. ואז חיברתי את קווי TxD ו- RxD בהתאמה בהצלבה. TxD מממיר USB ל- RxD ממודול BT ולהיפך.
יש לי מכונת לינוקס והשתמשתי ב- cutecom. לאחר חיבור ממיר ה- USB המחבר היה "ttyUSB0". אתה יכול למצוא את שמות ה- comport בספריית "/dev" במחשב הלינוקס שלך. עבור משתמשי Windows אני ממליץ על "hterm". זה קל לתפעול. הקלד "AT" וכדאי לקבל "AT" כתגובה. לאחר מכן הקלד "AT+NameSensor" כדי לתת למודול BT את השם "Sensor"
שלב 3: הרכבת החלקים
חותכים פיסת עץ בגודל המתאים ללקיחת כל החלקים. חבר את כל האותות כפי שמצוין בתרשים. כדאי לשים שרוול סיליקון סביב החוטים כדי להגן עליהם. הלחם את תקע ה- USB-B בלוח הלוח. הוא משמש רק לאספקת החשמל. תקן את כל החלקים בעזרת ברגים על בסיס העץ. לבסוף הדבק חם את הכבלים כדי לתקן אותם על העץ.
שלב 4: התאמה
הפעל את יישום החיישן על ידי חיבור ספק כוח USB. נורית אדומה על מודול BT תתחיל להבהב. אל תנסה לשדך אותו לסמארטפון האנדרואיד שלך. עליך להזין קוד PIN. זהו "1234". לאחר הזנת הקוד הטלפון החכם שלך צריך להיות מזווג עם מודול BT.
שלב 5: התוכנה
אני אוהב לכתוב אפליקציות אנדרואיד בפלטפורמת היעד עצמה. זה חוסך אותך מכל הדברים שאמורים לדאוג לך אם אתה עובד עם Android Studio. גיליתי שלושה כלי פיתוח מתאימים באנדרואיד עצמו
- מינטוריס בייסיק. מתורגמן בסיסי עם מערכת עשירה של פקודות להתעסק עם כמעט הכל באנדרואיד. תוכל ליצור קיצורי דרך לאפליקציות שלך. Mintoris basic אינו מכיל מהדר. אז כנראה שהתקנת את Mintoris בכל מכשיר שאתה משתמש בו. אבל אתה רק צריך לשלם על זה פעם אחת (בערך 7 €)
- בסיסי! מתורגמן בסיסי ומהדר (תוספת תמורת קצת €). כמעט מתחבר להכל באנדרואיד ואתה יכול לאסוף אפליקציות אמיתיות להפצה שלהן ללא Basic! על מכשיר היעד. לצערי בסיסי! חסר את פונקציות התרשים המעולות של מינטוריס
- AIDE הוא IDE למחצה מקצועי לביצוע פיתוח אנדרואיד בג'אווה באנדרואיד. עם AIDE יש לך את הגמישות הגדולה ביותר אך עליך ללמוד ג'אווה. ל- AIDE עלויות שנתיות של כ -50 €
בחרתי במינטוריס. בחלק זה לא אתן לך הדרכה לתכנות ב- Mintoris אלא תיאור קצר של בלוקי הפונקציות
בחלק הבא מוצהרים שלושה מערכים עבור שתי קווי נתוני החיישנים וחותמות הזמן המתאימות. נתוני חותמת הזמן משמשים לסימון ציר ה- x של התרשים. הסודיאל פולט שני זרמי נתונים כל אחד שצוין בגודל חלקיקים מיוחד. שני מערכי נתוני האבק לוקחים ערכים אלה.
WakeLock חלקית
TextColor 100, 75, 10
TextColorA 50, 50, 50
TextAlign 0
גודל טקסט 24
CLS
קופץ "מד חיישן אבק (ג) ARJ 2017"
Global dustData (), dustDataF (), timeStamp () אינדקס גלובלי, בחירה, maxData, fileName $
חותך זמן עמום (59)
אבק עמום נתונים (59)
אבק עמום DataF (59)
תפריט עמום $ (4) = "מקסימום 100 מערכי נתונים", "מקסימום 1000 ערכות נתונים", "מקסימום 5000 ערכות נתונים", "מקסימום 10000 מערכות נתונים", "יציאה"
״אתחל את המערכים
עבור i = 0 עד 59
dustData (i) = 0
dustDataF (i) = 0
timeStamp (i) = i
הבא i
לאחר מכן מוגדר תפריט רשימה. זה נותן למשתמש אפשרות לבחור את הגודל המרבי של הנתונים לאסוף. זהו רק מתג בטיחות כדי למנוע מהסמארטפון לצרף נתונים אינסופיים. ה- Functions BTgetPaired $ () מחזיר רשימה עם כל המכשירים המשויכים במכשיר האנדרואיד, שמם וכתובת BT.
תפריט מפורט $ (), בחירה
'בחר כמות מקסימלית אם יש לאחסן נתונים
runLevel = 1
בחר בחירה
מקרה 0 maxData = 100
מקרה 1 maxDate = 1000
מקרה 2 maxData = 5000
מקרה 3 maxData = 10000
מקרה 4 maxData = 0
סיום בחר
'' חבר חיישן
זוג עמום $ (0)
זוג $ () = BTGetPaired $ ()
אם זוג $ (0) = "אין" אז
הדפס "לא נמצאו התקנים משויכים. האם BT מופעל?" הדפס "התוכנית הסתיימה"
סוֹף
אנדיף
זוג רשימה ($), מכשיר $
שם $ = פריט חילוץ $ (מכשיר $, 0)
כתובת $ = Item Extract $ (מכשיר $, 1)
BTConnect 1, כתובת $
'חכה לחיבור
התקדמות ON
הדפס "מנסה להתחבר"; כתובת $
עבור i = 1 עד 20
התקדמות i/2
אם BTGetstate (1) = 4 אז צא להמתנה 1000
הבא i
התקדמות כבויה
'בהצלחה התחבר למכשיר BT
אם BTGetState (1) = 4 ואז הדפס "מחובר" הדפסה אחרת "לא ניתן להתחבר"; שם $
הדפס "התוכנית הסתיימה"
סוֹף
אנדיף
הבלוק הבא מציג את דרישת הנתונים. עבור כל הפעלת נתונים, קובץ נפתח באופן אוטומטי ונקרא על שם השעה והתאריך. ואז הלולאה קוראת את נתוני החיישן. הנתונים ארוזים בכמה בייטים. קבוצת בייטים מזוהה על ידי שתי תווי ASCII 170 ו- 171. הנתונים הבאים מאורגנים מחדש וממלאים במערכי האבק.
גרפיקה מופעלת
'פתח קובץ נתונים לכתיבה
fileName $ = FormatTime $ (t, "yyyy-MM-dd-kk-mm-ss") + ".dat"
פתח 1, קובץ שם $, "w+" הדפס "קובץ נתונים פתוח"; שם קובץ $ Writeln 1, FormatTime $ (Time (), "yy-MM-dd")
Writeln 1, "אבק זמן 2.5 אבק 10"
'מלא את המערך בנתונים הנמדדים
נתונים $ = "" מנות $ = ""
אינדקס = 0
עשה בעוד maxData> 0
BTR קרא 1, מנות $, 10
data $ = נתונים $+מנה $
אם Len (נתונים $)> = 10 אז
אם (ASCII (שמאל $ (נתונים $, 1)) = 170) & (ASCII (ימין $ (נתונים $, 1)) = 171) אז
dustDataF (אינדקס) = ASCII (אמצע $ (נתונים $, 2, 1))
dustDataF (אינדקס) = (dustDataF (אינדקס)+256*ASCII (אמצע $ (נתונים $, 3, 1))))/10
dustData (אינדקס) = ASCII (אמצע $ (נתונים $, 4, 1))
dustData (index) = (dustData (index)+256*ASCII (אמצע $ (נתונים $, 5, 1)))/10
Writeln 1, FormatTime $ (Time (), "kk: mm: ss") + "" + Str $ (dustDataF (index)) + "" + Str $ (dustData (index))
נתונים $ = ""
maxData = maxData-1
אינדקס = אינדקס+1
אם אינדקס> 59 ואז אינדקס = 0
dustData (אינדקס) = 0
dustDataF (אינדקס) = 0
אנדיף
אנדיף
DrawGraph ()
חכה 100
לוּלָאָה
סגור 1
הגרפיקה כבויה
CLS הדפס "התוכנית הסתיימה"
סוֹף
החלק האחרון הוא תת -קו שנקרא לאחר כל קליטת נתונים. הוא מנקה את המסך, מצייר מחדש את התרשים עם הנתונים האמיתיים המאוחסנים במערכי חותמות האבק והזמן.
'צייר את הקואורדינטות, התוויות, הקרציות וגם עקומות הנתונים
תת DrawGraph ()
'במצב גרפיקה המסך מתבהר לצבע הנוכחי
צבע 0, 0, 0
CLS
צבע 0, 0, 100
'הגדר את צבע הגרפיקה שישמש לציור קווי הרשת
TextColor 100, 100, 100, 50
'TextColor הוא צבע הכותרת הראשית של הרשת
TextColorA 100, 100, 100
'TextColorA משמש לכותרות ציר והערות רשת.
'הגדר את גודל טקסט הכותרת של הציר
'הכותרת הראשית של הרשת היא פי 2 מהגודל הזה
גודל טקסט 20
FixDecimal 0
'הגדר להצגת 2 מקומות עשרוניים
PadDigits 2
'צייר רשת לתרשים' הגדר את הטווח והכותרת של X & Y
ציר AxisX 0, 59, "זמן/ים"
ציר Y 0, 10000, "ug/m3"
רשת 3, "ריכוז אבק"
'צייר גרפי אבק
צבע 100, 0, 0
GraphXY timeStamp (), dustDataF ()
צבע 0, 100, 0
GraphXY timeStamp (), dustData ()
TextColor 100, 0, 0
DrawText "PM2.5", 30, Int (ScreenY ()-60), 90, 1
TextColor 0, 100, 0
DrawText "PM10", 30, Int (ScreenY ()-150), 90, 1
TextColor 100, 100, 100, 50
לַחֲזוֹר
הורד את קוד המקור כאן
שלב 6: בדוק
הפעל את החיישן והפעל את האפליקציה. מרשימת המכשירים המשויכים בחר את המכונה בשם "חיישן". לאחר חיבור החיישן המסך יתחיל להציג את הנתונים. במקביל קובץ הנתונים מוקצה. לאחר סיום האופנה תוכל להשתמש ב- GnuPlot להצגת הנתונים. השתמש בקובץ "Test.gp" ב- GnuPlot כדי להגדיר את GnuPlot להצגת קובץ נתונים בשם "Test.dat". אתה יכול למצוא אותו גם כאן
עיין בסרטון לפרטים נוספים ובדיקות. שיהיה הרבה כיף ועוד רעיונות!
מוּמלָץ:
חיישן אולטרסאונד על שואב אבק רובוטי: 5 שלבים
חיישן אולטרסאונד על שואב אבק לרובוט: היי, יש לנו את שואב האבק של רובוט השטן מזה כ 3 שנים וזה עדיין עושה את העבודה. זהו סוג M611, שהוא מעט "מטומטם": אין סריקה של האזור או זיכרון כלשהו היכן לא לשאוב, אלא עם היכולת לחזור
רישום גרף בזמן אמת באנדרואיד מארדואינו דרך HC-05: 3 שלבים
שרטוט גרף בזמן אמת באנדרואיד מאת Arduino דרך HC-05: היי, הנה הדרכה כיצד לתוות גרף ערכים בזמן אמת מבקר מיקרו כגון Arduino לאפליקציה. הוא משתמש במודול בלוטות 'כגון HC-05 כדי לשמש כמכשיר העברת הודעות לשדר ולקבל את הנתונים בין ה- Ar
תיקון שואב אבק שחור+דקר נייד - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. דגם DVJ315J: 5 שלבים (עם תמונות)
תיקון שואב אבק שחור+דקר נייד - Aspirador De Mano Dustbuster Litio 16.2Wh Con Acción Ciclónica. דגם DVJ315J: אתה עשוי להוציא +70 יורו (דולרים או המטבע המקביל שלך) עבור שואב אבק נייד, ואחרי כמה חודשים או שנה, זה לא עובד כל כך טוב … כן, זה עדיין עובד, אבל פחות יותר מדקה עבודה וזה חסר ערך. צריך עבור ג
המרת שואב אבק Ni-MH לליון יון: 9 שלבים (עם תמונות)
המרת שואב אבק Ni-MH לליון-יון: שלום לכולם, במדריך זה נמיר את שואב האבק שלי מ- Ni-MH לסוללות ליון-יון. שואב אבק זה קרוב ל -10 שנים אך בשנתיים האחרונות. , הוא כמעט ולא היה בשימוש מכיוון שהוא פיתח בעיה עם הסוללות שלו
כיצד לעצור את פייסבוק מהפעלה אוטומטית של סרטונים באנדרואיד !!: 10 שלבים
כיצד לעצור את פייסבוק מהפעלה אוטומטית של סרטוני וידיאו באנדרואיד !!: הוראה זו תראה לך כיצד לעצור את פייסבוק מהפעלה אוטומטית של סרטונים הן בנתונים והן ב- wifi במכשיר אנדרואיד אנא הירשם לערוץ שלי תודה