Daftar Isi:

Mengirim Sms Dengan Temperatur Tepat Waktu: 5 Langkah (dengan Gambar)
Mengirim Sms Dengan Temperatur Tepat Waktu: 5 Langkah (dengan Gambar)

Video: Mengirim Sms Dengan Temperatur Tepat Waktu: 5 Langkah (dengan Gambar)

Video: Mengirim Sms Dengan Temperatur Tepat Waktu: 5 Langkah (dengan Gambar)
Video: 10 TIPS DAN SETTING WAJIB SAMSUNG GALAXY A05 2024, November
Anonim
Mengirim Sms Dengan Temperatur Tepat Waktu
Mengirim Sms Dengan Temperatur Tepat Waktu

Idenya adalah untuk mendapatkan sms suhu dari rumah ayah saya.

Tidak ada yang mewah hanya dengan cepat menyatukan bagian-bagian.

Bagian-bagiannya adalah:

  • Papan Pengontrol Geekcreit® ATmega328P Nano V3 Kompatibel dengan Arduino
  • Papan Ekspansi NANO IO Shield V1. O DIY Untuk Arduino
  • Modul Jam Waktu Nyata RTC IIC / I2C Berbasis DS1307 dan DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC Converter Modul Catu Daya Step Down yang Dapat Disesuaikan
  • Suhu termistor NTC MF52AT

Pertama sama sekali banyak dari membaca dan mencari.

Sebelum akhirnya saya menggunakan Geekcreit® Nano, saya menguji semua bagian dengan Arduino Uno.

Langkah 1: Dapatkan SIM800l untuk Bekerja

Dapatkan SIM800l untuk Bekerja
Dapatkan SIM800l untuk Bekerja

Satu poin utama adalah kekuatan untuk Sim800L.

Saya menggunakan LM2596 Mini DC-DC converter, disesuaikan dengan 3,7 volt dan catu daya terpisah.

Untuk menguji koneksi dengan perintah AT+, sisi ini sangat berguna:

Quickstart SIM800 (SIM800L) dengan Arduino

Dengan Nonaktifkan kode pin menggunakan modem gsm pada perintah saya mendapatkan kode pin sim.

Pertimbangan selanjutnya perpustakaan mana. Internet menawarkan solusi yang berbeda.

Solusi saya adalah perpustakaan dari Mattias Aabmets: AspenSIM800

Contoh nya: Send_SMS.ino menggunakan I sebagai program dasar dan satu per satu menghubungkan semua bagian lainnya menjadi satu.

Pin Tx dan Pin Rx dikodekan ke:

RX_PIN 10 dari Arduino. Harus terhubung ke pin TX dari modul SIM800. TX_PIN 11 dari Arduino. Harus terhubung ke pin RX modul SIM800

Itu selalu ide yang baik untuk membaca file *.ccp dan *.h di perpustakaan.

Mereka berisi banyak petunjuk dan pengetahuan yang menarik.

Langkah 2: Dapatkan RTC DS1307 Dengan Sensor DS18B20 Bekerja

Dapatkan RTC DS1307 Dengan Sensor DS18B20 untuk Bekerja
Dapatkan RTC DS1307 Dengan Sensor DS18B20 untuk Bekerja

Saya menggunakan sisi ini: simtronyx - blog untuk DS1307 dan DS18B20.

Jam memiliki koneksi bus I2C dan itu untuk Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 saya terhubung ke D3.

Saya membaca bahwa dalam SMS Anda tidak dapat mengirim Floats only String, jadi saya harus menerjemahkan float ke string.

Yang saya lakukan dengan cuplikan kode ini saya temukan:

n

MyString1 = String(temperatur saat ini, 2); //Konversi float ke String

MyString1 = (MyString1 + " C - RoomTemperatur:) ");

// konversi string ke char dimulai di sini

// Panjang (dengan satu karakter tambahan untuk terminator nol)

int str_len1 = MyString1.length() + 1; // Siapkan array karakter (buffer)

char char_array1[str_len1]; // Salin lagi

MyString1.toCharArray(char_array1, str_len1); // konversi string ke char mengakhirinya

Saya akan jujur saya tidak tahu cara kerjanya, tetapi itu berhasil.

Langkah 3: Dapatkan Termistor NTC MF52AT untuk Bekerja

Dapatkan Termistor NTC MF52AT untuk Bekerja
Dapatkan Termistor NTC MF52AT untuk Bekerja

Saya bekerja sebelumnya dengan termistor jadi itu bagian yang mudah.

Tetapi juga di sini Anda dapat menemukan solusi yang berbeda.

Dalam kode terakhir Anda dapat menemukan milik saya.

Anda juga dapat menemukan terjemahan Floats to String.

Solder beberapa kawat dan resistor 10 k ohm ke termistor.

Langkah 4: Buat Semua Bekerja Bersama

Jadi saya menulis semua bagian programm bersama-sama.

Sekarang saya harus mencari cara bagaimana mengirim satu SMS setiap hari, pada waktu yang sama.

Saya membaca tentang ide yang berbeda, beberapa dengan TimerAlarm dan pendekatan lainnya.

Tetapi saya menemukan solusi sederhana di suatu tempat di forum arduino:

if (sekarang.jam() == 8 && sekarang.menit() == 00 && sekarang.detik () == 59)

{

SIM.smsSend(tambahkan, char_array); // termistor

penundaan (500); SIM.smsSend(tambahkan, char_array1); // DS18B20 }

Tapi kenapa sekarang.detik = 59 karena mengirim SMS menit penuh. Itu untuk saya tetapi cobalah sendiri.

Setelah beberapa pengujian, saya mengunggah program ke Geekcreit® Nano.

Ini mungkin bukan penulisan program terbaik:) tetapi ini yang diinginkan.

Karena Geekcreit® ATmega328P Nano memiliki beberapa masalah Arduino IDE, saya mengunggah melalui terminal (Linux Mint) membuang USBtinyisp dengan ini: avrdude -c usbtiny -p atmega328p -U flash:w:SomeHexFile.hex

Langkah 5: Berhasil

Ya itu berhasil dan ditempatkan di rumah.

Setiap hari pukul 06.00 saya mendapatkan SMS dengan suhu.

Direkomendasikan: