جدول المحتويات:
- الخطوة الأولى: برمجة ATTINY 85
- الخطوة الثانية: تحميل البرنامج على ATTINY85
- الخطوة 3: تشغيل البرنامج الخاص بك
- الخطوة 4: الخاتمة
فيديو: تنبيهات درجة حرارة الرسائل النصية القصيرة من ATTINY85 و A1 GSM: 5 خطوات
2024 مؤلف: John Day | [email protected]. آخر تعديل: 2024-01-30 07:39
يوضح لك هذا التوجيه كيفية التقاط درجة الحرارة من مستشعر درجة حرارة بسيط وإرسالها عبر رسالة نصية قصيرة إلى هاتفك المحمول. لتبسيط الأمور ، أرسل درجة الحرارة بفاصل زمني محدد ، لكنني أظهر أيضًا كيف يمكن القيام بذلك فقط عن طريق الاستثناء / التنبيهات. تكلفة الجهاز منخفضة للغاية ، أقل من 10 دولارات ، على الرغم من وجود تكاليف الرسائل القصيرة المتكررة التي يجب مراعاتها.
يتم تنفيذ الرفع الثقيل بواسطة 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 بيانات درجة الحرارة من مستشعر مقياس الحرارة - Dallas 18B20- ثم يرسل البيانات والأوامر عن طريق الاتصال التسلسلي إلى وحدة A6 GSM التي ترسلها بعد ذلك في صورة رسالة نصية قصيرة إلى هاتفك المحمول / الهاتف الذكي.
هذا ما تحتاجه:
1. USBASP المسلسل / محول USB.
2. ATTINY 85.
3. إصدار الوحدة النمطية AI-Thinker A6 GSM 6 (مع شريحة SIM بها أرصدة SMS).
4. 3.3v امدادات الطاقة اللوح ل ATTINY85.
5. 3.3.v USB امدادات الطاقة لوحدة AI-Thinker A6 GSM.
6. جهاز استشعار درجة حرارة دالاس 18B20..
7. 4.7 كيلو المقاوم لجهاز الاستشعار 18B20.
8. اللوح والكابلات.
9. Arduino IDE (لقد استخدمت الإصدار 1.8.5 لهذا الغرض).
10. كمبيوتر محمول Windows X (كنت أستخدم الإصدار 10) مع منفذ USB مجاني.
الخطوة الأولى: برمجة ATTINY 85
إليك رمز Arduino IDE (سيتعين عليك تغيير رقم الهاتف الذي تريد إرسال الرسائل القصيرة إليه.)
# تضمين # تضمين # تضمين
// *** // *** حدد دبابيس RX و TX. اختر أي اثنين من // *** دبابيس غير مستخدمة. حاول تجنب D0 (pin 5) // *** و D2 (pin 7) إذا كنت تخطط لاستخدام I2C. // *** #define RX 3 // *** D3، Pin 2 #define TX 4 // *** D4، Pin 3
// *** // *** تحديد المنفذ التسلسلي المستند إلى البرنامج. استخدام // *** name 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 ميجا هرتز داخلي
// *** // *** الدبوس الذي يتصل به سلك بيانات OneWire // ***. // *** #define ONE_WIRE_BUS 1
// *** // *** قم بإعداد مثيل oneWire للتواصل مع أي أجهزة OneWire // *** (وليس فقط دوائر متكاملة لدرجة الحرارة Maxim / Dallas). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS) ؛
// *** // *** قم بتمرير مرجعنا السلكي إلى درجة حرارة دالاس. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire) ؛
إعداد باطل () {// *** // *** تهيئة المنفذ التسلسلي // *** mySerial.begin (115200) ؛ تأخير (60000) ؛
// *** بدء تشغيل المكتبة. _sensors.begin () ، }
حلقة فارغة() {
// *** // *** احصل على درجة الحرارة الحالية واعرضها. // *** _sensors.requestTemperatures () ، تأخير (2000) ؛ مزدوج tempC = _sensors.getTempCByIndex (0) ، مزدوج tempF = _sensors.getTempFByIndex (0) ، // تحقق من وجود أخطاء - في بعض الأحيان عند البداية ، تظهر درجة الحرارة على أنها 85 درجة مئوية
if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC، "Too warm")؛}}
SMS_temp باطل (mytemp مزدوج ، سلسلة myalert) {mySerial.println ("AT + CMGF = 1") ؛ // ضبط على تأخير وضع الرسائل القصيرة (1000) ؛ mySerial.println ("AT + CMGF = 1") ؛ // ضبط على تأخير وضع الرسائل القصيرة (1000) ؛ //mySerial.println("AT+CMGS=\"+YOUR NUMBER / "") ؛ // تعيين رقم الهاتف (ملفوف بعلامات اقتباس مزدوجة) تأخير (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
دالاس درجة الحرارة
بعد ذلك ، قم بتكوين دبابيس RX و TX على ATTINY85 الذي تحتاجه للاتصال بـ A1 Thinker. يحتوي ATTINY 85 على 8 دبابيس ، أربعة على كل جانب ومحاذاة باستخدام النقطة الموجودة على السطح كمرجع. يوجد الدبوس 1 أو دبوس إعادة الضبط بجانب النقطة النقطة.
(في هذه الحالة اخترت Pin2 و 3 - هذان على نفس الجانب مثل دبوس RESET الموجود بجانب النقطة على سطح ATTINY 85. الدبوس 2 هو الدبوس التالي على طول دبوس RESET بينما الدبوس 3 بين Pin 2 والأرض)
بعد ذلك ، عليك تكوين مستشعر درجة الحرارة -
#define ONE_WIRE_BUS 1
OneWire _oneWire = OneWire (ONE_WIRE_BUS) ،
DallasTemperature _sensors = DallasTemperature (& _ oneWire) ؛
بعد ذلك قم بإعداد المنفذ التسلسلي للبرنامج
mySerial.begin (115200) ؛
تأخير (60000) ؛
ثم استدعاء المستشعرات بـ _sensors.begin () ؛
بعد ذلك ، هناك الحلقة ، التي تستقصي في وقت محدد مسبقًا ، وتسجل درجة الحرارة وترسل رسالة / تنبيهًا اعتمادًا على القيمة. وهي تستخدم وظيفة SMS_temp وهي أيضًا المكان الذي تحدد فيه توقيت الحلقة
حلقة باطلة () {sensors.requestTemperatures () ؛ تأخير (2000) ؛
مزدوج tempC = _sensors.getTempCByIndex (0) ،
مزدوج tempF = _sensors.getTempFByIndex (0) ،
إذا (درجة الحرارة <= 14) {SMS_temp (tempC، "DANGEROUSLY Cold")؛}
إذا (tempC> 14 && tempC <= 18) {SMS_temp (tempC، "Quite Cold")؛}
إذا (tempC> 18 && tempC <23) {SMS_temp (tempC، "Temp Just right")؛}
إذا (tempC> = 23 && error_temperature) {SMS_temp (tempC، "Too warm")؛}
}
==============
بعد ذلك ، قم بإعداد Arduino IDE للتحضير للتحميل إلى ATTINY85.
عدد من الأشياء التي يجب ملاحظتها
1- إذا لم يكن لديك عائلة لوحات ATTINY ، أضف عنوان url التالي https://raw.githubusercontent.com/damellis/attiny/… في ملف / تفضيلات / عنوان URL لمدير اللوحات الإضافية ،
بعد ذلك ، داخل Arduio IDE ، انقر فوق Tools / Board / Board Manager وابحث عن ATTINY وقم بتثبيت اللوحة الجديدة. قم بتغيير المعالج إلى Attiny85.
الخطوة الثانية: تحميل البرنامج على ATTINY85
أيضًا ، راجع التعليمات السابقة الخاصة بي حول هذا -
يحتوي ATTINY85 على وضعين ، وضع البرمجة والعمليات ، على التوالي. وضع البرمجة أولاً ، حدد المسامير الموجودة على ATTINY85. للقيام بذلك ، ابحث عن الشق الصغير على سطح الشريحة بجانب دبوس RST / RESET. باستخدام هذا كنقطة مرجعية ، يمكنك تحديد بقية الدبابيس. يتم توفير كل هذه المعلومات في ورقة بيانات A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At …
يجب توصيل USBasp و ATTINY85 كما هو موضح في الصورة أعلاه.
بعد ذلك ، على Arduino IDE ، اضبط المبرمج على USBasp والتردد على 8 ميجا هرتز داخلي.
قم بتوصيل USBasp بمنفذ USB على الكمبيوتر المحمول الخاص بك (في Windows 10 ، إذا لم يكن لديك برنامج تشغيل USBasp ، فاستخدم Zadig وفقًا لموقع الويب
بعد ذلك ، مع توصيل USBasp ، حدد من Arduino IDE Sketch / Upload ونأمل أن ترى تقدم التحميل موضحًا بأحرف حمراء من Arduino IDE وينتهي مع avrdude. شكرا لك.
أي أخطاء في هذه المرحلة عادة ما تكون مرتبطة بكابلات مفكوكة أو برنامج تشغيل خاطئ.
الخطوة 3: تشغيل البرنامج الخاص بك
أولاً ، شيء عن مستشعر مقياس الحرارة دالاس 18b20. يحتوي على 3 دبابيس ، أرضي (G) ، بيانات (D) و VCC كما هو موضح في الصورة أعلاه. للتشغيل ، يتطلب توصيل D و VCC بمقاوم 4.7 كيلو. 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 ، فهناك حلول أكثر ملاءمة.
لم أقم بتغطية وظائف أخرى مثل إرسال رسالة نصية قصيرة إلى الهاتف لبدء تسجيل درجة الحرارة / الإرسال وما إلى ذلك.
موصى به:
إرسال الرسائل القصيرة إذا تم اكتشاف دخان (Arduino + GSM SIM900A: 5 خطوات
إرسال الرسائل القصيرة إذا تم اكتشاف دخان (Arduino + GSM SIM900A: مرحبًا بالجميع! في أول توجيه لي ، سأقوم بإصدار إنذار بالغاز يرسل رسالة إلى المستخدم في حالة اكتشاف التلوث. سيكون هذا نموذجًا أوليًا بسيطًا باستخدام Arduino و GSM و Electrochemical. جهاز استشعار الدخان. يمكن أن يمتد هذا في المستقبل إلى
إرسال الرسائل القصيرة مع اردوينو -- وحدة TC35 GSM: 5 خطوات
إرسال الرسائل القصيرة مع اردوينو || وحدة TC35 GSM: في هذا المشروع الصغير ، سأوضح لك كيفية استخدام وحدة TC35 GSM بشكل صحيح وكيفية استخدامها مع Arduino Uno لإرسال رسالة نصية قصيرة معها
كيفية استخدام SIM800L لإرسال الرسائل القصيرة والتحكم في الترحيل عن طريق الرسائل القصيرة: 3 خطوات
كيفية استخدام SIM800L لإرسال الرسائل القصيرة والتحكم في الترحيل عن طريق الرسائل القصيرة: الوصف: يوضح هذا البرنامج التعليمي كيفية استخدام SIM800L لإرسال الرسائل القصيرة واستقبال الرسائل القصيرة للتحكم في الترحيل. وحدة SIM800L صغيرة الحجم ويمكن استخدامها للتفاعل مع Arduino لإرسال الرسائل القصيرة واستقبال الرسائل القصيرة والمكالمات واستقبال المكالمات وغير ذلك. في هذا البرنامج التعليمي ،
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي - احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: 6 خطوات
ESP8266 مراقبة درجة حرارة Nodemcu باستخدام DHT11 على خادم ويب محلي | احصل على درجة حرارة الغرفة ورطوبتها على متصفحك: مرحبًا يا شباب اليوم سنصنع الرطوبة & amp؛ نظام مراقبة درجة الحرارة باستخدام ESP 8266 NODEMCU & amp؛ جهاز استشعار درجة الحرارة DHT11. سيتم الحصول على درجة الحرارة والرطوبة من مستشعر DHT11 & amp؛ يمكن رؤيته على متصفح أي صفحة ويب ستتم إدارتها
أسهل الطرق لطباعة الرسائل النصية أو محادثات الرسائل من IPhone: 3 خطوات
أسهل الطرق لطباعة الرسائل النصية أو محادثات الرسائل من IPhone: مرحبًا بالجميع ، في هذا Instructable ، سأوضح لك بعض أسهل الطرق لطباعة الرسائل النصية من جهاز iPhone الخاص بك ، لذا فإن العديد من الرسائل المهمة التي نتلقاها في حياتنا الآن هي لا تأتي عن طريق الرسائل أو حتى بالبريد الإلكتروني ، ولكن من خلال النص