Daftar Isi:

Peringatan Suhu Teks SMS Dari GSM ATTINY85 dan A1: 5 Langkah
Peringatan Suhu Teks SMS Dari GSM ATTINY85 dan A1: 5 Langkah

Video: Peringatan Suhu Teks SMS Dari GSM ATTINY85 dan A1: 5 Langkah

Video: Peringatan Suhu Teks SMS Dari GSM ATTINY85 dan A1: 5 Langkah
Video: Fire Alert Blynk 2.0 Notification | #Shorts 2024, Juli
Anonim
Peringatan Suhu Teks SMS Dari GSM ATTINY85 dan A1
Peringatan Suhu Teks SMS Dari GSM ATTINY85 dan A1

Instruksi ini menunjukkan kepada Anda cara menangkap suhu dari sensor suhu sederhana dan mengirimkannya melalui teks sms ke ponsel Anda. Untuk menyederhanakan, saya mengirim suhu pada interval yang ditentukan tetapi saya juga menunjukkan bagaimana ini dapat dilakukan hanya dengan pengecualian / peringatan. Perangkat kerasnya sangat murah, kurang dari 10 dolar, meskipun ada biaya sms berulang yang perlu dipertimbangkan.

Pengangkatan berat dilakukan oleh ATTINY 85 yang sederhana namun kuat yang menangkap data suhu dan kemudian memicu SMS untuk dikirim melalui modul GSM AI-Thinker A6.

Singkatnya, Anda menulis kode ATTINY85 di lingkungan Arduino IDE dan membakarnya di ATTINY85 menggunakan USBASP serial/USB converter. Saya telah membahas pengaturan modul AI-Thinker A6 GSM dan Arduino IDE dalam dua tutorial sebelumnya. Yang berbeda di sini adalah antarmuka modul ATTINY dan A6 GSM menggunakan komunikasi serial.

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

Setelah pemrograman, ATTINY membaca data suhu dari sensor termometer - Dallas 18B20- dan kemudian mengirimkan data dan perintah melalui koneksi serial ke modul GSM A6 yang kemudian mengirimkannya sebagai teks SMS ke ponsel / ponsel pintar Anda.

Inilah yang Anda butuhkan:

1. USBASP serial/konverter USB.

2. PERHATIAN 85.

3. Modul GSM AI-Thinker A6 versi 6 (dengan sim yang memiliki pulsa SMS).

4. Catu daya papan tempat memotong roti 3.3v untuk ATTINY85.

5. Catu daya USB 3.3.v untuk modul AI-Thinker A6 GSM.

6. Sensor suhu Dallas 18B20..

7. Resistor 4.7k untuk sensor 18B20.

8. Papan tempat memotong roti dan kabel.

9. Arduino IDE (saya menggunakan versi 1.8.5. untuk ini).

10. Laptop Windows X (saya menggunakan versi 10) dengan port usb gratis.

Langkah 1: Memprogram ATTINY 85

Berikut adalah kode Arduino IDE (Anda harus mengubah nomor telepon yang ingin Anda kirimi SMS.)

#sertakan #sertakan #sertakan

// *** // *** Tentukan pin RX dan TX. Pilih dua // *** pin yang tidak digunakan. Cobalah untuk menghindari D0 (pin 5) // *** dan D2 (pin 7) jika Anda berencana untuk menggunakan I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Tentukan port serial berbasis perangkat lunak. Menggunakan nama // *** Serial sehingga kode dapat digunakan pada platform // *** lain yang mendukung serial berbasis perangkat keras. Pada // *** chip yang mendukung serial perangkat keras, cukup // *** komentari baris ini. // ***

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 frekuensi disetel pada internal 8 MHz

// *** // *** Pin di mana kabel data OneWire // *** terhubung. // *** #define ONE_WIRE_BUS 1

// *** // *** Siapkan instance oneWire untuk berkomunikasi dengan perangkat OneWire // *** (bukan hanya IC suhu Maxim/Dallas). // *** OneWire _oneWire = OneWire(ONE_WIRE_BUS);

// *** // *** Berikan referensi oneWire kami ke Suhu Dallas. // *** DallasTemperature _sensors = DallasTemperature(&_oneWire);

void setup() { // *** // *** Inisialisasi port Serial // *** mySerial.begin(115200); penundaan(60000);

// *** Jalankan perpustakaan. _sensors.begin(); }

lingkaran kosong() {

// *** // *** Dapatkan suhu saat ini dan tampilkan. // *** _sensors.requestTemperatures(); penundaan(2000); double tempC = _sensors.getTempCByIndex(0); double tempF = _sensors.getTempFByIndex(0); // periksa kesalahan - terkadang di awal, suhu ditampilkan sebagai 85C

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

void SMS_temp(double mytemp, String myalert) { mySerial.println("AT+CMGF=1"); //set ke mode SMS delay(1000); mySerial.println("AT+CMGF=1"); //set ke mode SMS delay(1000); //mySerial.println("AT+CMGS=\"+NOMOR ANDA\""); //set nomor telepon (dibungkus dengan tanda kutip ganda) delay(1000); mySerial.print(mytemp, 1); mySerial.print(myalert); penundaan (1000); mySerial.write(0x1A); // mengirim ctrl+z akhir penundaan pesan(1000); mySerial.write(0x0D); // Pengembalian Kereta dalam penundaan Hex(1000); mySerial.write(0x0A); penundaan(1000000); // 17 menit - sesuaikan dengan aplikasi Anda sendiri }

Buka lingkungan Arduino IDE - Saya telah menjelaskan bagaimana menemukan Anda cara mengatasi ini secara rinci dalam instruksi saya sebelumnya yang saya singgung sebelumnya.

Anda akan membutuhkan perpustakaan berikut:

SoftwareSerial.h

OneWire.h

DallasTemperature.h

Selanjutnya, konfigurasikan pin RX dan TX pada ATTINY85 yang perlu Anda hubungkan dengan A1 Thinker. ATTINY 85 memiliki 8 pin, empat di setiap sisi dan disejajarkan menggunakan titik di permukaan sebagai referensi. Pin 1 atau PIN RESET ada di sebelah titik.

(dalam hal ini saya memilih Pin2 dan 3 - Ini berada di sisi yang sama dengan pin RESET yang berada di samping titik pada permukaan ATTINY 85. Pin 2 adalah pin berikutnya sepanjang dari pin RESET sedangkan Pin 3 berada di antara Pin 2 dan TANAH)

Selanjutnya, Anda harus mengonfigurasi sensor suhu -

#define ONE_WIRE_BUS 1

OneWire _oneWire = OneWire(ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature(&_oneWire);

Selanjutnya atur port serial perangkat lunak

mySerial.begin(115200);

penundaan(60000);

lalu panggil sensor dengan _sensors.begin();

Selanjutnya, ada loop, yang melakukan polling pada waktu yang telah ditentukan, mencatat suhu dan mengirim pesan / peringatan tergantung pada nilainya. Ini menggunakan fungsi SMS_temp yang juga merupakan tempat Anda mengatur waktu loop

void loop(){ sensor.requestTemperatures(); penundaan(2000);

double tempC = _sensors.getTempCByIndex(0);

double tempF = _sensors.getTempFByIndex(0);

if (tempC <= 14){SMS_temp(tempC, " DANGEROUSLY Cold");}

if (tempC > 14 && tempC <= 18) {SMS_temp(tempC, " Cukup Dingin");}

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

if (tempC >= 23 && error_temperature){SMS_temp(tempC, " Terlalu hangat");}

}

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

Selanjutnya, siapkan Arduino IDE untuk mempersiapkan pengunggahan ke ATTINY85.

Beberapa hal yang perlu diperhatikan

1- Jika Anda tidak memiliki keluarga papan ATTINY, tambahkan url berikut https://raw.githubusercontent.com/damellis/attiny/… di File/Preferences/Additional Boards Manager URL, Selanjutnya, di dalam Arduio IDE klik Tools/Board/Board Manager dan cari ATTINY dan instal board baru. Ubah prosesor ke Attiny85.

Langkah 2: Mengunggah Program ke ATTINY85

Mengunggah Program ke ATTINY85
Mengunggah Program ke ATTINY85

Juga, lihat instruksi saya sebelumnya tentang ini -

ATTINY85 memiliki dua mode, pemrograman dan mode operasi, masing-masing.1. MODE PEMROGRAMAN Pertama, identifikasi pin pada ATTINY85. Untuk melakukan ini, temukan lekukan kecil di permukaan chip yang berada di samping pin RST/RESET. Menggunakan ini sebagai titik referensi, Anda dapat mengidentifikasi sisa pin. Semua informasi ini disediakan dalam lembar data A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp dan ATTINY85 harus terhubung seperti yang ditunjukkan pada gambar di atas.

Selanjutnya, pada Arduino IDE, atur programmer ke USBasp dan frekuensi ke internal 8Mhz.

Hubungkan USBasp ke port USB di laptop Anda (Pada Windows 10, jika Anda tidak memiliki driver USBasp gunakan Zadig sesuai situs web

Selanjutnya, dengan USBasp terhubung, pilih dari Arduino IDE Sketch/upload dan semoga Anda akan melihat kemajuan upload yang ditunjukkan dengan huruf merah dari Arduino IDE dan diakhiri dengan avrdude done. Terima kasih.

Setiap kesalahan pada tahap ini biasanya terkait dengan kabel yang longgar atau driver yang salah.

Langkah 3: Menjalankan Program Anda

Menjalankan Program Anda
Menjalankan Program Anda
Menjalankan Program Anda
Menjalankan Program Anda
Menjalankan Program Anda
Menjalankan Program Anda

Pertama, sesuatu tentang sensor termometer Dallas 18b20. Ini memiliki 3 pin, Ground (G), data (D) dan VCC seperti yang ditunjukkan pada gambar di atas. Untuk pengoperasiannya, perlu menjembatani D dan VCC dengan resistor 4.7k. G dan VCC terhubung ke kutub masing-masing sementara D terhubung ke ATTINY 85, pin - [6] PB1, seperti yang dikonfigurasi dalam kode.

Selanjutnya, sambungkan ATTINY ke A6 GSM sebagai berikut (dan ditunjukkan di atas)

ATTINY TX A6 UART_RXdATTINY RX A6 UART_TXd

ATTINY GND A6 GND

dan pada A6 itu sendiri, A6 PWR A6 VCC 5.0A6 RST A6 GND (Jangan sambungkan ke ground dulu!!!!!)

Sekarang hidupkan kedua perangkat, dan setelah beberapa detik, sentuh sementara pin ground A6 dengan kabel yang terhubung ke pin A6 RST. A6 akan mati dan hidup dan mudah-mudahan, Anda akan segera menerima data suhu di ponsel Anda.

Langkah 4: Kesimpulan

Instruksi ini mungkin tampak agak sederhana tetapi idenya adalah untuk menggambarkan apa yang dapat dicapai dengan komponen berbiaya rendah. Jelas, jika Anda memiliki akses ke wi-fi atau hub BLE maka ada solusi yang lebih tepat.

Saya tidak mencakup fungsi lain seperti mengirim SMS KE telepon untuk memulai perekaman / transmisi suhu, dll.

Direkomendasikan: