Isi kandungan:

Makluman Temp Teks SMS Dari ATTINY85 dan A1 GSM: 5 Langkah
Makluman Temp Teks SMS Dari ATTINY85 dan A1 GSM: 5 Langkah

Video: Makluman Temp Teks SMS Dari ATTINY85 dan A1 GSM: 5 Langkah

Video: Makluman Temp Teks SMS Dari ATTINY85 dan A1 GSM: 5 Langkah
Video: Start using Digispark USB ATtiny85 Arduino board with blink and relay example | Robojax 2024, Julai
Anonim
Makluman Temp Teks SMS Dari ATTINY85 dan A1 GSM
Makluman Temp Teks SMS Dari ATTINY85 dan A1 GSM

Instruksional ini menunjukkan kepada anda cara menangkap suhu dari sensor suhu sederhana dan mengirimkannya melalui teks sms ke telefon bimbit anda. Untuk memudahkan perkara, saya menghantar suhu pada selang waktu yang ditetapkan tetapi saya juga menunjukkan bagaimana ini dapat dilakukan hanya dengan pengecualian / amaran. Perkakasan adalah kos yang sangat rendah, kurang dari 10 dolar, walaupun ada kos sms berulang yang perlu dipertimbangkan.

Pengangkatan berat dilakukan oleh ATTINY 85 yang ringkas tetapi kuat yang menangkap data suhu dan kemudian mencetuskan SMS untuk dihantar melalui modul GSM AI-Thinker A6.

Ringkasnya, anda menulis kod ATTINY85 di persekitaran Arduino IDE dan membakarnya di ATTINY85 menggunakan penukar siri / USBASP. Saya telah membahas penyediaan modul AI-Thinker A6 GSM dan Arduino IDE dalam dua tutorial sebelumnya. Apa yang berbeza di sini ialah menghubungkan modul ATTINY dan A6 GSM menggunakan komunikasi bersiri.

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

Selepas pengaturcaraan, ATTINY membaca data suhu dari sensor termometer - Dallas 18B20- dan kemudian mengirimkan data dan perintah melalui sambungan bersiri ke modul GSM A6 yang kemudian mengirimkannya sebagai teks SMS ke telefon bimbit / telefon pintar anda.

Inilah yang anda perlukan:

1. Penukar siri USBASP / USB.

2. PERHATIAN 85.

3. AI-Thinker A6 GSM modul versi 6 (dengan sim yang mempunyai kredit SMS).

4. Bekalan kuasa papan roti 3.3v untuk ATTINY85.

5. 3.3.v Bekalan kuasa USB untuk modul GSM AI-Thinker A6.

6. Sensor suhu Dallas 18B20..

7. Perintang 4.7k untuk sensor 18B20.

8. Papan roti dan kabel.

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

10. Komputer riba Windows X (saya menggunakan versi 10) dengan port usb percuma.

Langkah 1: Memprogram ATTINY 85

Berikut adalah kod Arduino IDE (Anda perlu menukar nombor telefon yang ingin anda hantar SMS.)

#sertakan #sertakan #sertakan

// *** // *** Tentukan pin RX dan TX. Pilih mana-mana dua pin // *** yang tidak digunakan. Cuba elakkan D0 (pin 5) // *** dan D2 (pin 7) jika anda merancang untuk menggunakan I2C. // *** #define RX 3 // *** D3, Pin 2 #define TX 4 // *** D4, Pin 3

// *** // *** Tentukan port bersiri berasaskan perisian. Menggunakan nama // *** Serial supaya kod dapat digunakan pada platform // *** lain yang menyokong siri berasaskan perkakasan. Pada cip // *** yang menyokong siri perkakasan, hanya // *** komen di 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 ditetapkan pada 8 MHz dalaman

// *** // *** Pin di mana wayar data OneWire // *** disambungkan. // *** #tentukan ONE_WIRE_BUS 1

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

// *** // *** Lulus rujukan oneWire kami ke Dallas Temperature. // *** DallasTemperature _sensors = DallasTemperature (& _ oneWire);

batal persediaan () {// *** // *** Memulakan port Serial // *** mySerial.begin (115200); kelewatan (60000);

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

gelung kosong () {

// *** // *** Dapatkan suhu semasa dan paparkan. // *** _sensors.requestTemperatures (); kelewatan (2000); double tempC = _sensors.getTempCByIndex (0); double tempF = _sensors.getTempFByIndex (0); // periksa kesilapan - kadang-kadang pada permulaan, suhu ditunjukkan sebagai 85C

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

batal SMS_temp (double mytemp, String myalert) {mySerial.println ("AT + CMGF = 1"); // tetapkan ke kelewatan mod SMS (1000); mySerial.println ("AT + CMGF = 1"); // tetapkan ke kelewatan mod SMS (1000); //mySerial.println("AT+CMGS=\"+ NOMBOR ANDA / ""); // tetapkan nombor telefon (dibungkus dengan petikan ganda) kelewatan (1000); mySerial.print (mytemp, 1); mySerial.print (myalert); kelewatan (1000); mySerial.write (0x1A); // menghantar ctrl + z penundaan akhir pesanan (1000); mySerial.write (0x0D); // Carriage Return in Hex delay (1000); mySerial.write (0x0A); kelewatan (1000000); // 17 minit - sesuaikan agar sesuai dengan aplikasi anda sendiri}

Buka persekitaran Arduino IDE - Saya telah menerangkan cara mencari anda secara terperinci dalam arahan saya sebelumnya yang saya nyatakan sebelumnya.

Anda memerlukan perpustakaan berikut

PerisianSerial.h

OneWire.h

DallasTemperature.h

Seterusnya, konfigurasikan pin RX dan TX pada ATTINY85 yang anda perlukan untuk berhubung dengan Pemikir A1. ATTINY 85 mempunyai 8 pin, empat di setiap sisi dan diselaraskan menggunakan titik di permukaan sebagai rujukan. Pin 1 atau pin RESET berada di sebelah titik.

(dalam kes ini saya memilih Pin2 dan 3 - Ini berada di sisi yang sama dengan pin RESET yang berada di sebelah titik di permukaan ATTINY 85. Pin 2 adalah pin seterusnya sepanjang pin RESET sementara Pin 3 berada di antara Pin 2 dan GROUND)

Seterusnya, anda perlu mengkonfigurasi sensor suhu -

#tentukan ONE_WIRE_BUS 1

OneWire _oneWire = OneWire (ONE_WIRE_BUS);

DallasTemperature _sensors = DallasTemperature (& _ oneWire);

Seterusnya sediakan port siri perisian

mySerial.begin (115200);

kelewatan (60000);

dan kemudian panggil sensor dengan _sensors.begin ();

Seterusnya, ada gelung, yang melakukan tinjauan pada waktu yang telah ditentukan, mencatat suhu dan mengirim mesej / amaran bergantung pada nilainya. Ia menggunakan fungsi SMS_temp yang juga merupakan tempat anda mengatur masa gelung

gelung kosong () {sensors.requestTemperatures (); kelewatan (2000);

double tempC = _sensors.getTempCByIndex (0);

double tempF = _sensors.getTempFByIndex (0);

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

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

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

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

}

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

Seterusnya, sediakan Arduino IDE untuk bersiap sedia untuk memuat naik ke ATTINY85.

Beberapa perkara yang perlu diberi perhatian

1- Sekiranya anda tidak mempunyai keluarga papan PERHATIAN, tambahkan url berikut https://raw.githubusercontent.com/damellis/attiny/… dalam URL Fail / Keutamaan / Pengurus Papan Tambahan, Seterusnya, dalam Arduio IDE klik pada Tools / Board / Board Manager dan cari ATTINY dan pasang papan baru. Tukar pemproses ke Attiny85.

Langkah 2: Memuat naik Program ke ATTINY85

Memuat naik Program ke ATTINY85
Memuat naik Program ke ATTINY85

Juga, rujuk arahan saya sebelumnya mengenai perkara ini -

ATTINY85 masing-masing mempunyai dua mod, pengaturcaraan dan mod operasi.1. MOD PEMPROGRAMAN Pertama, kenal pasti pin pada ATTINY85. Untuk melakukan ini, cari takik kecil di permukaan cip yang berada di sebelah pin RST / RESET. Dengan menggunakan ini sebagai titik rujukan, anda boleh mengenal pasti pin yang selebihnya. Semua maklumat ini terdapat dalam lembaran data A85 -https://ww1.microchip.com/downloads/en/DeviceDoc/At…

USBasp dan ATTINY85 harus disambungkan seperti yang ditunjukkan dalam gambar di atas.

Seterusnya, pada Arduino IDE, tetapkan programmer ke USBasp dan frekuensi ke 8Mhz dalaman.

Sambungkan USBasp ke port USB pada komputer riba anda (Pada Windows 10, jika anda tidak mempunyai pemacu USBasp gunakan Zadig seperti di laman web

Seterusnya, dengan USBasp yang tersambung, pilih dari Arduino IDE Sketch / upload dan semoga anda dapat melihat kemajuan muat naik yang ditunjukkan dengan huruf merah dari Arduino IDE dan diakhiri dengan avrdude selesai. Terima kasih.

Kesalahan pada peringkat ini biasanya berkaitan dengan kabel longgar atau pemacu 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 mengenai sensor termometer Dallas 18b20. Ia memiliki 3 pin, Ground (G), data (D) dan VCC seperti yang ditunjukkan pada gambar di atas. Untuk operasi, ia memerlukan merapatkan D dan VCC dengan perintang 4.7k. G dan VCC disambungkan ke kutub masing-masing sementara D dihubungkan ke ATTINY 85, pin - [6] PB1, seperti yang dikonfigurasi dalam kod.

Seterusnya, sambungkan ATTINY ke A6 GSM seperti 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 tanah !!!!!)

Sekarang aktifkan kedua-dua peranti, dan setelah beberapa saat, sentuh sementara pin ground A6 dengan kabel yang disambungkan ke pin A6 RST. A6 akan dimatikan dan dihidupkan dan diharapkan, anda akan segera menerima data suhu di telefon anda.

Langkah 4: Kesimpulannya

Pengajaran ini mungkin kelihatan agak sederhana tetapi idenya adalah untuk menggambarkan apa yang dapat dicapai dengan komponen kos rendah. Jelas sekali, jika anda mempunyai akses ke wi-fi atau hub BLE maka ada penyelesaian yang lebih sesuai.

Saya tidak merangkumi fungsi lain seperti menghantar SMS KE telefon untuk memulakan rakaman / penghantaran suhu dll.

Disyorkan: