![Add-on Operator Gerbang Terkawal WebApp (IoT): 20 Langkah (dengan Gambar) Add-on Operator Gerbang Terkawal WebApp (IoT): 20 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/001/image-462-80-j.webp)
Isi kandungan:
- Langkah 1: Kumpulkan Bahagian
- Langkah 2: Bekalan
- Langkah 3: Saiz Sarung
- Langkah 4: Penukar Wire DC-DC
- Langkah 5: Kuasa Wayar ke Peranti
- Langkah 6: Input Modul Relay Kawat
- Langkah 7: Jumper Kuasa IMP
- Langkah 8: Input Status Gerbang Kawat
- Langkah 9: Cetak atau Beli Kes
- Langkah 10: Hiaskan Kes Anda
- Langkah 11: Lubang Bor untuk Wayar
- Langkah 12: Siapkan dan Pasang Kabel Hookup
- Langkah 13: Kabel Hookup Laluan
- Langkah 14: Pasang Komponen
- Langkah 15: Wayar Pengait Seal
- Langkah 16: Tutup Kes
- Langkah 17: Pasang di Gate Operator
- Langkah 18: Tetapkan Mod Relay Aux
- Langkah 19: Ejen IMP dan Kod Peranti
- Langkah 20: Kod PHP Perkhidmatan Web
2025 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2025-01-23 15:01
![Add-on Pengendali Gerbang Terkawal WebApp (IoT) Add-on Pengendali Gerbang Terkawal WebApp (IoT)](https://i.howwhatproduce.com/images/001/image-462-81-j.webp)
![Add-on Pengendali Gerbang Terkawal WebApp (IoT) Add-on Pengendali Gerbang Terkawal WebApp (IoT)](https://i.howwhatproduce.com/images/001/image-462-82-j.webp)
![Add-on Pengendali Gerbang Terkawal WebApp (IoT) Add-on Pengendali Gerbang Terkawal WebApp (IoT)](https://i.howwhatproduce.com/images/001/image-462-83-j.webp)
Saya mempunyai pelanggan yang mempunyai kawasan berpagar di mana banyak orang perlu datang dan pergi. Mereka tidak mahu menggunakan papan kekunci di bahagian luar dan hanya mempunyai sejumlah pemancar keyfob. Mencari sumber yang berpatutan untuk keyfob tambahan sukar. Saya fikir akan menjadi peluang terbaik untuk menaik taraf operator gerbang Liftmaster ini agar sesuai dengan IoT dengan perkakasan tersuai, API web, dan antara muka aplikasi web. Ini bukan sahaja dapat menyelesaikan masalah akses massa tetapi juga membuka fungsi tambahan!
Dalam foto terakhir di atas adalah unit ujian yang saya jalankan hampir setahun dalam beg ziplock. Saya fikir sudah tiba masanya untuk peningkatan!
Ini adalah penyelesaian yang berfungsi sepenuhnya dengan semua kod, maklumat perkakasan, dan reka bentuk yang disenaraikan di sini.
Semua fail projek juga dihoskan di GitHub: github.com/ThingEngineer/IoT-Gate-Operator-Addon
Contoh antara muka CodeIgniter WebApp dihoskan di sini: projects.ajillion.com/gate Contoh ini tidak disambungkan ke gerbang langsung tetapi merupakan antara muka dan kod yang tepat yang berjalan di pintu gerbang (tolak beberapa ciri keselamatan).
--
Untuk integrasi yang lebih besar, anda boleh menggunakan perpustakaan IFTTT untuk Electric Imp.
Langkah 1: Kumpulkan Bahagian
![Kumpulkan Bahagian Kumpulkan Bahagian](https://i.howwhatproduce.com/images/001/image-462-84-j.webp)
- Anda memerlukan IMP Elektrik dengan sekurang-kurangnya 4 GPIO yang ada, saya menggunakan IMP001 dengan papan pelarian April.
- Pengatur untuk menurunkan voltan sumber ke 5V. Saya menggunakan Modul Down Down DC-DC Buck Converter. Versi MP1584EN eBoot dari Amazon.
- Modul relay dwi (atau lebih) atau peranti pensuisan serupa yang akan berfungsi dengan output IMP. Saya menggunakan Modul Relay JBtek 4 Channel DC 5V yang satu ini dari Amazon.
- Terminal skru 4 wayar. Saya menggunakan ini 5Pcs 2 Rows 12P Wire Connector Screw Terminal Barrier Block 300V 20A dari Amazon.
Langkah 2: Bekalan
![Bekalan Bekalan](https://i.howwhatproduce.com/images/001/image-462-85-j.webp)
Anda juga memerlukan:
- Akses ke pencetak 3D atau kotak projek kecil
- 4 skru kecil kira-kira 4mm x 6mm untuk penutup sarung
- Kawat cangkuk
- Pemotong wayar
- Pelucut wayar
- Pemutar skru kecil
- Besi pematerian
- Gam panas atau silikon
- Ikatan zip
Langkah 3: Saiz Sarung
![Saiz Kes Saiz Kes](https://i.howwhatproduce.com/images/001/image-462-86-j.webp)
Susun bahagian anda untuk menentukan casing ukuran apa yang anda perlukan. Dengan susun atur seperti yang digambarkan, saya memerlukan casing selebar 140mm, kedalaman 70mm, dan tinggi 30mm.
Langkah 4: Penukar Wire DC-DC
![Penukar Wire DC-DC Penukar Wire DC-DC](https://i.howwhatproduce.com/images/001/image-462-87-j.webp)
Potong 3 pasang wayar penyambungan merah dan hitam untuk sambungan kuasa masuk dan keluar dari papan penukar DC-DC.
- Input: 100mm
- Keluaran ke IMP: 90mm
- Modul Output ke Relay: 130mm
Memasukkannya ke papan anda seperti yang ditunjukkan.
Langkah 5: Kuasa Wayar ke Peranti
![Kuasa Kawat ke Peranti Kuasa Kawat ke Peranti](https://i.howwhatproduce.com/images/001/image-462-88-j.webp)
- Sambungkan input penukar DC-DC ke dua titik pada blok terminal skru.
- Selesaikan wayar output 5V pendek ke IMP.
- Memateri wayar output 5V yang lebih panjang ke modul geganti.
Langkah 6: Input Modul Relay Kawat
![Input Modul Relay Kawat Input Modul Relay Kawat](https://i.howwhatproduce.com/images/001/image-462-89-j.webp)
- Potong wayar 4 x 90mm untuk sambungan input modul geganti. Saya menggunakan 4 warna yang berasingan untuk memudahkan rujukan di kemudian hari semasa membuat kod.
- Memateri wayar ke modul geganti input 1-4 kemudian ke 4 tempat GPIO IMP pertama (Pin1, 2, 5, & 7) masing-masing.
Langkah 7: Jumper Kuasa IMP
![Jumper Kuasa IMP Jumper Kuasa IMP](https://i.howwhatproduce.com/images/001/image-462-90-j.webp)
Anda mungkin perlu menggunakan kuasa USB semasa anda pada awalnya memprogram dan menguji IMP anda. Apabila anda selesai, pastikan untuk mengalihkan jumper kuasa ke bahagian BAT.
Langkah 8: Input Status Gerbang Kawat
![Input Status Gerbang Kawat Input Status Gerbang Kawat](https://i.howwhatproduce.com/images/001/image-462-91-j.webp)
- Potong wayar 2 x 80mm untuk input status sate.
- Sambungkan wayar ke baki 2 terminal skru.
- Kabel solder di sebelah tempat IMP GPIO (Pin8 & 9) masing-masing.
Langkah 9: Cetak atau Beli Kes
![Cetak atau Beli Kes Cetak atau Beli Kes](https://i.howwhatproduce.com/images/001/image-462-92-j.webp)
Anda boleh memuat turun. STL atau. F3D saya untuk kes ini di GitHub atau Thingiverse
Sekiranya anda tidak mempunyai akses ke pencetak 3D, kes projek generik kecil akan berfungsi.
Langkah 10: Hiaskan Kes Anda
![Hiaskan Kes Anda Hiaskan Kes Anda](https://i.howwhatproduce.com/images/001/image-462-93-j.webp)
Kerana!
Saya meletakkan beberapa teks lekukan pada saya dan hanya mewarnakannya dengan tajam hitam. Sekiranya anda merasa berani, anda boleh menggunakan cat akrilik, cat kuku atau sesuatu yang lain untuk menjadikannya lebih licin.
Langkah 11: Lubang Bor untuk Wayar
![Lubang Bor untuk Wayar Lubang Bor untuk Wayar](https://i.howwhatproduce.com/images/001/image-462-94-j.webp)
Bor lubang kecil 10-15mm di sisi berhampiran bahagian tengah di mana semua wayar akan bersatu.
Saya menggunakan Unibit untuk lubang plastik bersih dan licin.
Langkah 12: Siapkan dan Pasang Kabel Hookup
![Menyiapkan dan Memasang Kabel Hookup Menyiapkan dan Memasang Kabel Hookup](https://i.howwhatproduce.com/images/001/image-462-95-j.webp)
![Menyiapkan dan Memasang Kabel Hookup Menyiapkan dan Memasang Kabel Hookup](https://i.howwhatproduce.com/images/001/image-462-96-j.webp)
Potong wayar 9 x 5-600mm untuk menghubungkan peranti kami ke papan operator pintu.
- 2 untuk input kuasa 24V
- 3 untuk status gerbang (2 input dan landasan bersama)
- 2 untuk isyarat pintu terbuka
- 2 untuk isyarat pintu tutup
Putar bersama setiap kumpulan yang disenaraikan di atas menggunakan latih tubi. Ini akan menjadikan segalanya lebih mudah dan kelihatan lebih baik.
Tanggalkan dan sambungkan setiap wayar ke terminal masing-masing seperti yang ditunjukkan.
Langkah 13: Kabel Hookup Laluan
![Kawat Hookup Laluan Kawat Hookup Laluan](https://i.howwhatproduce.com/images/001/image-462-97-j.webp)
Arahkan kabel penyambungan melalui lubang seperti yang ditunjukkan.
Langkah 14: Pasang Komponen
![Komponen Lekapan Komponen Lekapan](https://i.howwhatproduce.com/images/001/image-462-98-j.webp)
Letakkan dan pasang komponen dengan manik kecil gam panas atau silikon. Jangan gunakan terlalu banyak sekiranya anda perlu mengeluarkan bahagian, gunakan cukup untuk mengamankannya.
Pada asalnya saya ingin mencetak casing dengan klip / tab untuk meletakkan papan di tempatnya tetapi saya perlu memasangnya dan tidak mempunyai masa. Menambah klip papan ke kes anda akan menjadi sentuhan yang bagus.
Langkah 15: Wayar Pengait Seal
![Kabel Pengait Seal Kabel Pengait Seal](https://i.howwhatproduce.com/images/001/image-462-99-j.webp)
Tutup wayar penyambung dengan gam panas atau silikon.
Langkah 16: Tutup Kes
![Tutup Kes Tutup Kes](https://i.howwhatproduce.com/images/001/image-462-100-j.webp)
Saya menggunakan skru kecil ~ 4mm pada senarai cetakan 3D ini. Sekiranya anda bimbang tentang kotoran atau kelembapan letakkan sebiji silikon atau gam panas di sekitar sendi penutup sebelum menutupnya.
Langkah 17: Pasang di Gate Operator
![Pasang di Operator Gerbang Pasang di Operator Gerbang](https://i.howwhatproduce.com/images/001/image-462-101-j.webp)
![Pasang di Operator Gerbang Pasang di Operator Gerbang](https://i.howwhatproduce.com/images/001/image-462-102-j.webp)
Di papan utama:
- Hook kedua wayar yang disambungkan ke output relay 1 ke terminal Open Gate. (merah / coklat dalam foto)
- Pasangkan dua wayar yang disambungkan ke output relay 2 ke terminal Close Gate. (kuning / biru dalam foto)
- Hubungkan dua wayar yang disambungkan ke input penukar DC-DC ke terminal skru kuasa aksesori 24V (merah / hitam dalam foto)
Di papan pengembangan
- Jumper terminal skru umum relay bersama dengan sekeping kecil dawai
- Sambungkan landasan bersama ke salah satu terminal skru umum relay (hijau dalam foto)
- Sambungkan input status 2 pintu (IMP Pin8 & 9) ke terminal skru terbuka (NO) relay normal (kelabu / kuning dalam foto)
Laluan wayar, ikat zip agar kelihatan kemas dan cari tempat untuk memasang atau meletakkan beg anda.
Terdapat foto resolusi penuh tambahan yang dihoskan di repositori GitHub.
Langkah 18: Tetapkan Mod Relay Aux
![Tetapkan Mod Relay Aux Tetapkan Mod Relay Aux](https://i.howwhatproduce.com/images/001/image-462-103-j.webp)
Tetapkan suis geganti tambahan seperti yang ditunjukkan dalam foto.
Ini akan memberi isyarat IMP yang diperlukan untuk menentukan apakah pintu ditutup, dibuka, dibuka atau ditutup.
Langkah 19: Ejen IMP dan Kod Peranti
![Ejen IMP dan Kod Peranti Ejen IMP dan Kod Peranti](https://i.howwhatproduce.com/images/001/image-462-104-j.webp)
Kod Ejen Impak Elektrik:
- Buat Model baru di Electric Imp IDE:
- Ganti URL untuk menunjuk ke pelayan anda
// Fungsi pengendali
fungsi httpHandler (req, resp) {cuba {local d = http.jsondecode (req.body); //server.log(d.c); jika (d.c == "btn") {//server.log(d.val); device.send ("btn", d.val); resp.send (200, "OK"); }} catch (ex) {// Sekiranya terdapat ralat, hantarkan kembali di server respons.log ("error:" + ex); resp.send (500, "Ralat Pelayan Dalaman:" + ex); }} // Daftar pengendali HTTP http.onrequest (httpHandler); // fungsi fungsi pengendali GateStateChange gateStateChangeHandler (data) {// URL ke perkhidmatan tempatan url = "https://projects.ajillion.com/save_gate_state"; // Tetapkan tajuk Jenis Kandungan ke tajuk tempatan json = {"Content-Type": "application / json"}; // Encode data yang diterima dan log badan tempatan = http.jsonencode (data); pelayan.log (badan); // Hantar data ke laman web anda http.post (url, header, body).sendsync (); } // Mendaftar device.on pengendali gateStateChange ("gateStateChange", gateStateChangeHandler);
Kod Ejen Impak Elektrik:
- Tetapkan peranti Imp ke model anda
- Sahkan pin perkakasan diasingkan sebagai disambungkan
// Perpustakaan Debouce
#require "Button.class.nut: 1.2.0" // Alias untuk gateBuka pin GPIO (low low) gateOpen <- hardware.pin2; // Alias untuk gateClose control GPIO pin (active low) gateClose <- hardware.pin7; // Konfigurasikan 'gateOpen' untuk menjadi output digital dengan nilai permulaan digital 1 (tinggi) gateOpen.configure (DIGITAL_OUT, 1); // Konfigurasikan 'gateClose' untuk menjadi output digital dengan nilai permulaan digital 1 (tinggi) gateClose.configure (DIGITAL_OUT, 1); // Alias untuk pin GPIO yang menunjukkan pintu bergerak (N. O.) gateMovingState <- Button (hardware.pin8, DIGITAL_IN_PULLUP); // Alias untuk pin GPIO yang menunjukkan pintu terbuka sepenuhnya (N. O.) gateOpenState <- Butang (hardware.pin9, DIGITAL_IN_PULLUP); // Pemboleh ubah global untuk menahan keadaan pintu (Open = 1 / Closed = 0) lastGateOpenState tempatan = 0; // Objek Latch Timer local latchTimer = null agent.on ("btn", function (data) {switch (data.cmd) {case "open": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer)); latchTimer = imp.wakeup (1, releaseOpen); server.log ("Open command diterima"); break case "latch30m": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (1800, releaseOpen); server.log ("perintah Latch30m diterima"); break case "latch8h": gateOpen.write (0); if (latchTimer) imp.cancelwakeup (latchTimer); latchTimer = imp.wakeup (28800, releaseOpen); server.log ("Perintah Latch8h diterima"); break case "close": if (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); gateClose.write (0); latchTimer = imp.wakeup (1, releaseClose); server.log ("Tutup perintah sekarang diterima"); rehat lalai: server.log ("Perintah butang tidak dikenali");}}); pelepasan fungsiBuka () {if (latchTimer) imp.cancelwakeup (latchTimer); gateOpen.write (1); //server.log("Timer yang dilepaskanPerbuka suis terbuka "); } pelepasan fungsiTutup () {if (latchTimer) imp.cancelwakeup (latchTimer); gateClose.write (1); //server.log("Timer dilepaskan gateClose switch contact "); } gateMovingState.onPress (function () {// Relay diaktifkan, gate bergerak //server.log("Gate sedang dibuka "); data tempatan = {" gatestate ": 1," timer ": hardware.millis ()}; agent.send ("gateStateChange", data);}). onRelease (function () {// Relay dilepaskan, gate berada dalam keadaan rehat //server.log("Gate ditutup "); data tempatan = {"gatestate": 0, "timer": hardware.millis ()}; agent.send ("gateStateChange", data);}); gateOpenState.onPress (function () {// Relay diaktifkan, gate terbuka sepenuhnya //server.log("Gate is open "); data tempatan = {" gatestate ": 2," timer ": hardware.millis ()}; agent.send ("gateStateChange", data);}). onRelease (function () {// Relay dilepaskan, gate tidak dibuka sepenuhnya //server.log("Gate sedang tutup "); data tempatan = {"gatestate": 3, "timer": hardware.millis ()}; agent.send ("gateStateChange", data);});
Langkah 20: Kod PHP Perkhidmatan Web
![Kod PHP Perkhidmatan Web Kod PHP Perkhidmatan Web](https://i.howwhatproduce.com/images/001/image-462-105-j.webp)
Saya menulis kod ini untuk rangka kerja CodeIgniter kerana saya menambahkannya ke projek lama yang sudah ada. Pengawal dan kod pandangan dapat disesuaikan dengan mudah mengikut kerangka pilihan anda.
Untuk memastikan semuanya mudah, saya menyimpan data JSON ke fail rata untuk penyimpanan data. Sekiranya anda memerlukan pembalakan atau fungsi berkaitan data yang lebih kompleks, gunakan pangkalan data.
Perpustakaan ajax yang saya tulis dan gunakan dalam projek ini boleh memuat turun dari repositori GitHub: ThingEngineer / Codeigniter-jQuery-Ajax
Kod Pengawal PHP:
- aplikasi / pengawal / projek.php
- Pastikan laluan data dapat diakses oleh skrip PHP anda, baik dari segi lokasi dan keistimewaan membaca / menulis.
load-> helper (array ('file', 'tarikh'));
$ data = json_decode (read_file ('../ app / logs / gatestate.data'), BENAR); beralih ($ data ['gatestate']) {kes 0: $ view_data ['gatestate'] = 'Closed'; rehat; kes 1: $ view_data ['gatestate'] = 'Membuka …'; rehat; kes 2: $ view_data ['gatestate'] = 'Buka'; rehat; kes 3: $ view_data ['gatestate'] = 'Penutup …'; rehat; } $ last_opened = json_decode (read_file ('../ aplikasi / log / projek / gateopened.data'), BENAR); $ view_data ['last_opened'] = jangka masa ($ last_opened ['last_opened'], masa ()). 'lalu'; // Load View $ t ['data'] = $ view_data; $ this-> load-> view ('gate_view', $ t); } fungsi save_gate_state () {$ this-> load-> helper ('file'); $ data = file_get_contents ('php: // input'); write_file ('../ app / log / projek / gatestate.data', $ data); $ data = json_decode ($ data, BENAR); if ($ data ['gatestate'] == 1) {$ last_opened = array ('last_opened' => masa ()); write_file ('../ aplikasi / log / projek / gateopened.data', json_encode ($ last_opened)); }} fungsi get_gate_state () {$ this-> load-> helper (array ('file', 'date')); $ this-> load-> library ('ajax'); $ data = json_decode (read_file ('../ aplikasi / log / projek / gatestate.data'), BENAR); $ last_opened = json_decode (read_file ('../ aplikasi / log / projek / gateopened.data'), BENAR); $ data ['last_opened'] = jangka masa ($ last_opened ['last_opened'], masa ()). 'lalu'; $ this-> ajax-> output_ajax ($ data, 'json', SALAH); // hantar data json, jangan laksanakan permintaan ajax}} / * Akhir projek fail.php * / / * Lokasi:./application/controllers/projects.php * /
Kod Paparan PHP:
Saya menggunakan Bootstrap untuk bahagian depan kerana cepat, mudah dan responsif. Anda boleh memuat turunnya di sini: https://getbootstrap.com (jQuery disertakan)
- aplikasi / pengawal / gate_view.php
- Ganti KOD-EJEN ANDA dengan kod ejen Imp elektrik anda
IoT Gate Opperator Addon IoT Gate Opperator Addon
- Rumah
- Pentadbir
Open Gate Latch Open selama 30 min Latch Open selama 8 jam Tutup Sekarang Status Gerbang: Terakhir dibuka $ (dokumen). Sudah (fungsi () {resetStatus ();}) fungsi sendJSON (JSONout) {var url = 'https:// ejen.electricimp.com/YOUR-AGENT-CODE '; $. pos (url, JSONout); } $ ("# open_gate"). klik (function () {var JSONout = '{"c": "btn", "val": {"cmd": "open"}}'; sendJSON (JSONout); $ ("#status"). teks ("Pembukaan …");}); $ ("# latch30m_gate"). klik (function () {var JSONout = '{"c": "btn", "val": {"cmd": "latch30m"}}'; sendJSON (JSONout); $ ("#status"). teks ("Pembukaan …");}); $ ("# latch8h_gate"). klik (function () {var JSONout = '{"c": "btn", "val": {"cmd": "latch8h"}}'; sendJSON (JSONout); $ ("#status"). teks ("Pembukaan …");}); $ ("# close_gate"). klik (function () {var JSONout = '{"c": "btn", "val": {"cmd": "close"}}'; sendJSON (JSONout); $ ("#status"). teks ("Penutup …");}); reset fungsiStatus () {// Target url var target = 'https://projects.ajillion.com/get_gate_state'; // Minta var data = {ejen: 'app'}; // Kirim permintaan pos ajax $.ajax ({url: target, dataType: 'json', type: 'POST', data: data, success: function (data, textStatus, XMLHttpRequest) {switch (data.gatestate) {case 0: $ ("# status"). Teks ('Closed'); break; case 1: $ ("# status"). Text ('Opening …'); break; case 2: $ ("# status").text ('Open'); break; case 3: $ ("# status"). text ('Closing …'); break; default: $ ("# status"). teks ('Ralat');} $ ("#last_opened"). teks (data.last_opened);}, ralat: fungsi (XMLHttpRequest, textStatus, errorThrown) {// Mesej ralat $ ("# status"). teks ('Ralat Pelayan');}}); setTimeout (resetStatus, 3000); }
Disyorkan:
Lampu LED Teka-teki WebApp Dengan ESP32: 5 Langkah (dengan Gambar)
![Lampu LED Teka-teki WebApp Dengan ESP32: 5 Langkah (dengan Gambar) Lampu LED Teka-teki WebApp Dengan ESP32: 5 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/001/image-2451-24-j.webp)
Lampu LED Teka-teki WebApp Dengan ESP32: Saya telah bermain-main dengan jalur LED selama bertahun-tahun, dan baru-baru ini saya berpindah ke tempat rakan di mana saya tidak dapat membuat perubahan besar seperti memasang jalur di dinding, jadi saya memasang lampu ini yang mempunyai satu wayar keluar untuk kuasa dan boleh diletakkan
Bagaimana Membuat Gerbang WIFI Sendiri untuk Menghubungkan Rangkaian Arduino Anda ke IP?: 11 Langkah (dengan Gambar)
![Bagaimana Membuat Gerbang WIFI Sendiri untuk Menghubungkan Rangkaian Arduino Anda ke IP?: 11 Langkah (dengan Gambar) Bagaimana Membuat Gerbang WIFI Sendiri untuk Menghubungkan Rangkaian Arduino Anda ke IP?: 11 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/004/image-10449-j.webp)
Bagaimana Membuat Gerbang WIFI Anda Sendiri untuk Menghubungkan Arduino Anda ke Rangkaian IP?: Seperti banyak orang yang anda fikir Arduino adalah penyelesaian yang sangat baik untuk melakukan automasi rumah dan robot! Tetapi dari segi komunikasi, Arduino hanya datang dengan pautan bersiri. Saya sedang mengusahakan robot yang perlu dihubungkan secara kekal dengan pelayan yang menjalankan
Antena untuk Memperluas Jarak Pembuka Gerbang: 6 Langkah (dengan Gambar)
![Antena untuk Memperluas Jarak Pembuka Gerbang: 6 Langkah (dengan Gambar) Antena untuk Memperluas Jarak Pembuka Gerbang: 6 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/010/image-29823-j.webp)
Antena untuk Memperluas Jarak Pembuka Gerbang: Apabila salji semakin dalam di Gunung Hood, sangat menyenangkan untuk bermain ski, meluncur, membangun benteng salji, dan membuang anak-anak dari geladak ke dalam serbuk dalam. Tetapi barang yang licin tidak begitu menyeronokkan ketika kita cuba kembali ke lebuh raya dan membuka pintu untuk mendapatkan
Pocket Operator Lasercut Case: 3 Langkah (dengan Gambar)
![Pocket Operator Lasercut Case: 3 Langkah (dengan Gambar) Pocket Operator Lasercut Case: 3 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/003/image-6477-17-j.webp)
Kes Pocket Operator Lasercut: Dengan gembar-gembur untuk Pocket Operators PO-33 dan PO-35 baru yang akan datang oleh Teenage Engineering, saya memutuskan sudah tiba masanya untuk berkongsi " kes " yang saya buat untuk PO-20 saya. Ia sangat sederhana. Begitu mudah sebenarnya bahawa ia diadakan di tempat oleh akhbar
Mod Berguna untuk Leatherman Tread (Better Fit, Add Bits, Convert Nut Driver): 14 Langkah (dengan Gambar)
![Mod Berguna untuk Leatherman Tread (Better Fit, Add Bits, Convert Nut Driver): 14 Langkah (dengan Gambar) Mod Berguna untuk Leatherman Tread (Better Fit, Add Bits, Convert Nut Driver): 14 Langkah (dengan Gambar)](https://i.howwhatproduce.com/images/003/image-6540-35-j.webp)
Mod Berguna untuk Leatherman Tread (Better Fit, Add Bits, Convert Nut Driver): Instuctable ini menggunakan lebih dari 3 modifikasi pada Leatherman TreadModification # 1 - Mendapatkan Fit yang Lebih Baik pada WristModification # 2 - Menggunakan Tread Anda sebagai Pembawa Bit dan Modifikasi Driver # 3 - Menukar Pemacu Kacang ke Saiz Lebih Kecil