Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-23 14:49
Polusi cahaya adalah salah satu dari banyak masalah di dunia. Untuk mengatasi masalah itu, kita perlu mengetahui berapa banyak langit malam yang tercemar dengan cahaya buatan. Banyak siswa dengan guru di dunia mencoba mengukur polusi cahaya dengan sensor mahal. Saya memutuskan untuk mengubah luxmeter portabel saya (untuk lebih memeriksa proyek instruksi sebelumnya Portable Luxmeter) ke stasiun cuaca dengan sensor TSL2591. Sensor ini cukup sensitif untuk mengukur polusi malam. Juga, saya menambahkan HTU21D untuk mengukur suhu dan kelembaban.
Langkah 1: Apa itu Polusi Malam dan Bagaimana Mengukurnya
Polusi malam adalah cahaya dari lampu, mobil, rumah, panel lcd besar di kota dan setiap cahaya yang dibuat oleh manusia. Panggilan ringan itu buatan. Bagi pengamat, cahaya buatan adalah masalah utama untuk melihat bintang dari kota, dan mereka harus pergi ke luar kota. Bagi manusia, polusi cahaya yang tinggi berbahaya. Dan juga untuk pohon, rumput dan hewan.
Untuk memeriksa polusi cahaya di tempat Anda, Anda dapat melihat di sini peta polusi cahaya
Ini hanya model, dan nilai sebenarnya dapat bervariasi. Itu sebabnya saya membuat luxmeter itu.
Untuk mengukur polusi cahaya, saya hanya mengukur lux dan menghitung besarnya/arsec2.
Saya dapat menghitung dari lux ke candela per meter suqare:
1 cd/m2 = 1 lux
Magnitudo per detik busur persegi (mag/arcsec2) menggambarkan latar belakang langit malam (disebut kecerahan permukaan).
Lebih lanjut tentang wiki: Kecerahan permukaan
Untuk menghitung cd/m2 hingga mag/arcsec2 adalah rumus:
[nilai dalam mag/arcsec2] = Log10([nilai dalam cd/m2]/108000)/-0,4
unihedron.com/projects/darksky/magconv.php
Langkah 2: BOM
Untuk proyek ini Anda perlu:
1. WEMOS D1 Mini atau mikrokontroler apa pun
(Saya menggunakan wemos, karena yang terkecil, dengan port usb, Anda dapat mencoba Arduino Nano)
WEMOS D1 MINI (Yanwen Economic Air Mail)
WEMOS D1 MINI (Pengiriman Standar AliExpress)
WEMOS D1 MINI 10 pcs (China Post Terdaftar Air Mail-Gratis Shiping)
kabel usb untuk pemrograman dan mengunggah kode ke wemos
2. Sensor TSL2591
TSL2591 (Surat Udara Ekonomi Yanwen)
TSL2591 (China Post Terdaftar Air Mail)
TSL2591 (China Post Terdaftar Air Mail)
3. Sensor suhu dan kelembaban HTU21D
HTU21D (Ekonomi Super Cainiao)
HTU21D (Yanwen Economic Air Mail - pengiriman gratis)
4. Layar OLED 0,96 (128 x 64)
layar OLED
layar OLED
layar OLED
5. Baterai 18650
Baterai lithium ion 18650
Baterai lithium ion 18650
dudukan baterai 18650
6. Modul pengisian TP4056
tp4056
tp4056
7. beralih tombol atau jumper celup
ganti saus merah
swtichers, banyak yang berbeda
8. kabel papan tempat memotong roti dan dupont
papan tempat memotong roti kecil
paket papan tempat memotong roti
9. case, saya buat dari kayu + selotip
pita merah
Prusa 3D printer, semoga bisa bikin case dari plastik:D
Langkah 3: Sirkuit
Sirkuit cukup sederhana:
Hubungkan semua modul i2c (TSL2591, OLED, HTU21D) ke pin SCL dan SDA di wemos (SDA -> D2, SCL -> D1).
Power mereka dengan 3,3 V dari wemos.
Hubungkan terminal plus baterai ke pin 5V pada wemos dan baterai + pin pada modul pengisian tp4056 ke terminal plus pada baterai.
Hubungkan semua alasan bersama-sama.
Langkah 4: Sensor HTU21D
Saya membeli sensor suhu baru, yang mengukur dengan akurasi 0,3 °C !
Hal-hal yang harus Anda ketahui tentang sensor ini (dari sparkfun):
- Menggunakan antarmuka I2C
- Akurasi kelembaban tipikal ± 2%
- Akurasi suhu tipikal ±0,3 °C
- Beroperasi dari 0 hingga 100% kelembaban tetapi sensor ini tidak direkomendasikan untuk lingkungan yang keras di mana dapat bersentuhan dengan air (seperti hujan).
- Sensor 3.3V - gunakan konverter level logika sebaris atau resistor 10k untuk membatasi sinyal 5V
- Hanya satu sensor HTU21D yang dapat berada di bus I2C pada satu waktu
Ringkasan saya: ini adalah sensor yang bagus, karena mengukur dengan akurasi 0,3 °C dan keduanya - suhu dan kelembaban. Pro adalah interferensi I2C dan kontra 3.3V, tetapi tidak masalah dalam kasus saya.
Langkah 5: TSL2591
Sensor ini bagus untuk mengukur polusi langit malam karena sensitivitasnya (hingga 188 mikro lux!).
1. adalah dioda dengan kemungkinan ir dan ukuran penuh. Saya tidak menggunakannya.
2. pengatur tegangan dari 5V ke 3,3 V
Spesifikasi chip (dari adafruit):
- Perkiraan Respons mata manusia
- Rentang dinamis yang sangat lebar 1 hingga 600,000, 000 Hitungan
- Kisaran Lux: sensitivitas 188 uLux, hingga 88.000 pengukuran input Lux.
- Kisaran suhu: -30 hingga 80 *C
- Rentang tegangan: 3.3-5V ke regulator papan
- Antarmuka: I2C
- Board/chip ini menggunakan I2C 7-bit address 0x29 (fixed)
- Dimensi: 19mm x 16mm x 1mm /.75" x.63" x.04"Berat: 1.1g
- 2 dioda untuk mengukur keduanya - IR dan Spektrum penuh
Ringkasan:
188 uLux sempurna, juga komunikasi I2C sederhana. Mungkin masalah alamat I2C bisa diperbaiki (0x29). Juga di papan regulator baik dan memungkinkan untuk menggunakan sensor selama musim dingin (beku).
Langkah 6: Kode
Anda memerlukan perpustakaan ini (saya menambahkannya ke satu file Zip):
- Adafruit-GFX-Library-master
- adafruit_gfx_library_master
- Adafruit_HTU21DF_Library-master
- Adafruit_Sensor-master
- Adafruit_TSL2591_Library-master
Kode: Anda dapat menggunakan milik saya, atau membuat sendiri. Jangan lupa untuk mengatur waktu integrasi maksimal (600 MS) dan mendapatkan hingga maksimal (GAIN_MAX) untuk ukuran langit malam.
Jika Anda mencoba menggunakan kode saya, silakan unduh file ino. Ketika saya menyalin dari instruksi kode saya, ada yang salah dengan perpustakaan
Saya menggunakan memuat gambar bulan hanya untuk bersenang-senang. Anda dapat menggunakan apa saja, cukup gunakan halaman ini untuk mendapatkan array:
javl.github.io/image2cpp/
//https://lastminuteengineers.com/oled-display-arduino-tutorial///https://javl.github.io/image2cpp/ // mcd ke magnitudo https://unihedron.com/projects/darksky/magconv.php… // HD44780 adalah pengontrol untuk tampilan kristal cair (LCD) berbasis karakter. https://unihedron.com/projects/darksky/magconv.php… #include
#termasuk
#include #include #include "Adafruit_HTU21DF.h" #include "Adafruit_TSL2591.h" int counter; // OLED menampilkan alamat TWI #define OLED_ADDR 0x3C Adafruit_SSD1306 display(-1); // - 1 untuk tampilan restart dengan tombol restart pada board arduino Adafruit_HTU21DF htu = Adafruit_HTU21DF(); Adafruit_TSL2591 tsl = Adafruit_TSL2591(2591); // berikan nomor pengenal sensor (untuk digunakan nanti) uint32_t lum; uint16_t ir, penuh; int lux; mengapung lux; suhu mengambang; mengapung rel_hum; mengapung mag_arcsec2; // visual mags/arcsecond² [nilai dalam mag/arcsec2] = Log10([nilai dalam cd/m2]/108000)/-0,4 // simbol // derajat untuk Celsius const unsigned char degree PROGMEM = { 0xe, 0x11, 0x11, 0x11, 0xe, 0x0, 0x0, 0x0 }; // eksponen 2 const unsigned char eksponen PROGMEM = { 0xe, 0x1b, 0x3, 0x6, 0xc, 0x18, 0x1f, 0x0 }; // 'moon_logo', 128x64px const unsigned char intro PROGMEM = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xc0, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x01, 0xff, 0xfd, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x03, 0xff, 0xc0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xfc, 0x07, 0xff, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xf8, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0f, 0xff, 0x77, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xbe, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x1f, 0xcc, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x3f, 0xc0, 0xff, 0xff, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfe, 0xc0, 0xff, 0xff, 0x8f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x3f, 0xe0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x3f, 0x80, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x3f, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xf9, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x ff, 0xff, 0xf0, 0x00, 0x3f, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xe0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x60, 0xff, 0xff, 0xff, 0xff, 0xef, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xe7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x07, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x18, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x38, 0xff 0xff, 0xff, 0xe0, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x48, 0x7f, 0xff, 0xff, 0xff, 0xc0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x80, 0x3f, 0xff, 0xff, 0xff, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xc0, 0xc4, 0x1f, 0xff, 0xff, 0xfc, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x60, 0x0f, 0xff, 0xff, 0xff, 0xff, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xf0, 0x03, 0xff, 0xff, 0xff, 0xf0, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0xe3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x00, 0xff, 0xff, 0xff, 0xf0, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x01, 0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x43, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x4f, 0xff, 0xff, 0xff, 0xfb, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x5f, 0xff, 0xff, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x3f, 0xff, 0xff, 0x87, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x03, 0xff, 0xcf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00, 0x01, 0xff, 0xff, 0xb7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0x0f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x01, 0xfe, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x 00, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x00, 0x01, 0xff, 0xff, 0xfd, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x00 0x7f, 0xff, 0xf3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x1f, 0xff, 0xc7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xff, 0xfc, 0x00, 0x00, 0x00, 0xfc, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0xff 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff 0xff, 0xff, 0xff, 0xe0, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x00, 0x00, 0x03, 0xff 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; void setup() { // htu21d htu.begin(); // tsl2591 sensor_t sensor; tsl.getSensor(&sensor); tsl.setGain(TSL2591_GAIN_MAX); // MAX, TINGGI SEDANG, RENDAH, tsl.setWaktu(TSL2591_INTEGRATIONTIME_600MS); // 100MS, 200 MS, 300MS, 400MS, 500MS, 600MS // setup untuk tampilan oled display.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR); tampilan.clearDisplay(); tampilan.tampilan(); display.drawBitmap(0, 0, intro, 128, 64, PUTIH); tampilan.tampilan(); penundaan (1000); display.setTextSize(1); display.setTextColor(PUTIH); display.setFont(&FreeSerif9pt7b); tampilan.clearDisplay(); } void loop() { lux = 0; lux = 0; mag_arcsec2=0; suhu = 0; rel_hum=0; penundaan(100); lum = tsl.getFullLuminosity(); ir = lum >> 16; penuh = lum & 0xFFFF; penundaan(100); lux = tsl.calculateLux(penuh, ir); // intensitas cahaya dalam microlux ulux= lux*1000000; if (ulux<0) { ulux=0; } mag_arcsec2 = log10(lux/108000)/-0.4; //(log((ulux/108000)) /(-0.4) temp = htu.readTemperature(); rel_hum = htu.readHumidity(); display_values(); } void display_values() { //display.drawPixel(120, 50, WHITE); display.clearDisplay(); display.setCursor(1, 15); display.print(temp); display.drawBitmap(42, 2, derajat, 8, 5, WHITE); display.setCursor(50, 15); display.print("C"); display.setCursor(70, 15); display.print(rel_hum); display.setCursor(114, 15); display.print("%"); display.drawLine(1, 20, 127, 20, PUTIH); display.drawLine(67, 1, 67, 20, WHITE); display.setCursor(1, 35); display.print("ulux ="); display.setCursor(50, 35); display.print(ulux); display.setCursor(1, 55); display.print("mag/arsec"); display.drawBitmap(70, 45, eksponen, 8, 8, WHITE); display. setCursor(83, 55); display.print(mag_arcsec2); display.display(); }
Langkah 7: Di dalam
Saya membuat kasing sendiri dan saya menggunakan papan tempat memotong roti dengan kabel dupont seperti yang Anda lihat.
Saya menggunakan TP4056 untuk pengisian baterai dengan kabel usb (perlu swtich dip jumper).
Untuk menghidupkan/mematikan saya menggunakan dip jumper.
Untuk siang hari, TSL2591 menunjukkan 0 dan mag/arcsec2 adalah nan.
Untuk langit malam seharusnya TSL2591 menunjukkan dari 0 hingga 100 000 microlux (ulux) dan mag/arcsec2 yang sesuai
(kira-kira 14 hingga 22 mag/arsec2).
Untuk bulan purnama saya mengukur 50k ulux yaitu 0,05 lux.
Direkomendasikan:
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Dilakukan dengan Cara yang Benar: 8 Langkah (dengan Gambar)
Stasiun Cuaca NaTaLia: Stasiun Cuaca Bertenaga Surya Arduino Selesai dengan Cara yang Benar: Setelah 1 tahun beroperasi dengan sukses di 2 lokasi berbeda, saya membagikan rencana proyek stasiun cuaca bertenaga surya saya dan menjelaskan bagaimana hal itu berkembang menjadi sistem yang benar-benar dapat bertahan lama periode dari tenaga surya. Jika Anda mengikuti
$7.25 - Tambahkan Kontrol Suara ke Kipas Langit-Langit Apa Saja: 4 Langkah (dengan Gambar)
$7.25 - Tambahkan Kontrol Suara ke Semua Kipas Langit-Langit: Dalam Instruksi ini, saya akan memandu Anda melalui proses yang sangat sederhana untuk mengotomatiskan kipas langit-langit Anda sehingga Anda dapat mengontrolnya dengan perintah suara menggunakan perangkat Alexa. Anda dapat menggunakan petunjuk ini untuk mengontrol perangkat elektronik lainnya (lampu, kipas angin, TV, e
Stasiun Cuaca 5 in 1 Acurite Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca lain Kompatibel): 5 Langkah (dengan Gambar)
Stasiun Cuaca Acurite 5 in 1 Menggunakan Raspberry Pi dan Weewx (Stasiun Cuaca Lainnya Kompatibel): Ketika saya membeli stasiun cuaca Acurite 5 in 1, saya ingin dapat memeriksa cuaca di rumah saya saat saya pergi. Ketika saya sampai di rumah dan memasangnya, saya menyadari bahwa saya harus menghubungkan layar ke komputer atau membeli hub pintar mereka
Dudukan Mikrofon - Suspensi Langit-Langit: 7 Langkah (dengan Gambar)
Dudukan Mikrofon - Suspensi Langit-Langit: Saya ingin membagikan dudukan langit-langit mikrofon PVC saya. Saya tidak dapat menemukan tidak dapat menemukan panduan nyata tentang cara melakukan langkah demi langkah ini, jadi saya mulai melakukannya sendiri. Secara keseluruhan, proyek ini memakan waktu sekitar 4 jam dari konsep hingga produk jadi yang
Papan Tulis Wiimote yang Dipasang di Langit-Langit: 7 Langkah (dengan Gambar)
Papan Tulis Wiimote yang Dipasang di Langit-Langit: Instruksi ini akan memberi Anda petunjuk langkah demi langkah untuk membuat pemasangan langit-langit yang sangat murah untuk wiimote untuk digunakan dengan proyektor yang dipasang di langit-langit. Ini berfungsi dengan baik di ruang kelas atau ruang rapat di mana proyektor dipasang secara permanen di c