Mundarija:

ATTINY85 va A1 GSM -dan SMS matnli templi ogohlantirishlar: 5 qadam
ATTINY85 va A1 GSM -dan SMS matnli templi ogohlantirishlar: 5 qadam

Video: ATTINY85 va A1 GSM -dan SMS matnli templi ogohlantirishlar: 5 qadam

Video: ATTINY85 va A1 GSM -dan SMS matnli templi ogohlantirishlar: 5 qadam
Video: ATtiny85 DIY 433MHz Transceiver with Arduino Uno | Remote Data Transfer | Receiver Tutorial 2024, Noyabr
Anonim
ATTINY85 va A1 GSM -dan matnli matnli xabarlar
ATTINY85 va A1 GSM -dan matnli matnli xabarlar

Bu ko'rsatma sizga oddiy harorat sensori yordamida haroratni qanday tutish va uni mobil telefoningizga sms orqali yuborish yo'llarini ko'rsatadi. Ishlarni soddalashtirish uchun men haroratni belgilangan vaqt oralig'ida jo'nataman, lekin men buni faqat istisno / ogohlantirish orqali qanday qilish mumkinligini ko'rsataman. Uskunaning narxi juda past, 10 dollardan kam, garchi smsning takroriy xarajatlari hisobga olinsa.

Og'ir yuk ko'tarish oddiy, ammo kuchli ATTINY 85 tomonidan amalga oshiriladi, u harorat ma'lumotlarini yozib oladi, so'ngra AI-Thinker A6 GSM moduli orqali SMS yuboriladi.

Qisqasi, siz ATTINY85 kodini Arduino IDE muhitida yozasiz va USBASP ketma -ket/USB konvertori yordamida ATTINY85 da yoqasiz. Men avvalgi ikkita darslikda AI-Thinker A6 GSM moduli va Arduino IDE-ni sozlashni ko'rib chiqdim. Bu erda ATTINY va A6 GSM modullarini ketma -ket aloqa yordamida bog'lash farq qiladi.

www.instructables.com/id/How-to-Send-an-SM…https://www.instructables.com/id/15-Dollar-Attiny8…

Dasturlashdan so'ng, ATTINY termometr sensori - Dallas 18B20- dan harorat ma'lumotlarini o'qiydi va keyin ma'lumotlarni va buyruqlarni A6 GSM moduliga ketma -ket ulanish orqali yuboradi, so'ngra uni mobil telefoningizga / matnli telefoningizga SMS sifatida yuboradi.

Mana sizga nima kerak:

1. USBASP ketma -ket/USB konvertori.

2. ATTINY 85.

