Isi kandungan:

Menghantar sms dengan suhu tepat pada waktunya: 5 langkah (dengan gambar)
Menghantar sms dengan suhu tepat pada waktunya: 5 langkah (dengan gambar)

Video: Menghantar sms dengan suhu tepat pada waktunya: 5 langkah (dengan gambar)

Video: Menghantar sms dengan suhu tepat pada waktunya: 5 langkah (dengan gambar)
Video: 1/0 = TAK HINGGA, ITU SALAH! | JEROME NGAJAR MATEMATIKA 2024, Julai
Anonim
Menghantar sms dengan suhu tepat pada masanya
Menghantar sms dengan suhu tepat pada masanya

Ideanya adalah untuk mendapatkan sms temperatur dari rumah ayah saya.

Tidak ada yang mewah hanya dengan menyatukan bahagian.

Bahagiannya adalah:

  • Geekcreit® ATmega328P Nano V3 Controller Board Compatible Arduino
  • Papan Pengembangan DIY NANO IO Shield V1. O Untuk Arduino
  • Modul Jam Masa Sebenar RTC IIC / I2C Berasaskan DS1307 dan DS18b20
  • SIM800L Quad-band GSM / GPRS
  • LM2596 Mini DC-DC Penukar Modul Bekalan Kuasa Bawah yang Boleh Diselaraskan
  • Suhu Thermistor NTC MF52AT

Pertama sekali banyak membaca dan mencari.

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

Langkah 1: Dapatkan SIM800l ke Tempat Kerja

Dapatkan SIM800l ke Tempat Kerja
Dapatkan SIM800l ke Tempat Kerja

Satu perkara utama adalah kekuatan untuk Sim800L.

Saya menggunakan penukar Mini DC-DC LM2596, disesuaikan dengan 3.7 volt dan bekalan kuasa yang berasingan.

Untuk menguji sambungan dengan arahan AT +, sisi ini sangat berguna:

Mulakan Cepat SIM800 (SIM800L) dengan Arduino

Dengan Nonaktifkan kod pin menggunakan modem gsm pada arahan, saya mendapat kod pin sim.

Pertimbangan seterusnya perpustakaan mana. Internet menawarkan penyelesaian yang berbeza.

Penyelesaian saya ialah perpustakaan dari Mattias Aabmets: AspenSIM800

Contohnya: Send_SMS.ino menggunakan saya sebagai program asas dan satu persatu menghubungkan semua bahagian lain bersama-sama.

Pin Tx dan pin Rx adalah kod untuk:

RX_PIN 10 dari Arduino. Mesti disambungkan ke pin TX modul SIM800. TX_PIN 11 dari Arduino. Mesti disambungkan ke pin RX modul SIM800

Adalah idea yang baik untuk membaca fail *.ccp dan *.h di perpustakaan.

Mereka mengandungi banyak petunjuk dan pengetahuan yang menarik.

Langkah 2: Dapatkan Sensor RTC DS1307 Dengan DS18B20 untuk Berfungsi

Dapatkan Sensor RTC DS1307 Dengan DS18B20 untuk Berfungsi
Dapatkan Sensor RTC DS1307 Dengan DS18B20 untuk Berfungsi

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

Jam mempunyai sambungan bas I2C dan itu untuk Arduino Uno: A4 (SDA) - A5 (SCL)

DS18B20 yang saya sambungkan ke D3.

Saya membaca bahawa dalam SMS anda tidak dapat mengirim Floats String sahaja, jadi saya harus menterjemahkan float ke string.

Yang saya lakukan dengan coretan kod ini saya dapati:

n

MyString1 = Rentetan (currentTemp, 2); // Tukar apungan ke String

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

// tukar rentetan menjadi char bermula di sini

// Panjang (dengan satu watak tambahan untuk penghentian nol)

int str_len1 = MyString1.length () + 1; // Sediakan array watak (penyangga)

char char_array1 [str_len1]; // Salin

MyString1.toCharArray (char_array1, str_len1); // menukar rentetan menjadi char hujungnya

Saya akan jujur, saya tidak tahu bagaimana ia berfungsi, tetapi ia berfungsi.

Langkah 3: Dapatkan Thermistor NTC MF52AT untuk Berfungsi

Dapatkan Thermistor NTC MF52AT untuk Berfungsi
Dapatkan Thermistor NTC MF52AT untuk Berfungsi

Saya bekerja sebelum menggunakan termistor jadi itu adalah bahagian yang mudah.

Tetapi juga di sini anda boleh mencari penyelesaian yang berbeza.

Dalam kod akhir anda boleh mencari saya.

Anda juga boleh mendapatkan terjemahan Floats to String.

Memateri beberapa wayar dan perintang 10 k ohm ke termistor.

Langkah 4: Dapatkan Semua Bekerjasama

Oleh itu, saya menulis semua bahagian program bersama-sama.

Sekarang saya harus memikirkan bagaimana menghantar satu SMS setiap hari, pada masa yang sama.

Saya membaca mengenai idea berbeza, ada yang menggunakan TimerAlarm dan pendekatan lain.

Tetapi saya mendapat jalan penyelesaian yang mudah di forum arduino:

jika (now.hour () == 8 && now.minute () == 00 && now.second () == 59)

{

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

kelewatan (500); SIM.smsSend (addr, char_array1); // DS18B20}

Tetapi mengapa sekarang.second = 59 kerana menghantar keseluruhan SMS minut. Ia berlaku untuk saya tetapi cuba sendiri.

Selepas beberapa ujian, saya memuat naik program ke Geekcreit® Nano.

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

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

Langkah 5: Ia berjaya

Ya ia berjaya dan ia diletakkan di rumah.

Setiap hari jam 6:00 pagi saya mendapat SMS dengan suhu.

Disyorkan: