Daftar Isi:
- Perlengkapan
- Langkah 1: Solder Tiga Papan INA
- Langkah 2: Konfigurasikan Tiga Alamat I2C yang Berbeda
- Langkah 3: Hubungkan Papan Ina ke ESP32
- Langkah 4: Pasang Papan ESP32 di Arduino IDE
- Langkah 5: Periksa Koneksi Ina ke ESP32 Menggunakan I2C Scanner
- Langkah 6: Membuat Folder Server Web HTML
- Langkah 7: Buat Halaman Web Power Monitor
- Langkah 8: Muat Halaman Web Ke ESP32
- Langkah 9: Konfigurasikan ESP32 Sebagai Server Web
- Langkah 10: Anda Selesai
- Langkah 11: Menghidupkan ESP32
Video: Multi-channel Wifi Voltage & Current Meter: 11 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:54
Saat melakukan breadboarding, seseorang sering kali perlu memantau berbagai bagian sirkuit sekaligus.
Untuk menghindari rasa sakit karena harus menempelkan probe multimeter dari satu tempat ke tempat lain, saya ingin merancang pengukur tegangan dan arus multi-saluran.
Papan Ina260 dari Adafruit menyediakan cara yang sangat efektif dan efisien untuk melakukannya. Ini berisi pengukur tegangan dan arus yang sangat akurat dengan jembatan I2C terintegrasi (menghemat banyak pin saat menggabungkan 3 pin!).
Satu-satunya hal yang hilang adalah tampilan. Oleh karena itu keputusan untuk menghubungkan papan ke papan pengembangan ESP32, yang dapat dengan mudah membawa server web untuk menyajikan item yang diukur pada layar PC/ponsel.
Perlengkapan
3 x papan adafruit Ina260
3 x pin header dengan pin panjang
Min 6 kabel jumper
1 x ESP32 Wrover-B (atau papan Wifi lainnya dengan dukungan I2C)
2 x 19 pin header pin (jika ada)
1 x PCB atau Perfboard
Catu daya 1 x 3,3 V
Langkah 1: Solder Tiga Papan INA
Langkah pertama adalah merakit tiga papan INA260.
Instruksi yang sangat bagus dapat ditemukan di situs web Adafruit. Ikuti instruksi perakitan Adafruit.
Untuk dapat menumpuknya di atas satu sama lain, gunakan pin header yang panjang daripada strip pin yang dikirimkan!
Langkah 2: Konfigurasikan Tiga Alamat I2C yang Berbeda
I2C adalah protokol serial untuk antarmuka dua kabel untuk menghubungkan perangkat berkecepatan rendah melalui jarak pendek. Satu dapat menghubungkan hingga 127 budak. Pada satu bus setiap perangkat perlu diidentifikasi dengan alamat I2C yang unik. Alamat I2C suatu perangkat sering kali disambungkan ke dalam chip perangkat. Untuk menghubungkan perangkat yang sama pada satu bus, pabrikan sering meninggalkan kemungkinan untuk mengubah alamat I2C dengan menyolder konfigurasi pin bersama-sama.
Hal ini juga berlaku untuk tiga papan INA260. Perangkat memiliki dua pin alamat, A0 dan A1 yang dapat dihubungkan ke GND, VS, SCL atau SDA untuk mengatur alamat yang diinginkan. Dalam lembar data chip INA260 dari instrumen texas, seseorang dapat menemukan daftar koneksi pin untuk masing-masing dari 16 alamat yang mungkin.
Papan adafruit membatasinya menjadi 4 papan dengan memperlihatkan dua bantalan yang dapat digunakan untuk menarik A0 dan/atau A1 ke VS. Alamat default papan INA260 adalah 0x40.
Anda menyelesaikan langkah ini dengan menetapkan alamat yang berbeda ke dua papan lainnya:
Dengan menyolder pad A0 dari papan kedua Anda mengatur alamatnya ke: 0x41 (atau 1000001 BIN)
Dengan menyolder pad A1 dari papan ketiga, Anda menetapkan alamat ke: 0x44 (atau 1000100 BIN)
Langkah 3: Hubungkan Papan Ina ke ESP32
Sekarang kita telah menetapkan alamat I2C yang berbeda untuk masing-masing papan INA, sekarang saatnya untuk menghubungkannya ke papan ESP32!
Sesuai gambar di atas, hubungkan
1) pin VCC ke pin 3.3V
2) pin GND ke pin GND
3) pin SDA ke pin GPIO 21
4) pin SCL ke pin GPIO 22
Saya telah menggunakan desain PCB untuk membuat koneksi karena ini adalah bagian dari proyek yang lebih besar (pasokan tegangan WiFi yang dapat disesuaikan dengan batasan arus yang dapat disesuaikan - berharap dapat membuat instruksi untuk yang ini juga).
Anda dapat menggunakan cara lain untuk menghubungkan, ini mungkin perfboard yang Anda solder atau menggunakan papan tempat memotong roti. Keduanya akan bekerja dengan baik juga.
Langkah 4: Pasang Papan ESP32 di Arduino IDE
Sekarang kita telah menghubungkan papan satu sama lain, sekarang saatnya untuk memeriksa koneksi.
Kami akan melakukannya dengan mengumpulkan alamat I2C dari papan Ina.
Papan ESP32 bekerja sempurna dengan Arduino IDE.
Jadi mari kita pasang board ESP32 di Arduino menggunakan Board manager.
Langkah 5: Periksa Koneksi Ina ke ESP32 Menggunakan I2C Scanner
Kami akan menggunakan pemindai alamat I2C sederhana untuk memastikan konektivitas antara papan ESP32 dan Ina260.
Kode pemindai alamat I2C dapat disalin ke dalam proyek Arduino yang kosong.
Kode telah diambil dari website Arduino cc:
// ---------------------------------------// i2c_scanner // // Versi 1 / / Program ini (atau kode yang terlihat seperti itu) // dapat ditemukan di banyak tempat. // Misalnya di forum Arduino.cc. // Penulis aslinya tidak tahu. // Versi 2, Juni 2012, Menggunakan Arduino 1.0.1 // Diadaptasi sesederhana mungkin oleh pengguna Arduino.cc Krodal // Versi 3, 26 Feb 2013 // V3 oleh louarnold // Versi 4, 3 Maret 2013, Menggunakan Arduino 1.0.3 // oleh pengguna Arduino.cc Krodal. // Perubahan oleh louarnold dihapus. // Alamat pemindaian berubah dari 0…127 menjadi 1…119, // menurut pemindai i2c oleh Nick Gammon // https://www.gammon.com.au/forum/?id=10896 // Versi 5, Maret 28, 2013 // Sebagai versi 4, tetapi alamat memindai sekarang ke 127. // Sebuah sensor tampaknya menggunakan alamat 120. // Versi 6, 27 November 2015. // Ditambahkan menunggu komunikasi serial Leonardo. // // // Sketsa ini menguji alamat 7-bit standar // Perangkat dengan alamat bit yang lebih tinggi mungkin tidak terlihat dengan benar. // #include void setup() { Wire.begin(); Serial.begin(9600); while (!Serial); // Leonardo: tunggu serial monitor Serial.println("\nI2C Scanner"); } void loop() { kesalahan byte, alamat; int nPerangkat; Serial.println("Memindai…"); nPerangkat = 0; for(address = 1; address < 127; address++) { // i2c_scanner menggunakan nilai kembalian dari // Write.endTransmisstion untuk melihat apakah // perangkat mengakui alamat tersebut. Wire.beginTransmission(alamat); kesalahan = Wire.endTransmission(); if (kesalahan == 0) { Serial.print("Perangkat I2C ditemukan di alamat 0x"); if (alamat<16) Serial.print("0"); Serial.print(alamat, HEX); Serial.println("!"); nPerangkat++; } else if (error==4) { Serial.print("Kesalahan tidak diketahui pada alamat 0x"); if (alamat<16) Serial.print("0"); Serial.println(alamat, HEX); } } if (nPerangkat == 0) Serial.println("Perangkat I2C tidak ditemukan\n"); else Serial.println("selesai\n"); penundaan(5000); // tunggu 5 detik untuk pemindaian berikutnya }
Langkah 6: Membuat Folder Server Web HTML
ESP32 menyediakan kemungkinan untuk menjalankan server web. Ini juga menyediakan memori RAM yang cukup besar untuk menampung beberapa halaman web. (Ini secara otomatis memampatkan file halaman web).
Arduino IDE menyediakan fungsionalitas untuk mengunggah halaman web yang dibuat ke RAM ESP32 secara langsung.
Untuk melakukan ini, Anda perlu membuat folder 'data' di bawah folder proyek Arduino. Dalam kasus saya ini adalah \Arduino\esp32_Power_supply_v1_implemented\data.
Penting untuk menamai folder dengan tepat 'data' karena itu adalah nama folder yang akan dicari Arduino saat mengunggah file halaman web ke ESP.
Langkah 7: Buat Halaman Web Power Monitor
HMTL adalah bahasa yang memungkinkan untuk menyajikan teks ke dalam browser web. File HTML disimpan di bawah ekstensi htm(l). Format halaman web biasanya ditempatkan dalam file terpisah (mis. file css). Fungsionalitas program yang perlu ditawarkan oleh halaman web biasanya ditempatkan di file lain (mis. file js, untuk javascript).
Dalam dokumen HTML saya, saya memasukkan teks, pemformatan, dan Javascript ke dalam satu file. Oleh karena itu, ini bukan contoh yang baik tentang cara membuat halaman web, tetapi ini sesuai dengan tujuannya. Saya menamai dokumen HTML ' Index.htm '.
File kedua disertakan dalam folder data saya, mis. PicoGraph.js. Pustaka PicoGraph disediakan oleh Wisnu Shankar B dari RainingComputers dan memungkinkan cara yang sangat sederhana, namun efektif dan fleksibel untuk menyajikan grafik ke halaman web. Saya sedikit mengubah kode untuk melayani tujuan saya dengan lebih baik.
Anda akan melihat bahwa halaman web HTML juga menyertakan kode untuk mengontrol suplai tegangan pada papan PCB saya. Kode suplai tegangan mengontrol level tegangan 5 pin I/O. Anda dapat mengubah kode untuk mengecualikan ini atau Anda dapat membiarkannya jika tidak berdampak.
Kode html dilampirkan pada langkah ini sebagai file txt (karena instruksi tidak mengizinkan pengunggahan kode htm).
Untuk menggunakan kode HTML, Anda menyalin dan menempelkannya ke editor teks (saya menggunakan Notepad++) dan menyimpannya sebagai 'Index.htm' di bawah folder 'Data'. Anda melakukan hal yang sama untuk file picograph.txt tetapi ganti namanya menjadi picograph.js
Berkenaan dengan file HTML:
Fungsi SndUpdate digunakan untuk mengirim pesan bolak-balik dari ESP ke halaman web.
Pesan yang dikirim dari ESP melayani fungsionalitas catu daya dan berada di luar cakupan untuk instruksi ini. pesan ke ESP melayani pengukuran papan Ina260.
var Pesan = JSON.parse(xh.responseText); PG1_yrand0=Pesan. PG1_yrand0; PG2_yrand0=Pesan. PG2_yrand0; PG3_yrand0=Pesan. PG3_yrand0; PG4_yrand0=Pesan. PG4_yrand0; PG5_yrand0=Pesan. PG5_yrand0; PG6_yrand0=Pesan. PG6_yrand0;
Kode di atas membaca 6 angka dari papan ESP32, yaitu. pengukuran tegangan, pengukuran arus dari papan pertama, diikuti oleh dua pengukuran dari papan kedua dan seterusnya.
Grafik disematkan dalam apa yang disebut wadah fleksibel, yang memungkinkan pengubahan ukuran halaman web secara fleksibel.
.flex-container { tampilan: fleksibel; warna latar: cadetblue; bungkus-fleksibel: bungkus; }.flex-container > div { background-color: #f1f1f1; margin: 10 piksel; bantalan: 20 piksel; ukuran font: 20px; font-family: "Tujuh Segmen"; font-berat: tebal; }
Isi dari masing-masing wadah fleksibel dibuat sebagai berikut, termasuk grafik yang disematkan.
(perhatikan bahwa di mana dihapus)
div label for="PG1_scale"Scale:/label input name="PG1_scale" value="10"brbr !-- Canvas for thr graph -- canvas /kanvas
!-- div untuk legenda/label --
div /div div /div /div
Bagian terakhir yang penting dalam file HTML berfungsi dengan pustaka PicoGraph untuk menyajikan angka:
var PG1_demograph = createGraph("PG1_graphDemo", ["Ch1"], "V", "PG1_graphLabels", 20, 11, false, false, 11, "#e52b50"); var PG2_demograph = createGraph("PG2_graphDemo", ["Ch1"], "mA", "PG2_graphLabels", 20, 11, false, false, 11, "#e52b50"); var PG3_demograph = createGraph("PG3_graphDemo", ["Ch2"], "V", "PG3_graphLabels", 20, 11, false, false, 11, "#008000"); var PG4_demograph = createGraph("PG4_graphDemo", ["Ch2"], "mA", "PG4_graphLabels", 20, 11, false, false, 11, "#008000"); // var PG5_demograph = createGraph("PG5_graphDemo", ["Ch3"], "V", "PG5_graphLabels", 20, 11, false, false, 11, "#0000ff"); var PG6_demograph = createGraph("PG6_graphDemo", ["Ch3"], "mA", "PG6_graphLabels", 20, 11, false, false, 11, "#0000ff"); /* Perbarui nilai setiap detik */ setInterval(updateEverySecond, 1000); function updateEverySecond() { /* Dapatkan nilai baru */ SndUpdate();
/* Perbarui grafik */ PG1_demograph.update([PG1_yrand0], parseInt(byID("PG1_scale").value)+ parseInt(byID("PG1_scale").value)/10, "#e52b50"); PG2_demograph.update([PG2_yrand0], parseInt(byID("PG2_scale").value)+ parseInt(byID("PG2_scale").value)/10, "#e52b50"); PG3_demograph.update([PG3_yrand0], parseInt(byID("PG3_scale").value)+ parseInt(byID("PG3_scale").value)/10, "#008000"); PG4_demograph.update([PG4_yrand0], parseInt(byID("PG4_scale").value)+ parseInt(byID("PG4_scale").value)/10, "#008000"); // PG5_demograph.update([PG5_yrand0], parseInt(byID("PG5_scale").value)+ // parseInt(byID("PG5_scale").value)/10, "#0000ff"); PG6_demograph.update([PG6_yrand0], parseInt(byID("PG6_scale").value)+ parseInt(byID("PG6_scale").value)/10, "#0000ff"); var Watt = Math.round(PG1_yrand0 * PG2_yrand0 *100)/100; byID("PG1_wattLabel").innerHTML = ` WATT: ${Watt} mW `; var Watt = Math.round(PG3_yrand0 * PG4_yrand0 *100)/100; byID("PG3_wattLabel").innerHTML = `WATT: ${Watt} mW`; // var Watt = Math.round(PG5_yrand0 * PG6_yrand0 *100)/100; // byID("PG5_wattLabel").innerHTML = `WATT: ${Watt} mW`; byID("PG1_scale").value = Math.floor(parseInt(byID("PG1_scale").value)/2+PG1_yrand0); byID("PG2_scale").value = Math.floor(parseInt(byID("PG2_scale").value)/2+PG2_yrand0); byID("PG3_scale").value = Math.floor(parseInt(byID("PG3_scale").value)/2+PG3_yrand0); byID("PG4_scale").value = Math.floor(parseInt(byID("PG4_scale").value)/2+PG4_yrand0); // byID("PG5_scale").nilai = Math.floor(parseInt(byID("PG5_scale").value)/2+PG5_yrand0); byID("PG6_scale").value = Math.floor(parseInt(byID("PG6_scale").value)/2+PG6_yrand0);
Mempelajari kode Anda akan melihat saya hanya menggunakan 5 grafik dari 6 untuk tujuan saya. Menghapus komentar pada baris yang benar akan mengaktifkan grafik ke-6.
Bagi mereka yang tidak berpengalaman dengan html, langkah ini bisa jadi sulit. Namun itu dapat berfungsi sebagai pengantar yang bagus ke dunia HTML. Saya tahu karena ini adalah halaman pertama yang pernah saya buat. Jadi jangan takut. Bagi mereka yang berpengalaman di bawah kami, maafkan.
Hasil pekerjaan Anda di halaman web dapat ditinjau dengan membuka html Anda, itu akan dimuat ke browser Anda dan menunjukkan penampilannya. Anda dapat memeriksa kemungkinan kesalahan dengan menekan tombol F12 di browser Anda, jendela debugging akan muncul. Penjelasan lengkap tentang cara men-debug berada di luar cakupan instruksi ini, tetapi halaman web dapat membantu sebagai langkah pertama untuk debugging halaman web/javascript.
Langkah selanjutnya adalah memuat halaman web yang dibuat ke dalam ESP32.
Langkah 8: Muat Halaman Web Ke ESP32
Setelah mendapatkan hasil yang memuaskan, sekarang saatnya untuk mengupload halaman web ke dalam ESP32.
Anda melakukan ini dengan menyimpan ' Index.htm' (halaman web Anda) dan ' PicoGraph.js' ke dalam folder ' data' di bawah proyek Arduino Anda.
Langkah selanjutnya adalah menghubungkan papan ESP32 ke komputer. Setelah memilih papan dan port COM yang benar, pilih Unggah Data Sketsa ESP32 di bawah menu Alat di Arduino IDE.
Anda akan melihat bahwa IDE akan memulai proses pengunggahannya, yang akan menghasilkan pemuatan yang berhasil.
Selanjutnya langkah ini adalah mengkonfigurasi mikrokontroler ESP32 sebagai webserver.
Langkah 9: Konfigurasikan ESP32 Sebagai Server Web
Terlampir Anda menemukan sketsa Arduino Ino yang akan mengkonfigurasi ESP32 sebagai server web.
Anda harus mengganti SSID dan Kata Sandi terkait dengan kata sandi perute Anda.
Seperti yang telah disebutkan sketsa ini juga berisi kode untuk mengkonfigurasi halaman web sebagai pengontrol untuk sisi catu daya PCB (sebenarnya, mengkonfigurasi 5 pin IO sebagai pin PWM dan mengendalikannya melalui aliran pesan dari halaman web).
Sketsa didasarkan pada sketsa Webserver standar yang dikembangkan oleh Hristo Gochkov.
Beberapa penjelasan tentang kode.
Fungsi-fungsi berikut semuanya terkait dengan pengaturan server web.
String formatBytes(size_t byte)String getContentType(Nama file string) bool ada(Jalur string) bool handleFileRead(Jalur string) void handleFileUpload() void handleFileDelete() void handleFileCreate() void handleFileList()
Juga kode pertama dalam fungsi setup() terkait dengan pengaturan PWM dan Webserver.
Kode berikut mengatur fungsi Interrupt yang melayani aliran pesan ke dan dari halaman web:
(Anda harus mengenali pengidentifikasi dari pembuatan halaman web)
server.on("/SndUpdate", HTTP_GET, () {
String Pesan = "{"; Msg+="\"PG1_yrand0\":"+ (String) Vina[1]; Msg+=", \"PG2_yrand0\":"+ (String) Iina[1]; Msg+=", \"PG3_yrand0\":"+ (String) Vina[0]; Msg+=", \"PG4_yrand0\":"+ (String) Iina[0]; Msg+=", \"PG5_yrand0\":"+ (String) Vina [2]; Msg+=", \"PG6_yrand0\":"+ (String) Iina[2]; Pesan+="}";
server.send(200, "teks/json", Pesan);
Ini memulai server:
server.mulai();
Blok kode berikutnya, menginisialisasi papan INA260:
//inisialisasi INA260 if (!ina260_0x40.begin(0x40)) { Serial.println(F("Tidak dapat menemukan chip INA260 0x40")); //sementara (1); } Serial.println(F("Ditemukan INA260 chip 0x40")); if (!ina260_0x41.begin(0x41)) { Serial.println(F("Tidak dapat menemukan chip INA260 0x41")); //sementara (1); } Serial.println(F("Ditemukan chip INA260 0x41")); if (!ina260_0x44.begin(0x44)) { Serial.println(F("Tidak dapat menemukan chip INA260 0x44")); //sementara (1); } Serial.println(F("Ditemukan chip INA260 0x44"));
ina260_0x40.setAveragingCount(INA260_COUNT_256);
ina260_0x40.setVoltageConversionTime(INA260_TIME_1_1_ms); ina260_0x40.setCurrentConversionTime(INA260_TIME_1_1_ms); ina260_0x40.setMode(INA260_MODE_CONTINUOUS); ina260_0x41.setAveragingCount(INA260_COUNT_256); ina260_0x41.setVoltageConversionTime(INA260_TIME_1_1_ms); ina260_0x41.setCurrentConversionTime(INA260_TIME_1_1_ms); ina260_0x41.setMode(INA260_MODE_CONTINUOUS); ina260_0x44.setAveragingCount(INA260_COUNT_256); ina260_0x44.setVoltageConversionTime(INA260_TIME_1_1_ms); ina260_0x44.setCurrentConversionTime(INA260_TIME_1_1_ms); ina260_0x44.setMode(INA260_MODE_CONTINUOUS);
Dalam kode Loop, pernyataan berikut menjamin penanganan kode interupsi:
server.handleClient();
Kode berikut dalam pernyataan loop terkait dengan fungsionalitas catu daya.
Kode berikut dalam loop() menarik lagi:
Vina[0]=ina260_0x40.readBusVoltage()/1000.0f; Iina[0]=ina260_0x40.readCurrent(); Vina[1]=ina260_0x41.readBusVoltage()/1000.0f; Iina[1]=ina260_0x41.readCurrent(); Vina[2]=ina260_0x44.readBusVoltage()/1000.0f; Iina[2]=ina260_0x44.readCurrent();
Pernyataan ini mengumpulkan dan menyiapkan pengukuran untuk transfer ke halaman web melalui panggilan interupsi Server.on (terjadi setiap 1000ms, diatur dalam skrip java html halaman web).
Langkah 10: Anda Selesai
Mengunggah sketsa ke papan ESP32, harus menyelesaikan pengaturan dan monitor Daya Anda harus final!
Anda mungkin telah memperhatikan bahwa menyalakan ESP32 sekarang dilakukan melalui port USB, ini meningkatkan sebagian besar keuntungan dari koneksi berbasis WiFi dengan pengukur tegangan / arus Anda. Oleh karena itu, saya telah membuat catu daya teregulasi tegangan berbasis LM317 sederhana untuk ESP32. Saya menyimpannya di luar cakupan instruksi ini tetapi jika ada minat bisa menjadi instruksi berikutnya.
Pada langkah selanjutnya saya sudah menyediakan rangkaian elektronik untuk catu daya yang bisa menjadi inspirasi.
Langkah 11: Menghidupkan ESP32
Dengan ini inspirasi untuk membangun sumber daya yang berdiri sendiri untuk ESP32 Anda, jika Anda tidak memilikinya.
Sirkuit daya bekerja dari catu daya laptop 19V. Ini meminta penurunan tegangan dua fase untuk menjaga disipasi daya LM317 tetap terkendali. (Bahkan dengan heat sink!). Juga jangan lupa untuk menyertakan kapasitor 100uF di depan jalur VCC_ESP karena mikrokontroler tersebut memiliki ayunan arus yang besar saat memulai koneksi WiFi.
Catatan untuk tidak menyalakan ESP32 dengan lebih dari satu sumber daya sekaligus!
Selanjutnya penafian kewajiban biasa, tetapi yang terpenting
Selamat bersenang-senang!
Semua file dapat ditemukan di GitHub saya:
Direkomendasikan:
PSU MINI MULTI VOLTAGE PORTABEL DENGAN USB, SENTER, PENGUJI KOMPONEN DAN CHARGER BUILD-IN: 6 Langkah
PSU MINI MULTI TEGANGAN PORTABEL DENGAN USB, SENTER, PENGUJI KOMPONEN DAN PENGISI DAYA BUILD-IN: Selamat datang di instruksi pertama saya! Dengan instruksi ini, Anda dapat mengubah powerbank surya yang cerdik/murah (dengan beberapa bagian tambahan) menjadi sesuatu yang berguna. Sesuatu yang dapat Anda gunakan setiap hari, seperti yang saya lakukan, karena sangat bagus untuk digunakan! Sebagian besar a
Perbedaan Antara (Alternative Current & Direct Current): 13 Langkah
Perbedaan Antara (Alternative Current & Direct Current): Semua orang tahu bahwa listrik sebagian besar adalah DC, tetapi bagaimana dengan jenis listrik lain? Kamu tahu Aca? Apa singkatan dari AC? Apakah bisa digunakan kemudian DC? Dalam penelitian ini kita akan mengetahui perbedaan antara jenis listrik, sumber, aplikasi
Light Bulb Current Limiter: 9 Langkah (dengan Gambar)
Light Bulb Current Limiter: *Disclaimer: Saya bukan ahli listrik, saya hanya mendokumentasikan proses yang saya lakukan untuk membuat Current Limiter ini. Harap jangan mencoba proyek ini kecuali Anda merasa nyaman bekerja dengan listrik bertegangan tinggi. Proyek ini adalah untuk membuat Bola Lampu
HiFi Multi-room WiFi & Bluetooth Speaker: 10 Langkah (dengan Gambar)
HiFi Multi-room WiFi & Bluetooth Speaker: Speaker yang terhubung dengan Wi-Fi mampu memberikan kualitas audio yang jauh lebih baik daripada opsi Bluetooth. Mereka tidak memampatkan konten audio sebelum memutarnya, yang dapat memiliki efek negatif pada suara, karena mengurangi tingkat detail y
Robot Multi Fitur DIY Dengan Arduino: 13 Langkah (dengan Gambar)
Robot Multi Unggulan DIY Dengan Arduino: Robot ini terutama dibangun untuk memahami Arduino dan menggabungkan berbagai proyek Arduino untuk membentuk Robot Arduino Multi Unggulan. Dan selanjutnya, siapa yang tidak ingin memiliki robot hewan peliharaan? Jadi saya menamakannya BLUE ROVIER 316. Saya bisa membeli