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

גשש GPS ביתי בזמן אמת (SIM800L, Ublox NEO-6M, Arduino): 8 שלבים
גשש GPS ביתי בזמן אמת (SIM800L, Ublox NEO-6M, Arduino): 8 שלבים

וִידֵאוֹ: גשש GPS ביתי בזמן אמת (SIM800L, Ublox NEO-6M, Arduino): 8 שלבים

וִידֵאוֹ: גשש GPS ביתי בזמן אמת (SIM800L, Ublox NEO-6M, Arduino): 8 שלבים
וִידֵאוֹ: מכשיר gps מעקב האזנה ומעקב - @phantom_defense 2024, יולי
Anonim
גשש GPS תוצרת בית בזמן אמת (SIM800L, Ublox NEO-6M, Arduino)
גשש GPS תוצרת בית בזמן אמת (SIM800L, Ublox NEO-6M, Arduino)

אז יש לך מודול GSM ששוכב כמוני? גם גשש GPS?

אנחנו חושבים אותו דבר!

במדריך זה אנסה להדריך אותך כיצד להשיג את המטרה שלך מנקודת מבט של טירון.

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

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

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

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

שלב 1: דרישות מוקדמות

תנאים מוקדמים
תנאים מוקדמים
תנאים מוקדמים
תנאים מוקדמים
תנאים מוקדמים
תנאים מוקדמים

מודול GSM - SIM800L

  • די זעיר, קל לשימוש
  • מסוגל להשתמש באינטרנט נייד (GPRS)
  • זוֹל

מודול GPS - Ublox NEO6M

  • גם קטן
  • מתמודד היטב עם עבודתו

מיקרו -בקר - יכול להיות כל דבר - תוכל להשתמש ב- Arduino Uno המפורסם או בננו כדי לפנות קצת מקום

סוללה - השתמשתי בתא 18650 כמקור החשמל הראשי והיחיד (3.7V נומינלי)

מחזיק סוללות - למה? - כי הלחמת סוללה 18650 די מסוכנת בגלל החום.

DC -DC Boost Converter Step Up Module 5V - חייב להיות שכן Arduino בו השתמשתי צריך 5V

כלים, דברים בסיסיים שיכולים להועיל:

חוטים, מלחם, קרש לחם לבדיקה

שלב 2: הרעיון המרכזי

קונספט עיקרי
קונספט עיקרי

התפיסה העיקרית של המערכת היא כדלקמן:

הוא מורכב מ -3 חלקים:

  1. מכשיר - שיש לו את קואורדינטות ה- GPS המתאימות ויכול להתחבר לשרת מרחוק ולשלוח אליו נתונים
  2. שרת אינטרנט - שיכול לקבל נתונים נכנסים - לאחסן אותו ולשרת לקוחות אחרים
  3. הפלטפורמה - שבה נוכל לצפות בקואורדינטות - באופן אידיאלי היא צריכה להיות כעת אפליקציה לנייד, או אתר אינטרנט

שלב 3: מודול ה- SIM800L

מודול ה- SIM800L
מודול ה- SIM800L
מודול ה- SIM800L
מודול ה- SIM800L

היו לי תקופות קשות עם המודול.

אני רוצה להתחיל עם כמה מאפיינים והפניות.

על פי גליון הנתונים:

  • הוא פועל בין 3.4V - 4.4V
  • זה יכול לשלוח SMS, לבצע שיחות קוליות לטלפונים אחרים ואפילו להתחבר לאינטרנט!
  • אנו יכולים לתקשר איתו באמצעות פקודות AT!
  • זה יכול להשתמש עד 2A בזמני שיא! הערה: סביר להניח שלא תוכל למדוד אותו באמצעות מולטימטר - בגלל קצבי הדגימה הנמוכים שלו

הניסיון שלי הוא שה- SIM800L מתחת ל- 3.8V לא ממש עובד.

למידע נוסף בקר ב: גליון נתונים

אז התפקיד שלך הוא לספק לפחות 3.8V למודול (באופן אידיאלי 4V), ספק כוח שמפיק לפחות 2A.

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

ראשית, חבר את כרטיס ה- SIM כמו בתמונה למעלה.

כדי לחבר אותו למחשב האישי שלך, אתה יכול להשתמש בממיר USB ל TTL או Arduino.