3. AI-Thinker A6 GSM modulining 6-versiyasi (SMS-kreditlari bo'lgan sim bilan).

4. ATTINY85 uchun 3.3v non paneli quvvat manbai.

5. AI-Thinker A6 GSM moduli uchun 3.3.v USB quvvat manbai.

6. Dallas 18B20 harorat sensori.

7. 18B20 sensori uchun 4,7k qarshilik.

8. Non paneli va kabellar.

9. Arduino IDE (men buning uchun 1.8.5 versiyasini ishlatardim).

10. Bepul usb portli Windows X noutbuk (men 10 -versiyadan foydalanardim).

1 -qadam: ATTINY 85 dasturlash

Bu erda Arduino IDE kodi (SMS yubormoqchi bo'lgan telefon raqamini o'zgartirish kerak bo'ladi.)

#qo'shish #qo'shish #qo'shish

// *** // *** RX va TX pinlarini aniqlang. Foydalanilmaydigan har qanday ikkita // *** pinni tanlang. Agar I2C dan foydalanmoqchi bo'lsangiz, D0 (pin 5) // *** va D2 (pin 7) dan qochishga harakat qiling. // *** #dex RX 3 // *** D3, 2 -pin #dexine TX 4 // *** D4, 3 -pin

// *** // *** Dasturiy ta'minotga asoslangan ketma -ket portni aniqlang. // *** Serial nomini ishlatib, kodni apparatga asoslangan ketma -ketlikni qo'llab -quvvatlaydigan boshqa // *** platformalarida ishlatish mumkin. Uskuna ketma -ketligini qo'llab -quvvatlaydigan // *** chiplarida, faqat bu satrga *** *** izoh bering. // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** ATtiny25/45/85 ni belgilash: // *** 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 chastotasi ichki 8 MGts da o'rnatilgan

// *** // *** OneWire ma'lumotlari // *** simlari ulangan pin. // *** #ONE_WIRE_BUSni aniqlang 1

// *** // *** OneWire // *** har qanday qurilmalari bilan muloqot qilish uchun oneWire misolini o'rnating (faqat Maksim/Dallas haroratli IC) emas. // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** Dallasdagi harorat haqida OneWire ma'lumotnomamizdan o'ting. // *** Dallas harorati _sensorlari = Dallas harorati (& _ oneWire);

void setup () {// *** // *** Serial portini ishga tushirish // *** mySerial.begin (115200); kechikish (60000);

// *** Kutubxonani ishga tushiring. _sensors.begin (); }

void loop () {

// *** // *** Hozirgi haroratni oling va uni ko'rsating. // *** _sensors.requestTemperatures (); kechikish (2000); er -xotin tempC = _sensors.getTempCByIndex (0); er -xotin tempF = _sensors.getTempFByIndex (0); // xatolarni tekshiring - ba'zida boshida harorat 85C sifatida ko'rsatiladi

if (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Juda issiq");}}

bekor SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // SMS rejimining kechiktirilishi (1000) ga sozlangan; mySerial.println ("AT+CMGF = 1"); // SMS rejimining kechiktirilishi (1000) ga sozlangan; //mySerial.println("AT+CMGS=\"+SIZNING NUMBER / ""); // telefon raqamini o'rnating (ikki tirnoq bilan o'ralgan) kechiktirish (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); kechikish (1000); mySerial.write (0x1A); // xabar kechikishining oxiriga ctrl+z yuboradi (1000); mySerial.write (0x0D); // Hex kechikishida aravaning qaytishi (1000); mySerial.write (0x0A); kechikish (1000000); // 17 daqiqa - o'z ilovangizga moslashtiring}

Arduino IDE muhitini oching - men buni qanday hal qilishni batafsil aytib berdim.

Sizga quyidagi kutubxonalar kerak bo'ladi

SoftwareSerial.h

OneWire.h

Dallas harorati.h

Keyin, A1 Thinker -ga ulanishingiz kerak bo'lgan ATTINY85 -dagi RX va TX pinlarini sozlang. ATTINY 85 -da 8 ta pin bor, ularning har birida to'rttasi va mos yozuvlar yuzasidagi nuqta yordamida tekislanadi. Pin 1 yoki RESET PIN -kodi nuqta yonida.

(bu holda men Pin2 va 3 ni tanladim - bu ATTINY 85 yuzasidagi nuqta yonidagi RESET pinining bir tomonida. 2 -pin - RESET pinidan keyingi pin, 3 -pin esa Pin o'rtasida. 2 va GROUND)

Keyin harorat sensori sozlanishi kerak.

#ONE_WIRE_BUSni aniqlang 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperatur _sensors = DallasTemperaturasi (& _ oneWire);

Keyin dasturiy ta'minotning ketma -ket portini o'rnating

mySerial.begin (115200);

kechikish (60000);

va keyin sensorlarni _sensors.begin () bilan chaqiring;

Keyinchalik, oldindan belgilangan vaqtda so'rov o'tkazadigan, haroratni yozib oladigan va qiymatga qarab xabar / ogohlantirish yuboradigan pastadir mavjud. Bu SMS_temp funktsiyasidan foydalanadi, u erda siz ham tsiklning vaqtini belgilaysiz

void loop () {sensors.requestTemperatures (); kechikish (2000);

er -xotin tempC = _sensors.getTempCByIndex (0);

er -xotin tempF = _sensors.getTempFByIndex (0);

agar (tempC <= 14) {SMS_temp (tempC, "Xavfli sovuq");}

agar (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Juda sovuq");}

if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Harorat to'g'ri");}

agar (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Juda issiq");}

}

==============

Keyin ATTINY85 -ga yuklashga tayyorgarlik ko'rish uchun Arduino IDE -ni o'rnating.

E'tibor qilish kerak bo'lgan bir qator narsalar

1- Agar sizda ATTINY taxtalar oilasi bo'lmasa, Fayl/Tartiblar/Qo'shimcha taxtalar menejeri URL manziliga https://raw.githubusercontent.com/damellis/attiny/… manzilini kiriting, Keyin, Arduio IDE -da Tools/Board/Board Manager -ni bosing va ATTINY -ni qidiring va yangi taxtani o'rnating. Protsessorni Attiny85 ga o'zgartiring.

2 -qadam: Dasturni ATTINY85 -ga yuklash

Dasturni ATTINY85 -ga yuklash
Dasturni ATTINY85 -ga yuklash

Bundan tashqari, bu boradagi oldingi ko'rsatmalarni ko'rib chiqing-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 mos ravishda dasturlash va operatsion rejimining ikkita rejimiga ega.1. Dasturlash tartibi Birinchidan, ATTINY85 pinlarini aniqlang. Buni amalga oshirish uchun chip yuzasida RST/RESET pinining yonidagi kichik chuqurchani toping. Buni mos yozuvlar nuqtasi sifatida ishlatib, qolgan pinlarni aniqlashingiz mumkin. Bu ma'lumotlarning barchasi A85 ma'lumot varaqasida keltirilgan -https://www.microchip.com/downloads/en/DeviceDoc/At…

USBasp va ATTINY85 yuqoridagi rasmda ko'rsatilgandek ulangan bo'lishi kerak.

Keyin, Arduino IDE -da, dasturchini USBasp -ga va chastotani ichki 8 MGts -ga o'rnating.

USBasp -ni noutbukning USB portiga ulang (Windows 10 -da, agar USBasp drayveri bo'lmasa, https://www.fischl.de/usbasp/ saytida Zadig -dan foydalaning)

Keyin USBasp ulangan bo'lsa, Arduino IDE Sketch/upload -dan tanlang va umid qilamanki, siz yuklash jarayonini Arduino IDE -ning qizil harflari bilan ko'rsatilgan va avrdude bilan tugaganini ko'rasiz. Rahmat.

Ushbu bosqichdagi har qanday xatolar odatda bo'sh kabellar yoki noto'g'ri haydovchi bilan bog'liq.

3 -qadam: Dasturingizni ishga tushiring

Sizning dasturingizni ishga tushirish
Sizning dasturingizni ishga tushirish
Sizning dasturingizni ishga tushirish
Sizning dasturingizni ishga tushirish
Sizning dasturingizni ishga tushirish
Sizning dasturingizni ishga tushirish

Birinchidan, Dallas 18b20 termometr sensori haqida. Yuqoridagi rasmda ko'rsatilgandek, 3 ta pin, Ground (G), ma'lumotlar (D) va VCC mavjud. Ishlash uchun u D va VCC ni 4,7k rezistor bilan ulashni talab qiladi. G va VCC tegishli qutblarga ulangan, D esa ATTINY 85, pin - [6] PB1 ga ulangan, kodda ko'rsatilgan.

Keyin ATTINY -ni A6 GSM -ga quyidagicha ulang (va yuqorida ko'rsatilgan)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

va A6 -ning o'zida, A6 PWR A6 VCC 5.0A6 RST A6 GND (Erga hali ulanmang !!!!!)

Endi ikkala qurilmani ham quvvatlantiring va bir necha soniyadan so'ng A6 RST piniga ulangan simi bilan vaqtincha A6 topraklama piniga teging. A6 o'chadi va yonadi va umid qilamanki, siz tez orada telefoningizga harorat haqidagi ma'lumotlarni olasiz.

4 -qadam: Xulosa

Bu ko'rsatma juda oddiy ko'rinishi mumkin, lekin g'oya arzon komponentlar yordamida nimaga erishish mumkinligini tasvirlashdan iborat. Shubhasiz, agar sizda Wi-Fi yoki BLE uyasiga kirish imkoni bo'lsa, unda yanada to'g'ri echimlar mavjud.

Men boshqa funktsiyalarni qamrab olmadim, masalan, telefonga SMS yuborish, haroratni yozish / uzatish.

Tavsiya: