Daftar Isi:

Remote Control SMS yang Andal, Aman, dan Dapat Disesuaikan (Arduino/pfodApp) - Tidak Perlu Pengodean: 4 Langkah
Remote Control SMS yang Andal, Aman, dan Dapat Disesuaikan (Arduino/pfodApp) - Tidak Perlu Pengodean: 4 Langkah

Video: Remote Control SMS yang Andal, Aman, dan Dapat Disesuaikan (Arduino/pfodApp) - Tidak Perlu Pengodean: 4 Langkah

Video: Remote Control SMS yang Andal, Aman, dan Dapat Disesuaikan (Arduino/pfodApp) - Tidak Perlu Pengodean: 4 Langkah
Video: Подключение AnyDesk Mobile к ПК || AnyDesk для мобильных устройств || Учебное пособие по Anydesk, часть 04 2024, Juli
Anonim
Remote Control SMS yang Andal, Aman, dan Dapat Disesuaikan (Arduino/pfodApp) - Tidak Perlu Pengodean
Remote Control SMS yang Andal, Aman, dan Dapat Disesuaikan (Arduino/pfodApp) - Tidak Perlu Pengodean

Pembaruan 6 Juli 2018: Versi 3G/2G dari proyek ini, menggunakan SIM5320, tersedia di sini

Pembaruan: 19 Mei 2015: Gunakan pustaka pfodParser Versi 2.5 atau lebih tinggi. Ini memperbaiki masalah yang dilaporkan karena tidak memberikan cukup waktu bagi perisai untuk terhubung ke jaringan setelah dinyalakan

pengantar

Bagaimana remote control pfodSMS berbeda dari implementasi lain: -

  • Dapat Diandalkan – perintah selalu ditanggapi dan pesan yang hilang diminta kembali
  • Aman – menggunakan perlindungan kata sandi 128 bit
  • Tidak memerlukan akun layanan web pihak ketiga – hanya membutuhkan kartu SIM aktif (tanpa pin)
  • Dapat Disesuaikan – Anda dapat menggunakan pfodDesigner untuk membuat menu kustom Anda sendiri
  • Mudah – pfodDesigner menghasilkan semua kode. Anda tidak perlu melakukan pengkodean apa pun.
  • Fleksibel – semua layar pfod tersedia melalui SMS, seperti sub-menu, daftar pilihan multi dan tunggal, input teks, pencatatan dan plot data.

Lihat desain pesan pfodSMS untuk mengetahui bagaimana koneksi SMS dibuat dapat diandalkan. Lihat Keamanan Tantangan dan Respons untuk Perangkat pfod yang terhubung ke Internet untuk detail keamanan 128bit. Lihat pfodDesigner, Menu Android / Arduino dibuat Sederhana untuk detail tentang mendesain menu kustom Anda sendiri. Lihat pfodSpecification.pdf untuk detail semua pesan dan layar pfod yang dapat Anda tambahkan sendiri.

Contoh Proyek – Kontrol Air Panas SMS

Sebagai contoh proyek, instruksi ini menjelaskan cara menghidupkan dan mematikan pemanas air panas Anda melalui SMS dan memeriksa apakah itu hidup atau mati. Anda akan membutuhkan tukang listrik untuk memasangnya.

Langkah 1: Mulai Cepat - Remote Control SMS

Mulai Cepat - Remote Control SMS
Mulai Cepat - Remote Control SMS
Mulai Cepat - Remote Control SMS
Mulai Cepat - Remote Control SMS

Berikut adalah panduan memulai cepat untuk membangun kontrol air panas SMS Anda sendiri.

  1. Beli suku cadang di daftar ini..
  2. Instal Arduino IDE versi 1.5.8 dan unduh dan instal pustaka pfodParser..
  3. Unduh pfodDesigner gratis.
  4. Rancang menu khusus Anda untuk menghidupkan dan mematikan input digital dari penggeser menu di ponsel Android Anda.
  5. Buat kode, pilih pelindung GPRS SeeedStudio SIM900 sebagai koneksi. (Ada juga opsi untuk perisai IteadStudio SIM900).
  6. Transfer kode yang dihasilkan dari ponsel Anda ke IDE (lihat pfodAppForAndroidGettingStarted.pdf untuk detailnya), tambahkan kata sandi rahasia Anda, kompilasi dan unduh ke Arduino Mega 2560.
  7. Pasang kartu SIM Anda di pelindung GPRS dan pasang pelindung ke Mega 2560. Pastikan tautan Serial diatur ke Serial Perangkat Keras seperti gambar di atas..
  8. Hubungkan output digital ke solid state, atau relai normal, antara D3 dan GND (atau pin mana pun yang Anda pilih di pfodDesigner). Lihat Cara Menambahkan Relai ke Arduino untuk detail lebih lanjut tentang relai..
  9. Terapkan daya USB ke Mega. Kode perpustakaan memperkuat pelindung GPRS untuk Anda..
  10. Instal pfodApp di ponsel Android Anda dan atur koneksi SMS ke no. (lihat pfodAppForAndroidGettingStarted.pdf untuk detailnya). Tetapkan kata sandi untuk koneksi jika Anda menambahkannya..
  11. Hubungkan dan lihat menu kustom Anda ditampilkan melalui SMS. Klik tombol untuk menghidupkan atau mematikan relai..
  12. Minta teknisi listrik Anda untuk memasang relai di sirkuit Air Panas Anda dan sambungkan catu daya USB untuk memberi daya pada Mega dan perisai

Langkah 2: Lebih Detail

pfodDesainer

pfodDesigner akan menghasilkan semua kode yang Anda butuhkan untuk menghidupkan dan mematikan solid state atau relai lain, tetapi koneksi SMS di perpustakaan pfodParser mendukung semua layar pfod sehingga setelah Anda memulai, Anda dapat menambahkan sub-menu, penggeser numerik, slider multi-teks, layar input teks, data logging dan plotting semua melalui SMS. Lihat pfodSpecification.pdf untuk semua layar dan pesan yang didukung.

Kode yang dihasilkan ada di sini. Tidak memiliki prompt dan hanya satu tombol untuk menjaga pesan tetap singkat. Menu panjang dikirim melalui beberapa pesan SMS yang membutuhkan waktu lebih lama untuk tiba. Jika Anda memiliki menu yang panjang, kode koneksi sms di perpustakaan pfodParser menangani semua ini untuk Anda.

Untuk menambahkan kata sandi ke koneksi SMS Anda, ubah jalurnya

parser.connect(&pfodSMS); // menghubungkan parser ke aliran SMS ke sesuatu seperti parser.connect(&pfodSMS, F("173057F7A706AF9BBE65D51122A14CEE"));

tetapi gunakan kata sandi Anda sendiri hingga 32 digit hex, 0..9 A.. F. Kata sandi yang lebih pendek dari 32 digit hex diisi dengan 0. Lihat Perangkat Wifi/Internet Sederhana dengan keamanan 128bit (Arduino) untuk mengetahui cara membuat kata sandi acak dan mengeluarkannya ke kode QR untuk memudahkan input ke Android Anda. Lihat juga pfodAppForAndroidGettingStarted.pdf

pfodDesigner juga akan menghasilkan kode untuk koneksi bluetooth dan wifi melalui Serial dan Ethernet melalui SPI semua dengan keamanan 128bit opsional

pfodApp

Hal pertama yang harus disadari adalah bahwa SMS lambat dan mungkin tidak sampai di sana sama sekali atau tiba dalam keadaan rusak. Jadi ketika Anda terhubung dengan pfodApp akan ada beberapa penundaan sebelum ada respons SMS. Jika pesan hilang atau tertunda, pfodApp akan otomatis mengirim ulang setelah 3 menit. Setelah 5 percobaan ulang seperti itu, pfodApp akan memberi tahu Anda bahwa koneksi terputus. Anda dapat menyesuaikan waktu 3 menit di layar edit koneksi pfodApp.

Jika Anda menambahkan kata sandi maka ada enam pesan SMS (tiga masing-masing jalan) sebelum menu utama diterima oleh pfodApp. Pesan tambahan ini hanya terjadi pada koneksi awal setelah itu tidak ada pesan tambahan saat menggunakan kata sandi. Jadi mulailah tanpa kata sandi untuk melihat bahwa semuanya berfungsi dan kemudian tambahkan kata sandi nanti.

Perisai SMS/GPRS

Kemungkinan masalah adalah kartu SIM dilindungi oleh nomor pin atau tidak diizinkan untuk terhubung ke jaringan. Pustaka pfod secara otomatis menyalakan pelindung GPRS dan mencari respons 'siap panggilan'. Jika respons itu tidak tiba, perpustakaan akan mati dan mencoba lagi, jadi jika Anda melihat lampu daya pada pelindung GPRS menyala selama 20 detik dan kemudian mati, berarti ada masalah saat menyambung ke jaringan. Keluarkan SIM dan coba di telepon biasa. Pastikan Anda tidak dimintai nomor pin.

Jika bukan itu masalahnya, maka Anda harus mengaktifkan debugging start-up, seperti yang dijelaskan di bawah, untuk melihat apa yang terjadi.

Menghidupkan perisai Mega / GPRS

Perisai menarik hingga 2A berdenyut dan hingga 0,5A terus menerus. Dengan asumsi pasokan baterai 12V, 0,5A melebihi kapasitas catu daya Mega on board. Jadi perisai ini TIDAK boleh diberi daya dari input 7V ke 12V pada Mega. Alternatifnya adalah memberi daya pada Mega dan melindungi melalui koneksi USB. Saya menggunakan pasokan USB 1A. Untuk pengujian saya menggunakan hub bertenaga Belkin (F4U020) untuk mencegah penarikan arus yang berlebihan dari port USB komputer saya.

Untuk pasokan baterai 12V, saya sarankan menggunakan pengisi daya Automotive USB 5V berkualitas, 1A, atau lebih tinggi. Pasokan USB 5V Otomotif yang berkualitas harus dirancang untuk menangani lonjakan tegangan berlebih yang terjadi pada sistem kelistrikan mobil dan karenanya harus sesuai untuk sebagian besar sistem pengisian 12V.

Relay Keadaan Padat

Karena proyek contoh ini mengendalikan pemanas Air Panas, (beban resistif), relai Solid State sangat ideal. Jika Anda ingin menghidupkan atau mematikan motor, menyalakan generator, dll, bicarakan dengan teknisi listrik Anda tentang relai yang cocok untuk pekerjaan itu. Jika Anda membutuhkan relai daya tinggi, Anda dapat menggunakan drive relai kecil oleh papan arduino untuk menghidupkan dan mematikan relai daya.

Ada banyak versi solid state relay yang tersedia. Pastikan Anda membeli yang dapat menangani arus dan tegangan pemanas Anda dan dapat dikontrol oleh 5V dc dan beberapa miliampere yang tersedia dari pin output Arduino. Yang digunakan di sini, FOTEK SSR-40 DA, beralih ke 380VAC pada 40Amps dan dikendalikan oleh apa pun yang lebih dari 3V dc dan membutuhkan waktu kurang dari 7mA.

Anda harus menggunakan heat sink dan Anda harus mengoleskan kompon heat sink atau pelumas termal di bagian belakang solid state relay sebelum memasangnya ke heat sink. Idenya adalah untuk sepenuhnya menutupi permukaan dengan lapisan tertipis dari senyawa head sink untuk mengisi lembah mikroskopis di permukaan logam. Saat dihidupkan sakelar solid state turun 1.6V yang menghasilkan 16Watt panas pada 10Amps. Heat sink diperlukan untuk menghilangkan panas ini sehingga perlu dipasang di udara bebas bukan di dalam kotak plastik.

Penundaan itu Jahat

Perisai GPRS mengirimkan pesan SMS melalui koneksi Serial kapan saja dan loop utama Anda() harus memanggil cmd = parser.parse();sering untuk memproses data Serial sebelum buffer 64byte di kode perpustakaan Arduino terisi dan data hilang.

Jadi, Anda harus menjaga loop utama() Anda berjalan dengan cepat. Anda tidak boleh menggunakan delay() dan harus memeriksa bahwa tidak ada perpustakaan yang Anda gunakan memiliki penundaan di dalamnya. Menggunakan baud rate 19200 default dari SIM900 melalui Hardware Serial, saya belum merasa perlu untuk meningkatkan ukuran buffer dalam kode perpustakaan Arduino. Saya tidak menggunakan Software Serial, hanya Serial dan Serial1, koneksi Hardware Serial, dan hampir semua pesan yang dikirim pfodApp sangat kecil, 10 atau 12 byte. Namun Anda dapat meningkatkan ukuran buffer Arduino, jika diinginkan, dengan memodifikasi definisi di HardwareSerial.h dari #define SERIAL_BUFFER_SIZE 64 menjadi #define SERIAL_BUFFER_SIZE 128

Namun apa yang saya temukan adalah bahwa jika saya mengaktifkan output debugging, seperti yang dijelaskan di bawah, saya harus memiliki baud rate yang sangat cepat untuk koneksi terminal jika tidak, penundaan yang disebabkan oleh pengiriman pesan debug ke terminal menyebabkan bagian dari pesan SMS terlewatkan..

Instalasi

Saya menambahkan pelindung terminal sekrup jadi saya punya sesuatu untuk menghubungkan kabel relai Solid State. Saya belum meminta teknisi saya memasang pengontrol. Itu perlu dimasukkan ke dalam kotak berinsulasi, tetapi dengan pendingin yang mencuat melalui slot dan dihubungkan ke kabel listrik air panas.

Langkah 3: Saran untuk Peningkatan Lebih Lanjut – Peringatan, Pencatatan Data, dan Plotting

Contoh proyek di atas hanya menampilkan bagaimana air hidup atau mati dan memungkinkan Anda untuk menyalakannya. Tetapi koneksi SMS menangani semua pesan pfod (lihat pfodSpecification.pdf)

Jika Anda menambahkan sensor suhu ke arduino Anda, Anda juga dapat mengirim monitor suhu dan mengirim kembali pembacaan secara berkala. Untuk mengirim kembali pembacaan datanya sama untuk bluetooth, wifi atau SMS, cukup tambahkan kode seperti contoh di bawah ini. Lihat Data Logging and Plotting untuk detail lebih lanjut dan contoh data logging dan plotting.

parser.println(waktu);parser.print(', ');parser.println(suhu);

Ketika perpustakaan pfodSMS melihat baris baru dari println(), ia akan mengirimkan data mentah sebagai SMS. Di ponsel Anda, biarkan pfodApp berjalan di latar belakang dan ponsel Anda akan memberi tahu Anda saat SMS diterima. Buka pfodApp lagi untuk membawanya ke depan dan kemudian buka layar Raw Data dari menu ponsel untuk melihat datanya. Catatan: Pesan pfodSMS adalah karakter UTF-8 bersama dengan koneksi dan nomor pesan, dikodekan menggunakan pengkodean Base64 sehingga tidak terlihat seperti teks biasa. Lihat desain pesan pfodSMS untuk semua detailnya.

Anda dapat menggunakan proses yang sama untuk mengirim peringatan ketika sesuatu berubah dari jarak jauh. yaitu parser.println(F("Suhu Luar Di bawah 0℃ ""));Catatan: karakter UTF-8 dalam string. pfodSMS meneruskan semua karakter UTF-8 ke pfodApp.

Langkah 4: Debugging Saat Menggunakan Koneksi SMS di Pustaka PfodParser

Debugging Saat Menggunakan Koneksi SMS di Pustaka PfodParser
Debugging Saat Menggunakan Koneksi SMS di Pustaka PfodParser
Debugging Saat Menggunakan Koneksi SMS di Pustaka PfodParser
Debugging Saat Menggunakan Koneksi SMS di Pustaka PfodParser

pfodDesigner menghasilkan kode yang berfungsi, tetapi Anda mungkin ingin men-debug kode tambahan Anda sendiri atau melihat apa yang terjadi saat pelindung GPRS memulai atau menerima pesan SMS. Ada beberapa pendekatan yang bisa Anda ambil.

Men-debug kode Anda sendiri

Jika Anda men-debug kode Anda sendiri, Anda bisa mengomentari baris pfodSMS dan menghubungkan parser ke Serial dan kemudian lepaskan pelindung GPRS dan jalankan Mega dari terminal Arduino. yaitu ubah setup() menjadi

//pfodSMS.init(&Serial, 9); // jangan jalankan GPRS shield parser.connect(&Serial); // sambungkan parser ke Serial alih-alih aliran SMS

Kemudian dari terminal Arduino Anda dapat mengetikkan {.} untuk meminta Mega kembali ke menu utama dan kemudian mengirim kembali perintah yang ingin Anda jalankan, mis. {A`1} untuk mengaktifkan relai dan {A`0} untuk mematikannya. (PfodApp biasanya mengirimkan pesan-pesan ini untuk Anda ketika Anda mengklik penggeser.) Kemudian tambahkan parser.println() debug tambahan untuk memantau apa yang dilakukan kode tambahan yang Anda tambahkan.

Memantau pelindung GPRS

Jika Anda ingin melihat apa yang dilakukan pelindung GPRS. Bagaimana memulai, menerima pesan SMS dll. Kemudian Anda perlu mengubah kabel pelindung menghubungkannya ke Mega Serial1 (serial one) dan membebaskan koneksi Serial (USB) untuk output debug ke Arduino IDE Monitor.

Untuk menghubungkan pelindung GPRS ke Mega 2560 Serial1, lepaskan tautan yang ditunjukkan di atas dan tambahkan kabel ke pin TX1 dan RX1 Mega.

Kemudian ubah kode setup() menjadi

void setup() { Serial1.begin(19200); // ubah Serial ke Serial 1 Serial.begin(57600); // CATATAN kecepatan baud cepat untuk port Serial USB // ke monitor Arduino IDE. for (int i=3; i>0; i--) { // tunggu beberapa detik untuk melihat apakah kita sedang diprogram delay(1000); } pinMode(cmd_A_pin, OUTPUT); pfodSMS.setDebugStream(&Serial); // perlu melakukan ini sebelum pfod_SMS.init // atau panggilan metode pfod_SMS lainnya // menginisialisasi SMS dan menghubungkan parser // mengubah baris berikutnya menjadi Serial1 pfodSMS.init(&Serial1, 9); // sambungkan Seeed GPRS shield V2 ke Serial1 alih-alih Serial parser.setDebugStream(&Serial); // perlu melakukan ini sebelum parser.connect // atau metode parser lainnya memanggil parser.connect(&pfodSMS); // sambungkan parser ke aliran SMS }

Sekarang Anda dapat menghapus komentar beberapa pengaturan Debug di perpustakaan pfodParser di ke file pfodSMS_SIM900.cpp.

Misalnya menghapus komentar #define DEBUG_SETUPakan mencetak (ke aliran debug) apa yang terjadi saat menyalakan pelindung GPRS dan menyiapkannya untuk menerima pesan SMS.

Membatalkan komentar #define DEBUG akan memberikan banyak informasi tentang pesan SMS yang diterima.

Itu dia !

Direkomendasikan: