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

שולח SMS עם טמפרטורה בזמן: 5 שלבים (עם תמונות)
שולח SMS עם טמפרטורה בזמן: 5 שלבים (עם תמונות)

וִידֵאוֹ: שולח SMS עם טמפרטורה בזמן: 5 שלבים (עם תמונות)

וִידֵאוֹ: שולח SMS עם טמפרטורה בזמן: 5 שלבים (עם תמונות)
וִידֵאוֹ: תפסתי אותה על חםםםם!!!!!! 2024, נוֹבֶמבֶּר
Anonim
שולח SMS עם טמפרטורה בזמן
שולח SMS עם טמפרטורה בזמן

הרעיון הוא לקבל הודעת טמפרטורה מבית אבותיי.

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

החלקים הם:

  • לוח בקר GeoCreit® ATmega328P Nano V3 תואם Arduino
  • לוח הרחבה DIY NANO IO V1. O עבור Arduino
  • מודול שעון בזמן אמת מבוסס RTC IIC / I2C DS1307 ו- DS18b20
  • SIM800L Quad-band GSM / GPRS
  • מודול אספקת חשמל מתכוונן למטה LM2596 מיני DC-DC
  • טמפרטורת Thermistor NTC MF52AT

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

לפני שאני סוף סוף משתמש ב- Geekcreit® Nano, אני בודק את כל החלקים עם אונו Arduino.

שלב 1: העלה את SIM800l לעבודה

קבל את SIM800l לעבודה
קבל את SIM800l לעבודה

נקודה מרכזית אחת היא הכוח ל- Sim800L.

אני משתמש בממיר מיני DC-DC LM2596, מותאם ל -3.7 וולט ואספקת חשמל נפרדת.

כדי לבדוק חיבור עם פקודות AT+ צד זה מאוד שימושי:

Quickstart SIM800 (SIM800L) עם Arduino

עם השבת קוד PIN באמצעות מודם gsm בפקודות קיבלתי רכיבה על קוד ה- PIN.

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

הפתרון שלי הוא הספרייה של מתיאס Aabmets: AspenSIM800

דוגמתו: Send_SMS.ino השתמשתי בתור תוכנית בסיסית ואחד -אחד מחבר את כל החלקים האחרים יחד.

סיכת ה- Tx והסיכה Rx הם קוד ל:

RX_PIN 10 של Arduino. חייב להיות מחובר לפין TX של מודול SIM800. TX_PIN 11 של Arduino. חייב להיות מחובר לסיכת RX של מודול ה- SIM800

תמיד מומלץ לקרוא את קבצי *.ccp ו- *.h בספריות.

הם מכילים הרבה רמזים וידע מעניין.

שלב 2: הפעל את חיישן RTC DS1307 עם DS18B20 לעבודה

הפעל את RTC DS1307 עם חיישן DS18B20 לעבודה
הפעל את RTC DS1307 עם חיישן DS18B20 לעבודה

השתמשתי בצד הצד הזה: simtronyx - הבלוג עבור DS1307 ו- DS18B20.

לשעון חיבור אוטובוס I2C והוא מיועד ל- Arduino Uno: A4 (SDA) - A5 (SCL)

את DS18B20 חיברתי ל- D3.

קראתי שב- SMS אי אפשר לשלוח Floats only String, אז הייתי צריך לתרגם floats למחרוזת.

מה שאני עושה עם קטע הקוד הזה שמצאתי:

נ

MyString1 = String (currentTemp, 2); // המרת float ל- String

MyString1 = (MyString1 + "C - RoomTemperatur:)");

// המרת מחרוזת ל- char מתחילה כאן

// אורך (עם תו אחד נוסף עבור מסוף האפס)

int str_len1 = MyString1.length () + 1; // הכינו את מערך התווים (המאגר)

char char_array1 [str_len1]; // העתיקו אותו

MyString1.toCharArray (char_array1, str_len1); // המרת מחרוזת לצ'אר מסיימת לה

אם להיות כנה אני לא יודע איך זה עובד, אבל זה עובד.

שלב 3: הפעל את ה- Thermistor NTC MF52AT לעבודה

העבירו את ה- Thermistor NTC MF52AT לעבודה
העבירו את ה- Thermistor NTC MF52AT לעבודה

עבדתי לפני עם תרמיסטור אז זה היה החלק הקל.

אבל גם כאן אתה יכול למצוא פתרון אחר.

בקוד הסופי אתה יכול למצוא את שלי.

אתה יכול גם למצוא את התרגום Floats to String.

הלחמה מעט חוט ואת הנגד 10 קילו -אוהם לטרמיסטור.

שלב 4: בואו כולם לעבוד יחד

אז כתבתי את כל חלקי התוכנית יחד.

עכשיו הייתי צריך להבין איך שולחים SMS אחד בכל יום, בו זמנית.

קראתי על רעיונות שונים, חלקם עם TimerAlarm וגישה אחרת.

אבל מצאתי פתרון פשוט במקום כלשהו בפורום הארדואינו:

אם (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

SIM.smsSend (addr, char_array); // תרמיסטור

עיכוב (500); SIM.smsSend (addr, char_array1); // DS18B20}

אבל למה now.second = 59 כי הוא שולח הודעת SMS שלמה שלמה. זה עושה לי אבל נסה את עצמך.

לאחר בדיקה כלשהי העליתי את התוכנית ל- Geekcreit® Nano.

זו אולי לא כתיבת התוכנית הטובה ביותר:) אבל היא עושה את הרצוי.

מכיוון של- Geekcreit® ATmega328P Nano יש כמה בעיות Arduino IDE, אני מעלה במסוף (Linux Mint) זורק את ה- USBtinyisp עם זה: avrdude -c usbtiny -p atmega328p -U flash: w: SomeHexFile.hex

שלב 5: זה עבד

כן זה הסתדר וזה ממוקם בבית.

כל יום בשעה 6:00 בבוקר אני מקבל SMS עם הטמפרטורה.

מוּמלָץ: