Isi kandungan:

TinyLiDAR di Garaj Anda !: 10 Langkah
TinyLiDAR di Garaj Anda !: 10 Langkah

Video: TinyLiDAR di Garaj Anda !: 10 Langkah

Video: TinyLiDAR di Garaj Anda !: 10 Langkah
Video: Technical Presentation of tinyLiDAR's Command Terminal Sketch 2024, November
Anonim
TinyLiDAR di Garaj Anda!
TinyLiDAR di Garaj Anda!

Projek Pembuka Pintu Garasi WiFi DIY

Dunia IoT baru mula meletup - setiap syarikat teknologi di seluruh dunia berusaha untuk mengetahui bagaimana mereka akan masuk ke dunia baru ini. Ini peluang besar! Jadi untuk arahan ini, sesuai dengan tema IoT ini, kami akan mengkaji bagaimana anda boleh menjadikan demonstran IoT anda sendiri yang sebenarnya berguna;)

Ringkasan TL; DR

  • sediakan aliran kerja yang boleh dipercayai untuk pengekodan modul WiFi ESP32
  • kilat
  • kumpulkan di papan roti anda
  • muat turun kod aplikasi kami dan hapus zipnya
  • tambahkan kelayakan WiFi & IP statik anda
  • sambungkannya ke rangkaian WiFi anda
  • edit ambang dan pasangkannya di garaj anda
  • pasangkannya ke kenalan pembuka pintu garaj anda
  • dan klik!
  • TIDAK DIPERLUKAN PENJUALAN (kecuali pin untuk papan pelarian jika diperlukan)

Bahagian Diperlukan

  • tinyLiDAR masa modul sensor jarak penerbangan
  • Wipy3.0 atau papan WiFi berasaskan ESP32 yang serupa
  • Relay keadaan pepejal yang diasingkan secara optik (Omron G3VM-201AY1) untuk mengawal pembuka pintu garaj
  • Perintang 470ohm (5% 1/8 watt atau lebih besar tidak mengapa)
  • Suis butang tekan sesaat untuk pin BOOT (GPIO0) untuk menaik taraf firmware pada papan ESP32
  • USB ke Serial dongle untuk memuat naik kod dan berinteraksi dengan REPL pada ESP32 (gunakan versi 3.3v I / O)
  • Papan roti + wayar
  • Bekalan kuasa: 3.3V hingga 5V pada 500mA atau lebih tinggi. Anda boleh menggunakan pengecas telefon bimbit microUSB untuk bekalan kuasa & papan pemecah mikroUSB untuk dipasang ke papan roti anda.

Langkah 1: IoT Apa?

Apa?
Apa?

Tidak dinafikan anda sudah pernah mendengar istilah IoT di semua media, tetapi apakah maksudnya?

Secara longgar itu bermaksud menyambungkan pelbagai jenis sensor dan perkara yang dapat dikawal ke Internet. Hari-hari ini, Internet sinonim dengan tanpa wayar dan dengan itu kita mempunyai semua elektronik secara tiba-tiba menjadi tanpa wayar disambungkan melalui beberapa jenis pautan tanpa wayar seperti WiFi / BT / LoRa / SigFox dll. Setelah disambungkan ke Internet, kita dapat merasakan dan / atau mengawal perkara ini dari pengawal mudah alih kegemaran kami seperti telefon bimbit kami atau mengautomasikannya melalui beberapa aplikasi yang berjalan di pelayan di suatu tempat (iaitu awan).

Walaupun syarikat-syarikat besar telah memasarkan lebih banyak kawalan suara, penyambungan AI dan awan akhir-akhir ini; asas mewujudkan semua ini masih sama. Anda perlu menghubungkan "perkara" anda ke pautan tanpa wayar sebelum konsep ini dapat dilaksanakan. Oleh itu, mari kita mulakan dengan asas-asasnya dan pelajari bagaimana menyambungkan sensor jarak penerbangan kecilLiDAR ke modul WiFi kos rendah dan kemudian menunjukkan untuk menghantar data berulang-ulang ke seluruh rangkaian. Pada akhir arahan ini, anda akan mempunyai alat kawalan jauh pintu garaj yang berfungsi WiFi sendiri dengan monitor masa nyata untuk memeriksa sama ada pintu terbuka atau ditutup.

Secara teknikalnya, seperti yang ditunjukkan dalam rajah blok di atas, projek ini mengimplementasikan pelayan web micropython yang berjalan pada modul WiFi ESP32 menggunakan protokol komunikasi 'websockets' untuk menyampaikan data berulang-alik dari mana-mana penyemak imbas web mudah alih. Selain itu, kami mempunyai sensor jarak penerbangan kecilLiDAR mengambil ukuran berdasarkan permintaan sehingga anda dapat memeriksa apakah pintu garaj dibiarkan terbuka.

Langkah 2: Cubalah - Tidak Betul, Cubalah Sekarang

Cubalah - Tidak Betul, Cubalah Sekarang
Cubalah - Tidak Betul, Cubalah Sekarang

Ini semua bidang yang agak baru dalam elektronik sehingga akan diperlukan banyak eksperimen untuk membuat sesuatu berjalan lancar. Harapan kami adalah agar anda dapat membina asas kod ini dan membuat beberapa projek IoT yang lebih menarik sendiri.

Semua kod yang digunakan dalam artikel ini berfungsi dengan baik pada masa penulisan ini. Namun, ketika kadar inovasi di ruang IoT semakin meningkat, keadaan mungkin telah berubah pada saat anda membaca ini. Walau bagaimanapun, mengatasi masalah dan menyesuaikannya untuk kegunaan anda sendiri sekurang-kurangnya akan membawa anda ke ruang baru yang menarik ini dan mula berfikir seperti Jurutera IoT!

Sedia? Mari mulakan dengan langkah pertama untuk mewujudkan persekitaran pembangunan anda yang stabil.

Langkah 3: Micropython & ESP32

Micropython & ESP32
Micropython & ESP32

Modul WiFi ESP32 diciptakan oleh Espressif dan mereka telah bertambah baik sejak modul ESP8266 generasi pertama mereka hanya beberapa tahun yang lalu. Versi baru ini mempunyai lebih banyak memori, pemproses yang lebih kuat dan lebih banyak ciri daripada modul asal dan masih kos rendah. Gambar rajah di atas memberi anda gambaran tentang berapa banyak yang dapat mereka masukkan ke dalam cip ESP32 kecil ini. IC ESP32 itu sendiri adalah mikrokontroler dwi teras dengan radio WiFi 802.11b / g / n dan juga radio Bluetooth 4.2 yang disatukan. Modul berasaskan ESP32 biasanya akan menambahkan antena, memori FLASH tambahan dan pengatur kuasa.

Perhatikan bahawa apabila kita mengatakan modul ESP32 dalam arahan ini, kita merujuk kepada papan Pycom Wipy3.0 yang berdasarkan pada chip / modul ESP32. Berdasarkan pengalaman kami, papan Pycom nampaknya berkualiti tinggi berbanding modul ESP32 kos rendah biasa yang ada. Semasa mengembangkan, sangat berguna untuk mengurangkan sebilangan besar pemboleh ubah sehingga kami memilih papan Pycom dan bukannya generik kos rendah.

Untuk aplikasi OEM, pengekodan ESP32 biasanya dilakukan dalam bahasa C tetapi untungnya ada juga banyak pilihan untuk kita pilih sehingga anda tidak perlu turun ke tahap rendah ini jika anda tidak mahu. Kami memilih untuk menggunakan micropython untuk semua pengekodan kami dalam arahan ini.

Micropython seperti yang anda duga adalah subset bahasa pengaturcaraan Python penuh yang memberi kuasa kepada beberapa enjin carian dan laman web yang kurang dikenali seperti Google, YouTube dan Instagram;)

Logo mikropon
Logo mikropon

Micropython bermula sebagai projek kickstarter pada asalnya untuk pemproses STM32 tetapi telah menjadi sangat popular untuk banyak mikrokontroler sekarang. Kami menggunakan port mikrofon Pycom ESP32 rasmi terkini di sini.

Langkah 4: Cara Lebih Cepat

Jalan Lebih Cepat
Jalan Lebih Cepat

Kod micropython mempunyai GUI bahagian depan yang ringkas yang disebut REPL yang bermaksud "Baca – Eval – Cetakan Gelung". REPL ESP32 biasanya berjalan pada 115.2Kbaud sejak diakses melalui port bersiri. Gambar di atas menunjukkan arahan REPL ini ditandakan oleh tiga anak panahnya yang menunggu arahan langsung. Ini adalah cara mudah untuk mencuba perintah mudah kami dan kebanyakan pengekod menggunakannya untuk mengembangkan perisian mereka tetapi kami mendapati ia adalah cara yang sangat perlahan untuk digunakan. Oleh itu, kami memutuskan untuk melakukannya dengan cara yang berbeza untuk pengajaran ini …

Oleh kerana modul ESP32 mempunyai sambungan WiFi yang cepat, kita hanya perlu mengakses modul melalui WiFi melalui pelayan FTP yang sudah tertanam di dalam kod mikropon standard. Ini kemudian akan membolehkan kita menggunakan klien FTP seperti FileZilla untuk hanya menyeret dan melepaskan kod kita ke ESP32.

Oleh itu, kita perlu memasukkan modul ESP32 ke rangkaian WiFi anda terlebih dahulu. Modul Wipy3.0 menjalankan titik akses kecil secara lalai semasa dihidupkan sehingga anda dapat menyambung terus ke komputer tersebut dari komputer riba di 192.168.4.1. Lihat lebih banyak maklumat di sini jika anda menyukai kaedah ini.

Kami bekerja di desktop di makmal kami jadi kami mahu modul ESP32 disambungkan ke rangkaian kami. Untuk melakukan ini, kita hanya perlu memberikan modul alamat IP statik dan maklumat kata laluan kami untuk log masuk ke rangkaian WiFi kami.

Langkah 5: Muat turun Sekarang

Muat turun sekarang
Muat turun sekarang
Muat turun sekarang
Muat turun sekarang
Muat turun sekarang
Muat turun sekarang
Muat turun sekarang
Muat turun sekarang

Muat turun kod aplikasi sekarang dan buka zip fail ke folder sementara di komputer anda. Kemudian mulailah mengedit fail skrip mywifi.txt dan boot.py dengan kelayakan rangkaian WiFi anda sendiri.

Btw - editor teks kegemaran kami masih SublimeText. Ia boleh dimuat turun di sini.

Anda juga harus memuat turun perisian terminal TeraTerm dan perisian FileZilla FTP sekarang jika anda belum memilikinya di komputer anda.

Anda perlu menyiapkan FileZilla seperti yang ditunjukkan dalam gambar di atas. Juga dalam pengurus laman web anda perlu "menambah laman web baru" untuk login ESP32 menggunakan alamat IP statik yang anda pilih seperti yang ditunjukkan di atas. Pengguna adalah "mikro" dan Kata Laluan adalah "python". Penting untuk menggunakan FTP pasif dan hadkannya pada sambungan tunggal sahaja. Kami mendapati mengehadkan kelajuan muat naik juga membantu mengelakkan hang muat naik. Walaupun tidak ditunjukkan dalam gambar, akan bermanfaat untuk mengaitkan program SublimeText untuk jenis fail sehingga anda dapat mengedit kod dengan mengklik dua kali di sebelah kiri layar FTP. Untuk melakukan ini, hanya pergi ke menu Tetapan dan dalam persatuan Penyuntingan fail / Jenis Fail masukkan lokasi fail exe SublimeText anda untuk setiap persatuan. Contohnya, kami adalah:

js "C: / Sublime Text Build 3065 x64 / sublime_text.exe"

. "C: / Sublime Text Build 3065 x64 / sublime_text.exe" htm "C: / Sublime Text Build 3065 x64 / sublime_text.exe" html "C: / Sublime Text Build 3065 x64 / sublime_text.exe" py "C: / Sublime Teks Build 3065 x64 / sublime_text.exe "css" C: / Sublime Text Build 3065 x64 / sublime_text.exe"

Salin fail aplikasi yang diekstrak untuk instruksi ini ke folder baru yang disebut "FTP" di komputer anda seperti yang kami lakukan. Lebih mudah untuk menyeret dari sini ke dalam FileZilla nanti.

Ini biasanya idea yang baik untuk menjalankan firmware terbaru pada ESP32. Meningkatkan modul Pycom untuk menggunakan micropython terkini sangat mudah dan boleh dilakukan dalam masa lebih kurang 3 minit dengan alat kemas kini firmware mereka.

Pastikan anda menetapkan port COM untuk USB anda ke Serial dongle dan hapus pilihan mod berkelajuan tinggi seperti yang ditunjukkan dalam gambar "Komunikasi" di atas. Kami adalah port COM 2. Perhatikan bahawa untuk memasukkan modul ESP32 ke mod peningkatan ini, anda harus menekan butang GPIO0 / Boot (pada pin P2) sambil menekan dan melepaskan butang Reset.

Langkah 6: Masa Perkakasan

Masa Perkakasan
Masa Perkakasan
Masa Perkakasan
Masa Perkakasan

Sekarang adalah masa yang tepat untuk memasang perkakasan pada papan roti seperti yang ditunjukkan dalam rajah skema bergambar di atas.

Selepas ini semua selesai. Mulakan perisian terminal dengan port COM yang betul untuk dongle USB ke Serial anda tetapkan ke 115.2Kbaud.

Semasa menghidupkan, modul harus menunjukkan prompt REPL yang sudah biasa yang memberikan tiga anak panah ">>>".

Sekarang pergi ke fail mywifi.txt yang diedit dan salin semua kandungannya (CTRL + C). Kemudian pergi ke skrin terminal REPL dan tekan CTRL + E untuk masuk ke mod potong dan tampal. Anda kemudian klik kanan untuk menampal kandungan ke skrin REPL dan kemudian tekan kekunci CTRL + D untuk melaksanakan apa yang anda tempelkan.

Ia akan segera memulakan hitung mundur untuk mengatakan bahawa ia cuba menyambung ke rangkaian WiFi anda. Rakaman skrin di atas menunjukkan mesej sambungan yang berjaya.

Setelah disambungkan, anda boleh menggunakan FileZilla untuk menyambung ke pelayan FTP dalam modul di alamat IP statik yang telah anda pilih dalam fail mywifi.txt dan boot.py anda.

Langkah 7: Masih Bersama Kami?

Masih Bersama Kami?
Masih Bersama Kami?
Masih Bersama Kami?
Masih Bersama Kami?

Sekiranya berjaya sejauh ini maka bagus untuk anda! Kerja keras selesai:) Sekarang ia akan berjalan lancar - hanya sekumpulan potongan dan tampal dan anda akan terus berjalan sehingga anda dapat memasangnya di garaj anda.

Untuk mengedit mana-mana kod, anda boleh mengklik dua kali di sebelah kiri tetingkap FTP di FileZilla dan ia akan melancarkan SublimeText. Simpan perubahan anda dan kemudian seret ke seberang ke kanan iaitu tetingkap ESP32.

Buat masa ini, seret fail dari sebelah kiri ke sebelah kanan FileZilla untuk memuat naik setiap fail secara berasingan ke modul ESP32. Ini hanya memerlukan beberapa saat dan bukannya beberapa minit seperti kaedah REPL biasa. Harap maklum bahawa semua fail harus berada di bawah direktori root yang disebut "flash" di dalam papan Pycom. Anda boleh membuat penanda buku di FileZilla untuk memudahkan anda kembali ke sini untuk lain kali.

Sekiranya anda mendapat masalah di mana FileZilla digantung dan habis masa muat naik, anda akan melihat fail di bahagian ESP32 yang mempunyai 0 bait. Mencuba menulisnya boleh membuat anda gila kerana tidak pernah selesai tidak kira apa sahaja yang anda cuba! Ia adalah keadaan yang sangat pelik dan sering berlaku. Penyelesaian terbaik untuk ini adalah dengan menghapus fail 0 bait dan kitaran kuasa modul. Kemudian dapatkan salinan FRESH fail sumber untuk dimuat semula ke modul ESP32. Perhatikan bahawa salinan baru adalah kunci di sini. Entah bagaimana fail sumber tidak akan dimuat dengan betul jika hang seperti ini walaupun sekali sahaja.

Kami mendapati ia berguna untuk menyeret setiap fail secara berasingan ke modul ESP32 bermula dengan boot.py. Fail pertama ini bertanggungjawab untuk memasukkan modul anda ke rangkaian sehingga anda tidak perlu melakukan pemotongan dan tampal lagi di REPL. Walau bagaimanapun, anda boleh mengambil folder www dan menyeretnya dalam satu tangkapan. Ini selalu berfungsi untuk kami dalam perkembangan kami. Semua fail ini disimpan di dalam storan flash tidak mudah naik di dalam modul ESP32 sehingga mereka akan berada di sana setelah bekalan elektrik dilepaskan. Hanya fyi - main.py akan dilaksanakan selepas boot.py setiap kali modul dihidupkan.

Langkah 8: Petua Meretas

Petua Meretas
Petua Meretas

Lihat semua kod dan cuba ke Google untuk kata kunci yang tidak anda kenali. Setelah semuanya berjalan lancar, anda boleh cuba mengubah apa sahaja yang anda rasa untuk melihat apa yang berlaku.

Sekiranya ada yang tidak betul, anda selalu dapat membersihkan kod dan / atau mem-flash modul dalam masa lebih kurang 3 minit seperti yang telah anda lakukan sebelumnya.

Untuk memformat semula kilat dan menghapus semua kod anda dalam satu tangkapan, anda boleh menaip yang berikut dalam REPL:

import os

os.mkfs ('/ flash')

Kemudian lakukan kitaran kuasa atau tekan butang reset pada papan Wipy.

Perhatikan bahawa ada juga cara lain untuk memintas boot.py & main.py sekiranya perkara-perkara yang tidak diingini oleh anda. Sambungkan pin P12 buat sementara waktu ke pin output 3.3V dan tekan butang Reset seperti gambar di atas. Ini akan memotong semua kod anda dan terus ke REPL sekali sehingga anda dapat mengetahui perkara tanpa menghapus semua kod anda dari flash.

Setelah selesai memuat naik semua fail, tekan butang Reset pada modul ESP32 untuk menghidupkannya semula.

Anda akan melihat undur yang biasa di skrin terminal REPL kerana ia masuk ke rangkaian WiFi anda sekali lagi. Perbezaannya ialah kod ini sekarang berjalan dari fail boot.py kali ini.

Langkah 9: Halaman Web

Laman sesawang
Laman sesawang
Laman sesawang
Laman sesawang
Laman sesawang
Laman sesawang
Laman sesawang
Laman sesawang

Pelayan mikro harus aktif dan berjalan sekarang di ESP32, jadi cubalah menggunakan penyemak imbas desktop atau peranti mudah alih anda.

Pergi ke alamat IP statik anda dan anda akan melihat skrin yang serupa dengan yang di atas.

Terdapat dua halaman web yang dilayan dari server mikro kami yang berjalan di ESP32.

Yang pertama adalah halaman index.html lalai yang memberi anda butang BUKA / TUTUP sederhana untuk mensimulasikan jenis pembuka pintu garaj yang anda miliki. Semasa anda menekannya pada penyemak imbas web anda, anda akan melihat ikon gear biru besar muncul. Ini adalah pengesahan bahawa sambungan soket web berjaya dibuat dan anda telah menerima pengakuan dari pelayan bahawa arahan "tekan" anda telah diterima dengan betul. Anda juga harus melihat lampu LED hijau terang di papan Pycom semasa anda menekan butang ini. Sambungan soket web menghantar keadaan butang dengan menghantar pesanan ringkas teks "tekan" ketika anda menekannya dan "tekan" ketika anda melepaskannya. Sebagai pengakuan, pelayan mikro menghantar kembali teks ini tetapi menambahkan "_OK" padanya untuk mengatakan ia menerimanya dengan betul.

Sebaik sahaja anda menyambungkan terminal relay keadaan pepejal (SSR) yang terpencil secara optik ke pembuka pintu garaj anda (rujuk gambar rajah skema), kemudian menekan butang juga akan membuka / menutup pintu secara fizikal.

Beri masa beberapa saat dan cuba lagi jika anda tidak melihat ikon roda gigi biru muncul kerana mungkin but semula atau semacamnya. Perhatikan bahawa soket web akan ditutup secara automatik dalam waktu sekitar 20 saat jika anda tidak menggunakannya untuk mengelakkan penguncian. Juga perhatikan bahawa soket web berorientasikan sambungan, jadi anda perlu menghentikan soket web untuk menukar halaman atau jika tidak, anda mungkin tidak dapat menyambung kembali sehingga anda menekan semula pada modul ESP32. Untuk kod contoh kami, kami mempunyai beberapa cara menghentikan soket web: ketik teks status, titik berputar atau pautan hiper untuk pergi ke halaman seterusnya.

Halaman web kedua adalah untuk membaca pengukuran jarak dari sensor jarak penerbangan kecilLiDAR. Cukup tekan butang sekali dan ia akan mula mengalirkan bacaan jarak ke peranti mudah alih anda selama kira-kira 20 saat. Semasa anda menekan ke bawah, lampu LED akan menyala merah di papan Pycom sehingga anda dapat memberitahu bahawa ia menerima arahan tekan butang dari halaman ini.

Kedua-dua halaman memberi petunjuk bahawa pintu terbuka atau ditutup dengan jarak membaca dari tinyLiDAR. Pemboleh ubah doorThreshold perlu ditetapkan dalam kedua-dua fail html di bahagian skrip seperti yang ditunjukkan di sini:

//--------------------------

// **** Laraskan mengikut keperluan **** var doorThreshold = 100; // jarak dalam cm var ws_timeout = 20000; // waktu maksimum dalam ms untuk membolehkan pintu dibuka / ditutup lalai adalah 20 saat // -------------------------- // --- -----------------------

Anda perlu mengedit ambang ini untuk penyediaan garaj anda sehingga dapat mengesan bila pintu garaj digulung dan oleh itu DIBUKA atau digulung ke bawah dan oleh itu TUTUP. Setelah anda membuat pengeditan untuk ambang anda di kedua-dua fail html, muat naik semula fail html ini dan reboot untuk mengesahkan semuanya masih berfungsi dengan baik.

Sekiranya semuanya baik, anda sekarang boleh pergi ke depan dan memasang papan terbalik di garaj anda seperti yang ditunjukkan pada gambar di atas. Pasangkan pin 3 dan 4 SSR ke pembuka pintu garaj anda juga. Polariti tidak penting kerana kami menggunakan SSR versi MOSFET - hanya perlu memendekkan kenalan untuk mensimulasikan klik butang pada unit asas pintu garaj anda.

Langkah 10: Dan Itulah

Dan itu sahaja!
Dan itu sahaja!

Tahniah! Membuka pintu garaj anda semudah mengetuk telefon anda dan anda boleh memeriksa sama ada ia dibiarkan terbuka atau tidak dengan melakukan pengukuran masa nyata dengan tinyLiDAR:)

Anda juga kini boleh menggunakan ESP32 dengan soket web melalui WiFi untuk apa sahaja yang anda mahukan. Baca lebih lanjut mengenai "websockets" jika anda tidak biasa dengannya - mereka sangat pantas dan mudah digunakan.

Mengimplementasikan tinyLiDAR dengan ESP32 sangat mudah walaupun sensor pada asalnya dirancang untuk berjalan pada Arduino UNO. Kami mempunyai pelepasan beta Terminal GUI yang lebih terperinci yang menjalankan sebahagian besar perintah tinyLiDAR dalam mikropon pada ESP32 - lihat gambar di atas. Ini boleh didapati di bahagian muat turun kami bersama dengan manual ref, dll.

Lihat semua kod kami untuk memahami bagaimana semuanya bersatu dan cuba mengubah keadaan supaya anda dapat memanfaatkannya untuk melakukan apa sahaja yang anda mahukan.

Perlu diingat bahawa keselamatan tidak disebutkan di sini. Keselamatan adalah kawasan besar di IoT dan harus dipandang serius. Sekiranya anda ingin menggunakan projek ini di garaj anda, anda harus menyimpan kata laluan rangkaian WiFi anda dengan kuat dan selamat. Terdapat banyak maklumat di web mengenai keselamatan, jadi pastikan anda membaca yang terbaru dan terus mengetahuinya.

Terima kasih kerana membaca dan menggodam! Sorakan.

Disyorkan: