Mündəricat:

ATTINY85 və A1 GSM -dən SMS Mətn Temp Uyarıları: 5 addım
ATTINY85 və A1 GSM -dən SMS Mətn Temp Uyarıları: 5 addım

Video: ATTINY85 və A1 GSM -dən SMS Mətn Temp Uyarıları: 5 addım

Video: ATTINY85 və A1 GSM -dən SMS Mətn Temp Uyarıları: 5 addım
Video: Начните использовать плату Arduino Digispark USB ATtiny85 с примером мигания и реле | Рободжакс 2024, Iyul
Anonim
ATTINY85 və A1 GSM -dən SMS Mətn Temp Uyarıları
ATTINY85 və A1 GSM -dən SMS Mətn Temp Uyarıları

Bu təlimat, temperaturun sadə bir sensordan necə tutulacağını və sms mətni ilə cib telefonunuza göndərilməsini göstərir. İşləri asanlaşdırmaq üçün istiliyi müəyyən bir vaxt aralığında göndərirəm, ancaq bunun yalnız istisna / siqnallarla necə edilə biləcəyini də göstərirəm. Cihazın dəyəri çox aşağıdır, 10 dollardan azdır, baxmayaraq ki, təkrarlanan sms xərcləri nəzərə alınmalıdır.

Ağır yük qaldırma, temperatur məlumatlarını tutan və sonra AI-Thinker A6 GSM modulu vasitəsilə göndəriləcək SMS-ləri işə salan sadə, lakin güclü ATTINY 85 tərəfindən həyata keçirilir.

Bir sözlə, Arduino IDE mühitində ATTINY85 kodunu yazırsınız və USBASP seriyalı/USB çeviricisini istifadə edərək ATTINY85 -də yazırsınız. AI-Thinker A6 GSM modulunun və Arduino IDE-nin qurulmasını əvvəlki iki dərsdə əhatə etmişəm. ATTINY və A6 GSM modulunu serial rabitə vasitəsi ilə əlaqələndirmək burada fərqlidir.

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

Proqramlaşdırıldıqdan sonra, ATTINY bir termometr sensoru - Dallas 18B20 -dən temperatur məlumatlarını oxuyur və sonra məlumatları və əmrləri A6 GSM moduluna serial bağlantısı ilə göndərir və sonra onu mobil / ağıllı telefonunuza SMS olaraq göndərir.

İşdə sizə lazım olan budur:

1. USBASP serial/USB çeviricisi.

2. ATTINY 85.

3. AI-Thinker A6 GSM modulunun 6-cı versiyası (SMS krediti olan sim ilə).

4. ATTINY85 üçün 3.3v çörək taxtası enerji təchizatı.

5. AI-Thinker A6 GSM modulu üçün 3.3.v USB enerji təchizatı.

6. Dallas 18B20 temperatur sensoru.

7. 18B20 sensoru üçün 4.7k rezistor.

8. Breadboard və kabellər.

9. Arduino IDE (bunun üçün 1.8.5 versiyasını istifadə etdim).

10. Pulsuz bir USB portu olan Windows X noutbuku (10 -cu versiyadan istifadə etdim).

Addım 1: ATTINY 85 proqramlaşdırılması

Budur Arduino IDE kodu (SMS göndərmək istədiyiniz telefon nömrəsini dəyişdirməlisiniz.)

#daxil edin #daxil edin #daxil edin

// *** // *** RX və TX sancaqlarını təyin edin. İstifadə edilməyən hər hansı iki // *** sancağı seçin. I2C istifadə etməyi planlaşdırırsanız D0 (pin 5) // *** və D2 (pin 7) -dən qaçmağa çalışın. // *** #dexine RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Proqram əsaslı serial portunu təyin edin. Kodun hardware əsaslı serialları dəstəkləyən digər // *** platformalarında istifadə oluna bilməsi üçün // *** Serial adından istifadə edin. Donanım seriyasını dəstəkləyən // *** çiplərində, yalnız bu sətirdə *** *** şərh edin. // ***

SoftwareSerial mySerial = SoftwareSerial (RX, TX);

// *** // *** 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) // *** // Daxili 8 MHz -də ATTINY 85 tezliyi

// *** // *** OneWire məlumatları // *** telinin bağlı olduğu pin. // *** #ONE_WIRE_BUS -u müəyyən edin 1

// *** // *** OneWire // *** cihazları ilə ünsiyyət qurmaq üçün OneWire nümunəsi qurun (yalnız Maxim/Dallas temperatur IC -ləri deyil). // *** OneWire _oneWire = OneWire (ONE_WIRE_BUS);

// *** // *** OneWire istinadımızı Dallas Temperaturuna keçirin. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

void setup () {// *** // *** Serial portunu işə salın // *** mySerial.begin (115200); gecikmə (60000);

// *** Kitabxananı işə salın. _sensors.begin (); }

boşluq döngəsi () {

// *** // *** Cari temperaturu əldə edin və göstərin. // *** _sensors.requestTemperatures (); gecikmə (2000); ikiqat tempC = _sensors.getTempCByIndex (0); ikiqat tempF = _sensors.getTempFByIndex (0); // səhvləri yoxlayın - bəzən başlanğıcda temperatur 85C olaraq göstərilir

əgər (tempC 14 && tempC 18 && tempC = 23 && error_temperature) {SMS_temp (tempC, "Çox isti");}}

boş SMS_temp (double mytemp, String myalert) {mySerial.println ("AT+CMGF = 1"); // SMS rejimi gecikməsinə təyin et (1000); mySerial.println ("AT+CMGF = 1"); // SMS rejimi gecikməsinə təyin et (1000); //mySerial.println("AT+CMGS=\"+SİZİN SAYINIZ / ""); // telefon nömrəsini təyin edin (ikiqat tirnələrə bükülmüş) gecikmə (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); gecikmə (1000); mySerial.write (0x1A); // mesaj gecikməsinin ctrl+z sonunu göndərir (1000); mySerial.write (0x0D); // Hex gecikməsində Carriage Return (1000); mySerial.write (0x0A); gecikmə (1000000); // 17 dəqiqə - öz tətbiqinizə uyğun olaraq tənzimləyin}

Arduino IDE mühitini açın - əvvəllər bəhs etdiyim əvvəlki təlimatımda bunun ətrafında necə yol tapacağınızı ətraflı təsvir etmişəm.

Aşağıdakı kitabxanalara ehtiyacınız olacaq

SoftwareSerial.h

OneWire.h

Dallas temperaturu.h

Sonra, A1 Thinker ilə əlaqə qurmalı olduğunuz ATTINY85 -də RX və TX pinlərini konfiqurasiya edin. ATTINY 85 hər tərəfində dörd ədəd 8 sancağa malikdir və səthdəki nöqtədən istifadə edərək hizalanır. Pin 1 və ya RESET pin, nöqtənin yanında yerləşir.

(bu halda mən Pin2 və 3 seçdim - Bunlar ATTINY 85 səthindəki nöqtənin yanında olan RESET pinlə eyni tərəfdədir. Pin 2, RESET pinindən sonrakı pindir, Pin 3 Pin arasında 2 və GROUND)

Sonra, temperatur sensörünü konfiqurasiya etməlisiniz -

#ONE_WIRE_BUS -u təyin edin 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperatur (& _ oneWire);

Sonra proqram seriya portunu qurun

mySerial.begin (115200);

gecikmə (60000);

və sonra sensorları _sensors.begin () ilə çağırın;

Sonra, əvvəlcədən müəyyən edilmiş bir zamanda sorğu keçirən, temperaturu qeyd edən və dəyərdən asılı olaraq bir mesaj / xəbərdarlıq göndərən bir döngə var. SMS_temp funksiyasından istifadə edir, bu da döngənin vaxtını təyin edir

void loop () {sensors.requestTemperatures (); gecikmə (2000);

ikiqat tempC = _sensors.getTempCByIndex (0);

ikiqat tempF = _sensors.getTempFByIndex (0);

əgər (tempC <= 14) {SMS_temp (tempC, "DANGEROUSLY Soyuq");}

əgər (tempC> 14 && tempC <= 18) {SMS_temp (tempC, "Olduqca Soyuq");}

if (tempC> 18 && tempC <23) {SMS_temp (tempC, "Temp Just right");}

əgər (tempC> = 23 && error_temperature) {SMS_temp (tempC, "Çox isti");}

}

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

Sonra, ATTINY85 -ə yükləməyə hazırlaşmaq üçün Arduino IDE qurun.

Qeyd etmək lazım olan bir sıra şeylər

1- ATTINY lövhələr ailəniz yoxdursa, Fayl/Tercihlər/Əlavə Lövhələr İdarəçisi URL'sinə https://raw.githubusercontent.com/damellis/attiny/… daxil edin.

Daha sonra, Arduio IDE -də Tools/Board/Board Manager -ə vurun və ATTINY -i axtarın və yeni lövhəni quraşdırın. Prosessoru Attiny85 olaraq dəyişdirin.

Addım 2: Proqramı ATTINY85 -ə yükləyin

Proqramın ATTINY85 -ə yüklənməsi
Proqramın ATTINY85 -ə yüklənməsi

Həm də bu mövzuda əvvəlki təlimatlara baxın-https://www.instructables.com/id/15-Dollar-Attiny8…

ATTINY85 -in müvafiq olaraq proqramlaşdırma və əməliyyat rejimi olmaqla iki rejimi var. PROGRAMLAMA MODU Əvvəlcə ATTINY85 üzərindəki sancaqları müəyyənləşdirin. Bunu etmək üçün, RST/RESET pininin yanında olan çipin səthindəki kiçik çentikləri tapın. Bunu bir istinad nöqtəsi olaraq istifadə edərək, sancaqların qalan hissəsini təyin edə bilərsiniz. Bütün bu məlumatlar A85 məlumat vərəqində verilir -https://www.microchip.com/downloads/az/DeviceDoc/At…

USBasp və ATTINY85 yuxarıdakı şəkildə göstərildiyi kimi bağlanmalıdır.

Sonra Arduino IDE -də proqramçını USBasp -a və tezliyi daxili 8Mhz -ə qoyun.

USBasp -ı dizüstü kompüterinizin USB portuna qoşun (Windows 10 -da, USBasp sürücünüz yoxdursa, https://www.fischl.de/usbasp/ saytına uyğun olaraq Zadig istifadə edin)

Ardından, USBasp qoşulduqda Arduino IDE Sketch/upload -dən seçin və inşallah Arduino IDE -nin qırmızı hərfləri ilə göstərilən və avrdude ilə bitən yükləmə tərəqqisini görməli olacaqsınız. Çox sağ ol.

Bu mərhələdəki hər hansı bir səhv ümumiyyətlə boş kabellər və ya səhv sürücü ilə əlaqədardır.

Addım 3: Proqramınızı işə salın

Proqramınızı İşlətmək
Proqramınızı İşlətmək
Proqramınızı İşlətmək
Proqramınızı İşlətmək
Proqramınızı İşlətmək
Proqramınızı İşlətmək

Birincisi, Dallas 18b20 termometr sensoru haqqında bir şey. Yuxarıdakı şəkildə göstərildiyi kimi 3 pin, Ground (G), data (D) və VCC var. Əməliyyat üçün D və VCC -ni 4.7k rezistorla birləşdirmək lazımdır. G və VCC müvafiq dirəklərə bağlanır, D isə ATTINY 85, pin - [6] PB1 -ə kodda konfiqurasiya edildiyinə bağlıdır.

Sonra, ATTINY -ni A6 GSM -ə aşağıdakı kimi bağlayın (və yuxarıda göstərilmişdir)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

və A6 -nın özündə

A6 PWR A6 VCC 5.0A6 RST A6 GND (Hələ yerə qoşulmayın !!!!!)

İndi hər iki cihazı da yandırın və bir neçə saniyədən sonra A6 RST pininə qoşulmuş kabel ilə müvəqqəti olaraq A6 torpaq pininə toxunun. A6 sönəcək və açılacaq və inşallah tezliklə telefonunuzdakı temperatur məlumatlarını almalısınız.

Addım 4: Nəticə

Bu təlimat olduqca sadə görünə bilər, amma fikir aşağı qiymətli komponentlərlə nəyə nail ola biləcəyinizi göstərməkdir. Aydındır ki, wi-fi və ya BLE mərkəzinə çıxışınız varsa, daha uyğun həllər var.

İstilik qeydini / ötürülməsini başlatmaq üçün telefona SMS göndərmək kimi digər funksiyaları əhatə etməmişəm.

Tövsiyə: