תוכן עניינים:
וִידֵאוֹ: התראות טמפ על טקסט מ- ATTINY85 ו- A1 GSM: 5 שלבים
2024 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2024-01-30 09:15
מדריך זה מראה לך כיצד ללכוד את הטמפרטורה מחיישן טמפרטורה פשוט ולשלוח אותו באמצעות טקסט SMS לטלפון הנייד שלך. כדי לפשט את הדברים, אני שולח את הטמפרטורה במרווח קבוע אך אני גם מראה כיצד ניתן לעשות זאת רק על ידי חריגים / התראות. החומרה היא בעלות נמוכה מאוד, פחות מ -10 דולר, אם כי יש לקחת בחשבון את עלויות ה- SMS החוזרות.
ההרמה הכבדה מתבצעת על ידי ATTINY 85 הפשוט אך רב עוצמה אשר לוכד את נתוני הטמפרטורה ולאחר מכן מפעיל SMS להישלח באמצעות מודול AI-Thinker A6 GSM.
בקיצור, אתה כותב את קוד ATTINY85 בסביבת Arduino IDE ושורף אותו ב- ATTINY85 באמצעות ממיר USBASP טורי/USB. סקרתי את ההגדרה של מודול ה- AI-Thinker A6 GSM ו- Arduino IDE בשתי הדרכות קודמות. מה ששונה כאן הוא ממשק המודול ATTINY ו- A6 GSM באמצעות תקשורת טורית.
www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…
לאחר התכנות, ה- ATTINY קורא את נתוני הטמפרטורה מחיישן מדחום - דאלאס 18B20- ולאחר מכן שולח את הנתונים והפקודות באמצעות חיבור טורי למודול ה- GSM A6 ולאחר מכן שולח אותו כטקסט SMS לטלפון הנייד / החכם שלך.
הנה מה שאתה צריך:
1. ממיר טורי/USBASP.
2. ATTINY 85.
3. מודול AI-Thinker A6 GSM גירסה 6 (עם סים שיש לו זיכויים ל- SMS).
4. אספקת חשמל בלוח 3.3v ל- ATTINY85.
5. 3.3.v ספק כוח USB עבור מודול ה- AI-Thinker A6 GSM.
6. חיישן טמפרטורה של דאלאס 18B20..
7. נגד 4.7k לחיישן 18B20.
8. קרש לחם וכבלים.
9. Arduino IDE (השתמשתי בגרסה 1.8.5. לשם כך).
10. מחשב נייד Windows X (השתמשתי בגרסה 10) עם יציאת USB בחינם.
שלב 1: תכנות ה- ATTINY 85
להלן קוד Arduino IDE (יהיה עליך לשנות את מספר הטלפון שאליו ברצונך לשלוח את ה- SMS.)
#include #include #include
// *** // *** הגדירו את סיכות RX ו- TX. בחר כל שני סיכות // *** שאינן בשימוש. נסה להימנע מ- D0 (סיכה 5) // *** ומ- D2 (סיכה 7) אם אתה מתכנן להשתמש ב- I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3
// *** // *** הגדר את היציאה הטורקית המבוססת על תוכנה. שימוש // *** בשם Serial כך שניתן להשתמש בקוד בפלטפורמות // *** אחרות התומכות בסידורי מבוססי חומרה. על // *** שבבים התומכים בסידרת החומרה, רק // *** הגיבו על השורה הזו. // ***
SoftwareSerial mySerial = SoftwareSerial (RX, TX);
// *** // *** Pinout ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ================== ==================================================== ========================= // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]*[8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // *** (PCINT4/ XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/DI/SDA/AIN0 /OC0A/OC1A/AREF/PCINT0) // *** // תדר ATTINY 85 המוגדר ב 8 MHz פנימי
// *** // *** סיכה שעליה מחובר נתוני OneWire // *** החוט. // *** #הגדר ONE_WIRE_BUS 1
// *** // *** הגדר מופע oneWire לתקשורת עם כל מכשירי OneWire // *** (לא רק מכשירי הטמפרטורה של מקסים/דאלאס). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);
// *** // *** העבירו את התייחסות oneWire שלנו לטמפרטורה של דאלאס. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);
הגדרת void () {// *** // *** אתחל את היציאה הטורית // *** mySerial.begin (115200); עיכוב (60000);
// *** הפעל את הספרייה. _sensors.begin (); }
לולאת חלל () {
// *** // *** קבל את הטמפרטורה הנוכחית והצג אותה. // *** _sensors.requestTemperatures (); עיכוב (2000); tempC כפול = _sensors.getTempCByIndex (0); tempF כפול = _sensors.getTempFByIndex (0); // בדוק אם יש שגיאות - לפעמים בהתחלה, הטמפ 'מוצגת כ 85C
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "חם מדי");}}
void SMS_temp (mytemp כפול, מחרוזת myalert) {mySerial.println ("AT+CMGF = 1"); // מוגדר לעיכוב מצב SMS (1000); mySerial.println ("AT+CMGF = 1"); // מוגדר לעיכוב במצב SMS (1000); //mySerial.println("AT+CMGS=\"+ המספר שלך / ""); // הגדר את עיכוב מספר הטלפון (עטוף במרכאות כפולות) (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); עיכוב (1000); mySerial.write (0x1A); // שולח ctrl+z סוף עיכוב ההודעה (1000); mySerial.write (0x0D); // החזרת עגלה בהשהיית הקס (1000); mySerial.write (0x0A); עיכוב (1000000); // 17 דקות - התאמה להתאמה לאפליקציה שלך}
פתח את סביבת Arduino IDE - תיארתי כיצד תוכל לעקוף זאת בפירוט בהוראה הקודמת שלי שאליה רמזתי קודם.
תזדקק לספריות הבאות
SoftwareSerial.h
OneWire.h
DallasTemperature.h
לאחר מכן, הגדר את סיכות RX ו- TX ב- ATTINY85 שעליך להתחבר עם ה- Thinker A1. ל- ATTINY 85 יש 8 סיכות, ארבע מכל צד והוא מיושר באמצעות הנקודה על פני השטח a s הפניה. סיכה 1 או סיכה איפוס נמצאת ליד הנקודה הזו.
(במקרה זה בחרתי Pin2 ו- 3 - אלה נמצאים באותו צד כמו סיכת RESET שנמצאת ליד הנקודה על פני השטח של ATTINY 85. Pin 2 הוא הסיכה הבאה לצד הסיכה RESET בעוד Pin 3 נמצא בין Pin 2 ו- Ground)
לאחר מכן, עליך להגדיר את חיישן הטמפרטורה -
#הגדר ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS);
DallasTemperature _sensors = DallasTemperature (& _ oneWire);
לאחר מכן הגדר את היציאה הטורית של התוכנה
mySerial.begin (115200);
עיכוב (60000);
ולאחר מכן התקשר לחיישנים עם _sensors.begin ();
לאחר מכן, יש את הלולאה, שמסקרת מסביב בזמן שנקבע מראש, רושמת את הטמפרטורה ושולחת הודעה / התראה בהתאם לערך. הוא משתמש בפונקציה SMS_temp שהיא גם המקום שבו אתה מגדיר את תזמון הלולאה
לולאת void () {sensors.requestTemperatures (); עיכוב (2000);
tempC כפול = _sensors.getTempCByIndex (0);
tempF כפול = _sensors.getTempFByIndex (0);
if (tempC <= 14) {SMS_temp (tempC, "קר מסוכן");}
if (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "די קר");}
if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}
if (tempC> = 23 && error_temperature) {SMS_temp (tempC, "חם מדי");}
}
==============
לאחר מכן, הגדר את Arduino IDE כדי להתכונן להעלאה ל- ATTINY85.
מספר דברים שכדאי לשים לב אליהם
1- אם אין לך את משפחת לוחות ATTINY, הוסף את כתובת האתר הבאה https://raw.githubusercontent.com/damellis/attiny/… בכתובת URL/מנהל העדפות קובץ/העדפות נוספות, לאחר מכן, בתוך Arduio IDE לחץ על כלים/לוח/מנהל לוח וחפש את ATTINY והתקן את הלוח החדש. שנה את המעבד ל- Attiny85.
שלב 2: העלאת התוכנית ל- ATTINY85
עיין גם בהוראה הקודמת שלי בנושא-https://www.instructables.com/id/15-Dollar-Attiny8…
ל- ATTINY85 שני מצבים, מצב תכנות ומבצעים, בהתאמה. מצב תכנות ראשית, זיהוי הסיכות ב- ATTINY85. לשם כך, מצא את החריץ הקטן על פני השבב הנמצא ליד סיכת RST/RESET. באמצעות זה כנקודת התייחסות, אתה יכול לזהות את שאר הסיכות. כל המידע הזה מסופק בגיליון הנתונים של A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…
יש לחבר את ה- USBasp ו- ATTINY85 כפי שמוצג בתמונה למעלה.
לאחר מכן, ב- Arduino IDE, הגדר את המתכנת ל- USBasp ואת התדר ל- 8Mhz פנימי.
חבר את USBasp ליציאת USB במחשב הנייד שלך (ב- Windows 10, אם אין לך את מנהל ההתקן USBasp השתמש ב- Zadig בהתאם לאתר
לאחר מכן, כאשר ה- USBasp מחובר, בחר מתוך הסקיצה/העלאה של Arduino IDE ובתקווה שתראה את התקדמות ההעלאה המוצגת באותיות אדומות של IDE Arduino ומסתיימת ב- avrdude. תודה.
כל השגיאות בשלב זה בדרך כלל קשורות בכבלים רופפים או במנהל ההתקן הלא נכון.
שלב 3: הפעלת התוכנית
ראשית, משהו על חיישן מדחום 18b20 של דאלאס. יש לו 3 סיכות, קרקע (G), נתונים (D) ו- VCC כפי שמוצג בתמונה למעלה. לצורך הפעולה הוא דורש גישור בין D ו- VCC לנגד 4.7k. G ו- VCC מחוברים לקטבים בהתאמה בעוד D מחובר ל- ATTINY 85, pin - [6] PB1, כפי שהוגדר בקוד.
לאחר מכן, חבר את ה- ATTINY ל- A6 GSM כדלקמן (ומוצג למעלה)
ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd
ATTINY GND A6 GND
ועל A6 עצמה, A6 PWR A6 VCC 5.0A6 RST A6 GND (אל תחבר לקרקע עדיין !!!!!)
כעת הפעל את שני המכשירים ולאחר מספר שניות, גע זמנית בסיכת הארקה A6 כשהכבל מחובר לסיכה A6 RST. מכשיר ה- A6 יכבה וידליק בתקווה שתקבל בקרוב נתוני טמפרטורה בטלפון שלך.
שלב 4: מסקנה
ההוראה הזו עשויה להיראות פשוטה למדי, אך הרעיון הוא להמחיש מה ניתן להשיג עם רכיבים בעלות נמוכה. ברור שאם יש לך גישה ל- wi-fi או לרכזת BLE אז יש פתרונות מתאימים יותר.
לא כיסיתי פונקציונליות אחרת כגון שליחת SMS לטלפון ליזום הקלטה / שידור טמפרטורה וכו '.
מוּמלָץ:
בקרת טמפ ': 9 שלבים
TempControl: TempControl é um projeto desenvolvido para coletar informa ç õ es sobre a umidade e a temperatura do ar. מידע זה יכול להציע שירותים חכמים למכשירי סמארטפון עם מערכת הפעלה אנדרואיד. כמידע
חיישן טמפ 'ציוץ: 4 שלבים
חיישן טמפ 'ציוץ: צור חיישן טמפרטורת ציוץ משלך שיכול לעבוד בכל מקום עם WiFi
ניתוח נתוני טמפ '/לחות באמצעות Ubidots ו- Google-Sheets: 6 שלבים
ניתוח נתוני טמפ/לחות באמצעות Ubidots ו- Google-Sheets: במדריך זה נמדוד נתוני טמפרטורה ולחות שונים באמצעות חיישן טמפרטורה ולחות. כמו כן, תלמד כיצד לשלוח נתונים אלה ל- Ubidots. כך שתוכל לנתח אותו מכל מקום ליישום אחר. גם באמצעות שליחה
אזעקת דלתות DIY עם התראות טקסט: 5 שלבים
אזעקת דלתות DIY עם התראות טקסט: הכינו אזעקת דלת/חלון משלכם עם כמה אלקטרוניקה פשוטה, מגנטים ופי פטל. ה- Raspberry Pi משמש לשלוח לך הודעות טקסט או לשלוח לך מייל כאשר הדלת נפתחת! יש צורך בחומרים (קישורים כלולים): Raspberry Pi (הנה הערכה בה השתמשנו) Switch ReedNeodymiu
אזעקת דלתות Arduino עם התראות טקסט: 14 שלבים (עם תמונות)
אזעקת דלתות Arduino עם התראות טקסט: זוהי אזעקת דלת מבוססת Arduino המשתמשת במתג קנה מגנטי כדי לקבוע את מצב הדלת ויש לה אזעקה קולית והתראה מבוססת הודעת טקסט