עכשיו, אני הולך עם הארדואינו.

חבר את SIM800L VCC ו- GND למסופי מקור החשמל שלך.

חבר TX לסיכה הדיגיטלית העשירית של Arduino, RX לסיכה הדיגיטלית ה -11 של arduino.

הורד את הקוד, קישרתי בשלב זה.

בעזרת הקוד, תוכל לשלוח פקודות ולקבל אותן בחזרה במסך הסידורי שלך.

כמה פקודות פשוטות:

AT מחזירה אישור, אם החיבור תקין.

ATD+123456789; התקשר למספר טלפון נתון. הערה: אל תשכח לסיים אותו עם נקודה -פסיק.

AT+CPIN? מחזיר את מצב כרטיס ה- SIM (נעול או לא)

אם אתה רוצה לשלוח SMS, עליך לסיים את הקלט שלך עם תו מיוחד, ניתן לעשות זאת באמצעות סמל '$'.

לפקודות מעניינות נוספות אני מציע שתקרא את זה.

יש פקודות שונות, הכירו אותן, הן באמת שימושיות.

יש נורית סטטוס אדומה המסבירה לך באיזו פעולה ה- SIM800L נמצא.

64 MS ON - 800MS OFF - SIM800L אינו רשום לרשת.

64 MS ON - 3000MS OFF - SIM800L רשום לרשת.

64 MS ON - 300MS OFF - SIM800l נמצא במצב GPRS

אם ה- SIM800L ממשיך להפעיל מחדש לאחר כ-8-10 מהבהבים, יתכן שזה נובע מחוסר אספקת חשמל יעיל.

אם אתה לא מסתדר לאחר AT, בדוק את החיווט! אם יש לך מולטימטר, בדוק את המשכיות החוטים.

בדוק את חיבורי החוטים ומפרקי הלחמה! המודול יעבוד רק כאשר הוא מהבהב.

שלב 4: Ublox Neo 6m

Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m
Ublox Neo 6m

כמה מאפיינים

  • מתח מרבי: 3.6V - הפעלתי אותו בעזרת סיכת 3.3V של Arduino
  • הגרף הנוכחי המרבי הוא 67mA - כך שתוכל להפעיל אותו מארדואינו
  • טווח טמפרטורות:: -40-85 צלזיוס (אני מניח שזה יתאים לך)

היחידה שהזמנתי הגיעה עם אנטנה הנראית בתמונה, אני פשוט מחבר אותה לחריץ המתאים.

המכשיר כאשר יש לו אותות, מהבהב עם LED כחול.

ראשית, בדוק כיצד פועל GPS כאן, אם אינך יודע.

כשהמכשיר פועל ומוצא 3 לוויינים, הוא שולח הרבה ערכים המופרדים בפסיקים לארדואינו כמו למעלה.

כדי לסייע בעבודתנו, אנו יכולים להשתמש בכמה ספרות חיצוניות כדי לנתח את הנתונים האלה כך שיהיו קריאים יותר לאדם.

אתה יכול להשתמש בספריית TinyGps או בספריית NeoGPS. השתמשתי בשני כי זה קל יותר.

לבדיקה, עליך לחבר את סיכות החשמל ל- arduino 3.3V ו- GND.

הורד קוד זה והשתמש בו עם ה- GPS שלך. סיכה דיגיטלית RX 10, סיכה דיגיטלית 11

הערה: אל תשכח להשתמש במודול בחוץ, רצוי כאשר אין ענן.

לאחר חצי דקה, המכשיר אמור למצמץ ולפלט את קואורדינטות ה- GPS שלך!:)

ברגע שאתה יודע שמודול ה- SIM800L שלך ו- GPS פועלים כראוי, תוכל לעבור לשלב הבא.

שלב 5: מעגלים

מעגלים
מעגלים

המעגל הוא כמו בתמונה.

אז סוללת 3.4V - 4.2V 18650 היא מקור החשמל העיקרי. Sim800L מקבל את האנרגיה ישירות ממנה. יש ביניהם קבלים במקביל על מנת לשפר את יציבות המעגל.

כאשר אתה בוחר קבל, עליך לבחור במכשיר ESR נמוך.

ממיר שלב אחד של 5V מגביר את מתח הסוללה ל -5V (יש צורך ב- ir מכיוון שארדואינו עובד עם 5V).

מסילת הכוח 5V מחוברת לננו כאן. Sim800L ו- Neo6m מחוברים ל- Nano כמו בתמונה. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 מחובר ל- RST, כך שנוכל לאתחל מחדש את המערכת (פרט ל- SIM800L). הערה: יתכן שמדידת האתחול מחדש אינה השיטה הטובה ביותר)

ולבסוף, שתי נוריות מחוברות ל- NANO, כך שנוכל לספר למשתמש אם מתרחשת שגיאה כלשהי.

שלב 6: קוד

הקוד מצורף ל- Instructables או תסתכל על github.

אתה יכול לשנות אותו כך שיתאים לצרכים שלך, או שאתה יכול להשתמש בקוד של אחרים אם תרצה.

waitUntilResponse (); פונקציית העזר נלקחה מהקוד שלו. בדוק את עבודתו, וקוד גם!

בקצרה, בפונקציית ההתקנה, עלינו לאפשר את חיבור GPRS של מודול ה- SIM800L שלנו. אנו יודעים אם הוא מצליח אם הנורית מהבהבת במהירות. (setupGPRSConnection ())

בפונקציית הלולאה - כל 15 שניות נקראת הפונקציה sendData () - שיש לה את בקשת

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

ip address/file.php? key = value & key = value למשל

אם מתרחשת שגיאה כלשהי, הנורית המתאימה תדלק. (SIM, GPS)

שלב 7: שרת אינטרנט

שרת אינטרנט
שרת אינטרנט

לשימושנו מספיק שרת אינטרנט קל וקל.

יש כמה אפשרויות שתוכל לבחור מהן:

  1. תוכל להשתמש בשרת מרוחק של חברה, שכנראה אתה צריך לשלם עליה באופן קבוע.
  2. אתה יכול להשתמש במחשב שלך. אני מציע את זה רק לבדיקה, זה לא ממש יעיל להפעיל אותו 24/7, בגלל בזבוז אנרגיה, בעיות בטיחות.
  3. אתה יכול להשתמש במחשב זעיר, כמו Raspberry PI. קל משקל, זול, לא צורך הרבה כוח.

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

אם אתה משתמש במחשב, אתה כנראה משתמש ב- Windows. במקומך, הייתי מתקין עליו שרת Apache או XAMPP.

ל- XAMPP כבר יש PHP, חוץ מזה שהוא מגיע גם עם HTML, Perl ומערכת ניהול מסדי נתונים. בעזרת PHP אתה יכול ליצור שרת דינאמי. אם אתה רוצה להשתמש בשרת המקומי שיצרת זה עתה מכל מקום בעולם, עליך להקצות למחשב שלך IP סטטי ולעשות העברות. מדריך שימושי ל IP סטטי:

וכל העניין המנחה:

אם יש לך פטל, זה מנהג טוב להשתמש בו. אתה יכול להכיר את פקודות לינוקס ולהפעיל שרת משלך 24/7.

מערכת ההפעלה הייתה ג'סי Raspbian עם התקנה ללא ראש (ללא מקלדת, צג) - שלטתי בה באמצעות המחשב שלי עם חיבור SSH.

השתמשתי במרק כדי להיכנס לפטל שלי. אל תשכח לשנות את הסיסמה של חשבונך, כך שאחרים לא יוכלו להיכנס אליך פי. ברירת המחדל היא: pi, passw: פטל.

התקנתי שרת אינטרנט lighttpd עם sqlite3. הדרכה טובה נמצאה כאן:

השתמשתי בעיקר ב- PHP בקוד השרת. בעזרת PHP אתה יכול לקבל נתונים, לקרוא/לכתוב מסדי נתונים - לקודד שאילתה לפורמט json וכו '… הדרכה זו תעזור לך רבות כיצד לנהל את מסד הנתונים שלך באמצעות PHP.

אתה יכול להציג את הקוד שלי גם ב- github, בתיקייה server_files.

וכמובן, עליך לאפשר העברה לפיי שלך בנתב שלך, אם אתה רוצה לגשת אליו מרחוק.

שלב 8: סיום/ניסיון

טרם נבנה מארז.

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

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

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

מוּמלָץ: