فهرست مطالب:

پیامک هشدارهای پیام کوتاه از ATTINY85 و A1 GSM: 5 مرحله
پیامک هشدارهای پیام کوتاه از ATTINY85 و A1 GSM: 5 مرحله

تصویری: پیامک هشدارهای پیام کوتاه از ATTINY85 و A1 GSM: 5 مرحله

تصویری: پیامک هشدارهای پیام کوتاه از ATTINY85 و A1 GSM: 5 مرحله
تصویری: ١٠ حقیقت جالب درباره پیام کوتاه-SMS 2024, نوامبر
Anonim
پیامک هشدارهای پیام کوتاه از ATTINY85 و A1 GSM
پیامک هشدارهای پیام کوتاه از ATTINY85 و A1 GSM

این دستورالعمل به شما نشان می دهد که چگونه می توانید دما را از طریق یک سنسور ساده دما ثبت کرده و با پیام کوتاه به تلفن همراه خود ارسال کنید. برای ساده تر کردن کارها ، من دما را در یک بازه زمانی مشخص ارسال می کنم اما همچنین نشان می دهم که چگونه می توان این کار را تنها با استثنا / هشدارها انجام داد. سخت افزار بسیار کم هزینه است ، کمتر از 10 دلار ، اگرچه هزینه های اس ام اس مکرر باید در نظر گرفته شود.

بلند کردن سنگین توسط ATTINY 85 ساده اما قدرتمند انجام می شود که داده های دما را ضبط می کند و سپس پیامک را برای ارسال از طریق ماژول AI-Thinker A6 GSM انجام می دهد.

به طور خلاصه ، شما کد ATTINY85 را در محیط Arduino IDE می نویسید و با استفاده از یک مبدل سریال USBASP/USB روی ATTINY85 می سوزانید. من راه اندازی ماژول AI-Thinker A6 GSM و Arduino IDE را در دو آموزش قبلی پوشش داده ام. آنچه در اینجا متفاوت است ، رابط ماژول ATTINY و A6 GSM با استفاده از ارتباطات سریال است.

www.instructables.com/id/How-to-Sand-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 (با یک سیم کارت که دارای اعتبار SMS است).

4. منبع تغذیه ورق 3.3 ولت برای ATTINY85.

5. منبع تغذیه USB 3.3.v برای ماژول 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 آمده است (شما باید شماره تلفن مورد نظر خود را برای ارسال پیامک تغییر دهید.)

#شامل #شامل #شامل شود

// *** // *** پین های RX و TX را تعریف کنید. هر دو پین // *** را که استفاده نشده انتخاب کنید. اگر قصد استفاده از I2C را دارید از D0 (پین 5) // *** و D2 (پین 7) اجتناب کنید. // *** #define RX 3 // *** D3 ، Pin 2 #define TX 4 // *** D4 ، Pin 3

// *** // *** پورت سریال مبتنی بر نرم افزار را تعریف کنید. استفاده از نام // *** سریال به طوری که کد را می توان در سایر سیستم عامل های // *** که از سریال های سخت افزاری پشتیبانی می کنند استفاده کرد. در // *** تراشه هایی که از سری سخت افزار پشتیبانی می کنند ، فقط // *** در این خط نظر دهید. // ***

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 // *** روی آن متصل است. // *** #تعریف ONE_WIRE_BUS 1

// *** // *** برای برقراری ارتباط با هر دستگاه OneWire // *** (نه فقط ICs دما Maxim/Dallas) یک نمونه OneWire تنظیم کنید. // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS) ؛

// *** // *** مرجع oneWire ما را به دمای دالاس منتقل کنید. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire)؛

void setup () {// *** // *** مقداردهی اولیه پورت سریال // *** mySerial.begin (115200) ؛ تاخیر (60000) ؛

// *** راه اندازی کتابخانه _sensors.begin ()؛ }

حلقه خالی () {

// *** // *** دمای فعلی را دریافت کرده و نمایش دهید. // *** _sensors.requestTemperatures ()؛ تاخیر (2000) ؛ double tempC = _sensors.getTempCByIndex (0) ؛ double tempF = _sensors.getTempFByIndex (0) ؛ // بررسی خطاها - گاهی اوقات در ابتدا ، دما 85 درجه سانتیگراد نشان داده می شود

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC ، "خیلی گرم")؛}}

SMS_temp باطل (mytemp دوگانه ، String 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) ؛ // حمل و نقل در تأخیر Hex (1000) ؛ mySerial.write (0x0A) ؛ تاخیر (1000000) ؛ // 17 دقیقه - متناسب با برنامه شخصی خود تنظیم کنید}

محیط Arduino IDE را باز کنید - من در مورد دستورالعمل قبلی خود که قبلاً به آن اشاره کردم ، چگونه می توانم شما را در این مورد به طور مفصل پیدا کنم.

شما به کتابخانه های زیر نیاز دارید

SoftwareSerial.h

OneWire.h

DallasTemperature.h

در مرحله بعد ، پین های RX و TX را در ATTINY85 که برای اتصال با A1 Thinker نیاز دارید پیکربندی کنید. ATTINY 85 دارای 8 پین ، چهار پین در هر طرف است و با استفاده از نقطه روی سطح به عنوان مرجع تراز می شود. پین 1 یا پین RESET در کنار نقطه است.

(در این مورد من Pin2 و 3 را انتخاب کردم - اینها در کنار پین RESET که کنار نقطه روی سطح ATTINY 85 است ، قرار دارند. پین 2 پین بعدی در کنار پین RESET است در حالی که پین 3 بین پین است 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 loop () {sensors.requestTemperatures ()؛ تاخیر (2000) ؛

double tempC = _sensors.getTempCByIndex (0) ؛

double 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 File/Preferences/Additional Boards Manager اضافه کنید ،

سپس ، در Arduio IDE بر روی Tools/Board/Board Manager کلیک کرده و ATTINY را جستجو کرده و برد جدید را نصب کنید. پردازنده را به Attiny85 تغییر دهید.

مرحله 2: بارگذاری برنامه در ATTINY85

بارگذاری برنامه در ATTINY85
بارگذاری برنامه در ATTINY85

همچنین ، به دستورالعمل قبلی من در این مورد مراجعه کنید-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 به ترتیب دارای دو حالت برنامه نویسی و حالت عملکرد است. حالت برنامه نویسی ابتدا پین های ATTINY85 را مشخص کنید. برای انجام این کار ، شکاف کوچکی را در سطح تراشه که در کنار پین RST/RESET قرار دارد پیدا کنید. با استفاده از این به عنوان یک نقطه مرجع ، می توانید بقیه پین ها را شناسایی کنید. همه این اطلاعات در برگه اطلاعات A85 ارائه شده است -https://ww1.microchip.com/downloads/fa/DeviceDoc/At…

USBasp و ATTINY85 باید مطابق تصویر بالا به هم متصل شوند.

بعد ، در Arduino IDE ، برنامه نویس را روی USBasp و فرکانس را روی 8 مگاهرتز داخلی تنظیم کنید.

USBasp را به درگاه USB لپ تاپ خود وصل کنید (در ویندوز 10 ، اگر درایور USBasp ندارید از Zadig طبق وب سایت https://www.fischl.de/usbasp/ استفاده کنید)

در مرحله بعد ، با USBasp متصل شده ، از Arduino IDE Sketch/upload انتخاب کنید و امیدوارم پیشرفت بارگذاری را که با حروف قرمز رنگ IDE آردوینو نشان داده شده و با avrdude done نشان داده شده است مشاهده کنید. متشکرم.

هر گونه خطایی در این مرحله معمولاً با شل بودن کابل ها یا درایور اشتباه همراه است.

مرحله 3: اجرای برنامه

اجرای برنامه شما
اجرای برنامه شما
اجرای برنامه شما
اجرای برنامه شما
اجرای برنامه شما
اجرای برنامه شما

اول ، چیزی در مورد سنسور دماسنج دالاس 18b20. دارای 3 پین ، Ground (G) ، data (D) و VCC همانطور که در تصویر بالا نشان داده شده است. برای عملکرد ، نیاز به پل زدن D و VCC با مقاومت 4.7k دارد. G و VCC به قطب های مربوطه متصل می شوند در حالی که D به ATTINY 85 ، پین - [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 دسترسی دارید ، راه حل های مناسب تری وجود دارد.

من عملکردهای دیگر مانند ارسال پیام کوتاه به تلفن برای شروع ضبط / انتقال دما و غیره را پوشش ندادم.

توصیه شده: