Isi kandungan:

Alat kawalan jauh SMS yang boleh dipercayai, selamat, disesuaikan (Arduino / pfodApp) - Tidak Perlu Pengekodan: 4 Langkah
Alat kawalan jauh SMS yang boleh dipercayai, selamat, disesuaikan (Arduino / pfodApp) - Tidak Perlu Pengekodan: 4 Langkah

Video: Alat kawalan jauh SMS yang boleh dipercayai, selamat, disesuaikan (Arduino / pfodApp) - Tidak Perlu Pengekodan: 4 Langkah

Video: Alat kawalan jauh SMS yang boleh dipercayai, selamat, disesuaikan (Arduino / pfodApp) - Tidak Perlu Pengekodan: 4 Langkah
Video: 50 САМЫХ ИННОВАЦИОННЫХ ЛИЧНЫХ ТРАНСПОРТНЫХ СРЕДСТВ 2021–2022 гг. 2024, November
Anonim
Alat kawalan jauh SMS yang boleh dipercayai, selamat, disesuaikan (Arduino / pfodApp) - Tidak Perlu Pengekodan
Alat kawalan jauh SMS yang boleh dipercayai, selamat, disesuaikan (Arduino / pfodApp) - Tidak Perlu Pengekodan

Kemas kini 6 Julai 2018: Versi 3G / 2G projek ini, menggunakan SIM5320, boleh didapati di sini

Kemas kini: 19 Mei 2015: Gunakan pfodParser library Versi 2.5 atau lebih tinggi. Ia menyelesaikan masalah yang dilaporkan kerana tidak membiarkan masa yang cukup untuk perisai menyambung ke rangkaian setelah menghidupkannya

Pengenalan

Bagaimana alat kawalan jauh pfodSMS berbeza dengan pelaksanaan lain: -

  • Ia Boleh dipercayai - arahan selalu dibalas dan mesej yang hilang diminta semula
  • Ia Selamat - menggunakan perlindungan kata laluan 128 bit
  • Ia tidak memerlukan akaun perkhidmatan web pihak ketiga - hanya memerlukan kad SIM aktif (tanpa pin)
  • Ia boleh disesuaikan - anda boleh menggunakan pfodDesigner untuk membuat menu tersuai anda sendiri
  • Mudah - pfodDesigner menghasilkan semua kod. Anda tidak perlu melakukan pengekodan.
  • Ini Fleksibel - semua skrin pfod tersedia melalui SMS, seperti sub-menu, senarai pilihan multi dan tunggal, input teks, log data dan plot.

Lihat reka bentuk mesej pfodSMS untuk bagaimana sambungan SMS dapat dipercayai. Lihat Cabaran dan Keselamatan Respons untuk pfodDevices yang disambungkan ke Internet untuk perincian keselamatan 128bit. Lihat menu pfodDesigner, Android / Arduino yang dibuat Ringkas untuk perincian mengenai merancang menu tersuai anda sendiri. Lihat pfodSpecification.pdf untuk perincian semua mesej dan skrin pfod yang boleh anda tambahkan sendiri.

Contoh Projek - kawalan Air Panas SMS

Sebagai contoh projek, instruksional ini menerangkan cara menghidupkan dan mematikan pemanas air panas anda melalui SMS dan periksa sama ada ia hidup atau mati. Anda memerlukan juruelektrik untuk memasangnya.

Langkah 1: Permulaan Pantas - Alat Kawalan Jauh SMS

Permulaan Pantas - Alat Kawalan Jauh SMS
Permulaan Pantas - Alat Kawalan Jauh SMS
Permulaan Pantas - Alat Kawalan Jauh SMS
Permulaan Pantas - Alat Kawalan Jauh SMS

Berikut adalah panduan permulaan pantas untuk membina kawalan air panas SMS anda sendiri.

  1. Beli bahagian dalam senarai ini..
  2. Pasang Arduino IDE versi 1.5.8 dan muat turun dan pasang pustaka pfodParser..
  3. Muat turun pfodDesigner percuma.
  4. Reka menu tersuai anda untuk menghidupkan dan mematikan input digital dari slaid menu pada telefon bimbit Android anda.
  5. Hasilkan kod, pilih perisai SeeedStudio SIM900 GPRS sebagai sambungannya. (Terdapat juga pilihan untuk pelindung IteadStudio SIM900).
  6. Pindahkan kod yang dihasilkan dari telefon bimbit anda ke IDE (lihat butiran pfodAppForAndroidGettingStarted.pdf), tambahkan kata laluan rahsia anda, kompilasi dan muat turun ke Arduino Mega 2560.
  7. Pasang kad SIM anda di pelindung GPRS dan pasangkan perisai ke Mega 2560. Pastikan pautan Serial ditetapkan ke Hardware Serial seperti gambar di atas..
  8. Sambungkan output digital ke keadaan pepejal, atau relay normal antara D3 dan GND (atau yang pernah anda pin dalam pfodDesigner). Lihat Cara Menambah Relay ke Arduino untuk maklumat lebih lanjut mengenai relay..
  9. Gunakan kuasa USB ke Mega. Kod perpustakaan menguatkan perisai GPRS untuk anda..
  10. Pasang pfodApp pada telefon bimbit Android anda dan sediakan sambungan SMS ke no telefon perisai. (lihat butiran pfodAppForAndroidGettingStarted.pdf). Tetapkan kata laluan untuk sambungan jika anda menambahkannya..
  11. Sambung dan lihat menu tersuai anda dipaparkan melalui SMS. Klik butang untuk menghidupkan atau mematikan geganti..
  12. Dapatkan juruelektrik anda untuk memasang geganti di litar Air Panas anda dan sambungkan bekalan kuasa USB untuk menghidupkan Mega dan perisai

Langkah 2: Maklumat Lebih Lanjut

pfodDesigner

PfodDesigner akan menghasilkan semua kod yang anda perlukan untuk menghidupkan dan mematikan keadaan pepejal atau relay lain, tetapi sambungan SMS di pustaka pfodParser menyokong semua skrin pfod jadi setelah anda memulakan, anda boleh menambah sub-menu, penggelangsar angka, slaid berbilang teks, skrin input teks, log data dan merancang semua melalui SMS. Lihat pfodSpecification.pdf untuk semua skrin dan mesej yang disokong.

Kod yang dihasilkan ada di sini. Ia tidak mempunyai permintaan dan hanya satu suis untuk menyimpan pesanan pendek. Menu panjang dihantar melalui beberapa mesej SMS yang memerlukan masa lebih lama untuk tiba. Sekiranya anda mempunyai menu yang panjang, kod sambungan sms di pustaka pfodParser menangani semua ini untuk anda.

Untuk menambahkan kata laluan ke sambungan SMS anda, ubah barisnya

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

tetapi gunakan kata laluan anda sendiri sehingga 32 digit hex, 0..9 A.. F. Kata laluan lebih pendek daripada 32 digit hex diisi dengan 0. Lihat Perisian Wifi / Internet Mudah dengan keselamatan 128bit (Arduino) untuk bagaimana menghasilkan kata laluan rawak dan mengeluarkannya ke kod QR untuk input mudah ke Android anda. Lihat juga pfodAppForAndroidGettingStarted.pdf

PfodDesigner juga akan menghasilkan kod untuk sambungan bluetooth dan wifi melalui Serial dan Ethernet melalui SPI semuanya dengan keselamatan 128bit pilihan

pfodApp

Perkara pertama yang perlu disedari ialah SMS lambat dan mungkin tidak sampai sama sekali atau tiba di luar pesanan. Oleh itu, apabila anda berhubung dengan pfodApp akan ada kelewatan sebelum ada tindak balas SMS. Sekiranya mesej hilang atau tertunda, pfodApp akan menghantarnya semula secara automatik selepas 3 minit. Selepas 5 kali percubaan seperti itu, pfodApp akan memberitahu bahawa sambungannya terputus. Anda boleh menyesuaikan masa 3mins di skrin edit sambungan pfodApp.

Sekiranya anda menambahkan kata laluan maka ada enam pesanan SMS (tiga setiap arah) sebelum menu utama diterima oleh pfodApp. Mesej tambahan ini hanya berlaku pada sambungan awal setelah itu tidak ada mesej tambahan ketika menggunakan kata laluan. Oleh itu mulakan tanpa kata laluan untuk melihat bahawa setiap perkara berfungsi dan kemudian tambahkan kata laluan kemudian.

Perisai SMS / GPRS

Masalah yang mungkin berlaku ialah kad SIM yang dilindungi oleh nombor pin atau tidak dibenarkan untuk menyambung ke rangkaian. Perpustakaan pfod secara automatik menghidupkan perisai GPRS dan mencari respons 'siap panggilan'. Sekiranya respons itu tidak sampai, perpustakaan akan dimatikan dan mencuba lagi, jadi jika anda melihat lampu kuasa pada perisai GPRS menyala selama 20 saat dan kemudian mati, terdapat masalah semasa menyambung ke rangkaian. Keluarkan SIM dan cubalah dalam telefon biasa. Pastikan anda tidak diminta nombor pin.

Sekiranya itu bukan masalahnya, maka anda harus menghidupkan debug permulaan, seperti yang dijelaskan di bawah, untuk melihat apa yang berlaku.

Menghidupkan perisai Mega / GPRS

Perisai menarik sehingga 2A berdenyut dan hingga 0.5A secara berterusan. Dengan andaian bekalan bateri 12V, 0.5A melebihi kapasiti bekalan kuasa Mega on board. Jadi perisai ini TIDAK boleh digerakkan dari input 7V hingga 12V pada Mega. Alternatifnya ialah menghidupkan Mega dan perisai melalui sambungan USB. Saya menggunakan bekalan USB 1A. Untuk ujian, saya menggunakan hab berkuasa Belkin (F4U020) untuk mengelakkan pengambilan arus berlebihan dari port USB komputer saya.

Untuk bekalan bateri 12V, saya sarankan menggunakan pengecas USB 5V Automotif berkualiti, 1A, atau lebih tinggi. Bekalan USB 5V Automotif yang berkualiti harus dirancang untuk mengatasi lonjakan voltan yang berlaku dalam sistem elektrik kereta dan juga sesuai untuk kebanyakan sistem pengecasan 12V.

Relay Keadaan Pepejal

Oleh kerana projek contoh ini mengendalikan pemanas Air Panas, (beban resistif), relay Solid State sangat sesuai. Sekiranya anda mahu menghidupkan atau mematikan motor, mulakan penjana dan lain-lain, berbincang dengan juruelektrik anda mengenai geganti yang sesuai untuk pekerjaan. Sekiranya anda memerlukan geganti kuasa tinggi, anda boleh menggunakan pemacu geganti kecil oleh papan arduino untuk menghidupkan dan mematikan geganti kuasa.

Terdapat banyak versi relay keadaan pepejal yang tersedia. Pastikan anda membeli yang dapat menangani arus dan voltan pemanas anda dan dapat dikawal oleh 5V dc dan beberapa miliamp yang tersedia dari pin output Arduino. Yang digunakan di sini, FOTEK SSR-40 DA, bertukar hingga 380VAC pada 40Amps dan dikawal oleh apa-apa perkara lebih daripada 3V dc dan mengambil masa kurang dari 7mA.

Anda mesti menggunakan alat pendingin dan anda mesti menggunakan lapisan pelindung haba yang nipis atau gris haba di bahagian belakang geganti keadaan pepejal sebelum memasangkannya ke pendingin. Ideanya adalah untuk menutup permukaan sepenuhnya dengan lapisan tertutup penutup sink kepala untuk mengisi lembah mikroskopik di permukaan logam. Apabila dihidupkan suis keadaan pepejal turun 1.6V yang menghasilkan haba 16Watt pada 10Amps. Heat sink perlu menghilangkan kepanasan ini sehingga perlu dipasang di udara bebas bukan di dalam kotak plastik.

Kelewatan adalah Jahat

Perisai GPRS menyampaikan mesej SMS melalui sambungan Serial pada bila-bila masa dan gelung utama anda () mesti memanggil cmd = parser.parse (); sering memproses data Serial sebelum penyangga 64byte dalam kod perpustakaan Arduino mengisi dan data hilang.

Oleh itu, anda mesti memastikan gelung utama () berjalan dengan cepat. Anda tidak boleh menggunakan penundaan () dan harus memeriksa bahawa tidak ada perpustakaan yang anda gunakan mempunyai kelewatan di dalamnya. Dengan menggunakan kadar baud SIM900 19200 lalai melalui Hardware Serial, saya tidak perlu menambah saiz penyangga dalam kod perpustakaan Arduino. Saya tidak menggunakan Perisian Serial, hanya sambungan Serial dan Serial1, Hardware Serial, dan hampir semua mesej yang dihantar oleh pfodApp sangat kecil, 10 atau 12 bait. Walau bagaimanapun, anda boleh meningkatkan ukuran penyangga Arduino, jika anda mahu, dengan mengubah definisi dalam HardwareSerial.h dari #define SERIAL_BUFFER_SIZE 64 menjadi #define SERIAL_BUFFER_SIZE 128

Walau bagaimanapun, apa yang saya dapati adalah bahawa jika saya mengaktifkan output debugging, seperti yang dijelaskan di bawah, saya harus mempunyai kadar baud yang sangat cepat untuk sambungan terminal jika tidak, kelewatan yang diperkenalkan dengan menghantar mesej debug ke terminal menyebabkan sebahagian daripada mesej SMS terlewat.

Pemasangan

Saya menambah perisai terminal skru sehingga saya mempunyai sesuatu untuk menghubungkan wayar relay Solid State. Saya belum mempunyai juruelektrik saya memasang alat kawalan. Ia perlu dimasukkan ke dalam kotak bertebat, tetapi dengan pendingin yang keluar melalui slot dan disambungkan ke kabel kuasa air panas.

Langkah 3: Cadangan untuk Penambahbaikan Lebih Lanjut - Makluman, Log Data dan Perancangan

Contoh projek di atas yang hanya dipaparkan adalah bagaimana air dihidupkan atau dimatikan dan membolehkan anda menukarnya. Tetapi sambungan SMS menangani semua mesej pfod (lihat pfodSpecification.pdf)

Sekiranya anda menambahkan sensor suhu ke arduino anda, anda juga dapat mengirim monitor suhu dan mengirim kembali bacaan secara berkala. Untuk mengirim kembali pembacaan data adalah sama untuk bluetooth, wifi atau SMS, cukup tambahkan kod seperti contoh di bawah. Lihat Pencatatan Data dan Perancangan untuk maklumat lebih terperinci dan contoh pencatatan data dan perencanaan data.

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

Apabila pustaka pfodSMS melihat baris baru dari println (), ia akan menghantar data mentah sebagai SMS. Di telefon bimbit anda, biarkan pfodApp berjalan di latar belakang dan telefon bimbit anda akan memberitahu anda apabila SMS diterima. Buka pfodApp sekali lagi untuk membawanya ke depan dan kemudian buka skrin Raw Data dari menu telefon bimbit untuk melihat data. Catatan: Mesej pfodSMS adalah watak UTF-8 bersama dengan nombor sambungan dan mesej, dikodkan menggunakan pengekodan Base64 sehingga tidak kelihatan seperti teks biasa. Lihat reka bentuk mesej pfodSMS untuk semua butirannya.

Anda boleh menggunakan proses yang sama untuk menghantar amaran apabila sesuatu berubah dari jauh. parser.println (F (“Suhu Luar di bawah 0 ℃”)); Catatan: watak ℃ UTF-8 dalam rentetan. pfodSMS meneruskan semua watak UTF-8 ke pfodApp.

Langkah 4: Menyahpepijat Semasa Menggunakan Sambungan SMS di PfodParser Library

Menyahpepijat Semasa Menggunakan Sambungan SMS di PfodParser Library
Menyahpepijat Semasa Menggunakan Sambungan SMS di PfodParser Library
Menyahpepijat Semasa Menggunakan Sambungan SMS di PfodParser Library
Menyahpepijat Semasa Menggunakan Sambungan SMS di PfodParser Library

PfodDesigner menghasilkan kod yang berfungsi, tetapi anda mungkin mahu menyahpepijat kod tambahan anda sendiri atau melihat apa yang berlaku semasa perisai GPRS memulakan atau menerima mesej SMS. Terdapat beberapa pendekatan yang boleh anda lakukan.

Menyahpepijat kod anda sendiri

Sekiranya anda menyahpepijat kod anda sendiri, anda boleh mengomentari garis pfodSMS dan menyambung penghurai ke Serial dan kemudian mengeluarkan perisai GPRS dan jalankan Mega dari terminal Arduino. iaitu menukar persediaan () ke

//pfodSMS.init(&Serial, 9); // jangan mulakan parser.connect perisai GPRS (& Serial); // sambungkan penghurai ke Serial dan bukannya aliran SMS

Kemudian dari terminal Arduino anda boleh menaip {.} Untuk mendapatkan Mega untuk mengembalikan menu utama dan kemudian menghantar kembali arahan yang ingin anda laksanakan, mis. {A`1} untuk menghidupkan geganti dan {A`0} untuk mematikannya. (PfodApp biasanya menghantar mesej ini untuk anda apabila anda mengklik slaid.) Kemudian tambahkan parser.println debugging tambahan () untuk memantau kod tambahan yang anda tambah lakukan.

Memantau perisai GPRS

Sekiranya anda ingin melihat apa yang dilakukan oleh perisai GPRS. Bagaimana ia dimulakan, menerima pesanan SMS dll. Kemudian anda perlu menukar kabel perisai sambungkan ke Mega Serial1 (siri satu) dan lepaskan sambungan Serial (USB) untuk output debug ke Arduino IDE Monitor.

Untuk menyambungkan pelindung GPRS ke Mega 2560 Serial1, lepaskan pautan yang ditunjukkan di atas dan tambahkan wayar ke pin TX1 dan RX1 Mega.

Kemudian ubah kod persediaan () ke

persediaan tidak sah () {Serial1.begin (19200); // ubah Serial ke Serial 1 Serial.begin (57600); // PERHATIKAN kadar baud pantas untuk port Serial USB // ke monitor Arduino IDE. untuk (int i = 3; i> 0; i--) {// tunggu beberapa saat untuk melihat apakah kita diprogramkan kelewatan (1000); } pinMode (cmd_A_pin, OUTPUT); pfodSMS.setDebugStream (& Serial); // perlu melakukan ini sebelum pfod_SMS.init // atau kaedah pfod_SMS lain memanggil // memulakan SMS dan menyambung penghurai // menukar baris seterusnya ke Serial1 pfodSMS.init (& Serial1, 9); // sambung Perisai GPRS Terlihat V2 ke Serial1 dan bukannya Serial parser.setDebugStream (& Serial); // perlu melakukan ini sebelum parser.connect // atau kaedah parser lain memanggil parser.connect (& pfodSMS); // sambungkan penghurai ke aliran SMS}

Sekarang anda dapat melepaskan beberapa tetapan Debug di pustaka pfodParser di sebelah fail pfodSMS_SIM900.cpp.

Contohnya, un-comment #define DEBUG_SETUP akan mencetak (ke aliran debug) apa yang berlaku semasa menghidupkan perisai GPRS dan menyiapkannya untuk menerima pesanan SMS.

#Define DEBUG tanpa komen akan memberikan banyak maklumat mengenai mesej SMS yang diterima.

Itu sahaja!

Disyorkan: