Daftar Isi:
- Langkah 1: Mengumpulkan Komponen
- Langkah 2: Memasang Perpustakaan Kami
- Langkah 3: Memasang Pustaka yang Diperlukan
- Langkah 4: Merakit Modul
- Langkah 5: Menulis Sketsa Modul Luminositas
- Langkah 6: Menguji Modul Di Rumah Kami
- Langkah 7: Membangun Kasus untuk Modul
Video: Membangun Modul Luminositas Dengan AtHome: 7 Langkah
2024 Pengarang: John Day | [email protected]. Terakhir diubah: 2024-01-30 09:57
AtHome adalah proyek siswa opensource dan openhardware sepenuhnya yang dibuat oleh grup AtHome dari Epitech, yang bertujuan untuk mengembangkan solusi terhubung dari beberapa modul sensor individu yang berkomunikasi dengan database yang dihosting sendiri yang mengekspos API yang digunakan untuk memberi makan aplikasi smartphone dan aplikasi web. Modul memantau lingkungan dalam ruangan rumah dan mampu memberikan umpan balik visual kepada pengguna, dari hijau (baik) menjadi merah (buruk) dan data yang dikirimkan dapat dilihat oleh pengguna melalui komunikasi serial modul atau pada aplikasi kami jika Anda menggunakannya.
Meskipun proyek ini masih dalam pengembangan aktif, fungsionalitas dasar modul kami sekarang sudah siap dan seharusnya mudah digunakan untuk mengembangkan modul kustom. Jadi, itulah mengapa saya menyarankan Anda untuk melihat bagaimana membuat modul sederhana Anda sendiri dengan contoh modul luminositas ini.
Modul-modul ini pada dasarnya dibangun dengan papan yang kompatibel dengan Arduino (inti Arduino parsial harus cukup selama memiliki dukungan Aliran, Kawat, dan aliran UART), LED (merah atau RGB) yang berubah menjadi merah jika ada masalah, sensor, catu daya (catu daya dinding atau baterai) dan kotak potong laser.
Ya, ini jelas bukan hal baru, ada banyak proyek sensor tetapi kami berharap fitur lain seperti deteksi masalah kesehatan, komunikasi dan penyimpanan informasi di server yang dihosting sendiri dan aplikasi visualisasi akan membantu Anda. Atau jika Anda hanya ingin memantau rumah Anda, proyek sederhana atau yang tidak kalah menarik:)
Langkah 1: Mengumpulkan Komponen
Untuk proyek ini, Anda memerlukan beberapa komponen untuk membangun modul AtHome Anda:
- 1x Papan yang Kompatibel dengan Arduino: Di sini saya akan menggunakan Arduino UNO (tetapi juga berfungsi dengan papan lain seperti TI Launchpads dan papan ESP8266)
- 1x sensor: Saya akan menggunakan sensor luminositas TSL2561 (daftar sensor yang didukung tersedia di dokumentasi perpustakaan kami)
- 1x led: Saya akan menggunakan LED Grove Chainable RGB di sini (tapi bisa juga led merah sederhana atau NeoPixel)
- Kabel Dupont
Daftar komponen yang kompatibel tersedia di dokumentasi proyek kami.
Langkah 2: Memasang Perpustakaan Kami
Untuk menginstal perpustakaan kami, Anda harus mengunduh dari repositori kami (kami akan menerbitkannya nanti di daftar Arduino IDE dan PlatformIO) dengan tautan ini:
gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy
Lalu, masuk ke Arduino IDE dan pilih "Sketsa > Sertakan Perpustakaan > Tambahkan Perpustakaan. ZIP…". Kemudian pilih file zip bernama "artifacts.zip" dan klik "OK".
Langkah 3: Memasang Pustaka yang Diperlukan
Agar berfungsi, perpustakaan kami memerlukan beberapa perpustakaan lain untuk diinstal di komputer Anda:
- Pustaka Penjadwal Tugas Arkhipenko
- Perpustakaan SEEED Studio Grove Digital Light Sensor
- SEEED Studio Grove Chainable RGB LED library
- Pustaka Adafruit NeoPixel
Anda dapat menginstalnya melalui pengelola perpustakaan Arduino IDE, dengan masuk ke "Sketsa"> "Sertakan Perpustakaan"> "Kelola perpustakaan…".
Di jendela baru yang akan terbuka, tulis di bilah pencarian putih nama perpustakaan yang ingin Anda instal, lalu klik bloknya. Tombol "Instal" akan muncul, Anda hanya perlu mengkliknya dan IDE akan mengunduhnya dan menginstalnya untuk Anda.
Langkah 4: Merakit Modul
Kami akan mulai dengan sensor. Hubungkan melalui kabel pin VCC TSL2561 ke pin 5V Arduino, pin GND sensor ke salah satu pin GND Arduino dan pin SDA dan SCL sensor ke pin SDA dan SCL Arduino. Sekarang Anda sudah selesai!
Sekarang, sambungkan pin VCC LED RGB Chainable Grove ke pin 5V Arduino dan pin GND LED ke GND kedua Arduino. Jika Anda Arduino hanya sebagai satu pin 5V, Anda dapat menggunakan papan tempat memotong roti untuk menghubungkan 5v Arduino ke baris + papan tempat memotong roti dan menghubungkan semua komponen Anda pin 5V di atasnya, atau menyoldernya bersama-sama pada selembar papan strip atau gunakan konektor wago atau apa pun yang Anda inginkan. Sekarang, hubungkan pin CI LED Anda ke pin 7 Arduino Anda dan pin DI LED Anda ke pin 8 Arduino Anda. Jika Anda tidak memiliki LED seperti itu, jangan khawatir, Anda dapat menggunakan LED bawaan papan Arduino Anda atau yang klasik hanya dengan sedikit perubahan kode.
Langkah 5: Menulis Sketsa Modul Luminositas
Mari buat sketsa baru dan tulis kode untuk modul kita.
Jika Anda tidak tertarik dengan penjelasan sketsa, Anda dapat menyalin dan menempelkannya di Arduino IDE Anda:
#termasuk
menggunakan LightModule = AtHomeModule; Aliran *aliran = {&Serial, nullptr}; GroveChainableLED::Pin grovePins = {7, 8}; GroveChainableLED led(&grovePins); LightModule *module = LightModule::getInstance(); void setup() { // letakkan kode setup Anda di sini, untuk dijalankan sekali: Serial.begin(9600); modul->setStreams(aliran); GroveDigitalLightSensor *lightSensor = baru GroveDigitalLightSensor(); modul->setSensor(lightSensor); modul->setDisplay(&led); modul->setup(); } void loop() { // letakkan kode utama Anda di sini, untuk dijalankan berulang kali: module->run(); }
Jika Anda ingin memahami semua apa yang dilakukan kode ini, Anda dapat membaca yang berikut ini atau jika Anda tidak tertarik, Anda dapat langsung melompat ke langkah berikutnya.
Untuk memulai, kita perlu memasukkan perpustakaan kita ke dalam sketsa kita dengan menulis baris ini di bagian atas sketsa:
#termasuk
Sekarang, kita perlu membuat alias untuk objek modul yang akan kita gunakan. Anda dapat melihatnya sebagai kotak dengan beberapa tombol yang digunakan untuk mengubah komponennya, memulainya, menghentikannya, …dll. Karena ini adalah kotak yang dibuat oleh template (seperti template biasa yang kami gunakan untuk proyek sebagai manusia, ia memiliki basis starter dan kompiler Arduino membuat kode akhir berdasarkan parameter yang kami berikan kepadanya) mendefinisikan jenis yang mewakili nilai sensor dan jumlah nilai sensor yang ingin kita simpan di memori, itu ditentukan dalam namanya dan biasanya harus diulang setiap kali kita ingin menggunakannya. Yang agak mengganggu, itu sebabnya kami akan mengaitkan nama baru, alias, ke nama lengkap kotak ini.
Katakanlah misalnya saya ingin kotak ini diberi nama "LightModule", karena akan digunakan untuk mengimplementasikan modul pemantauan luminositas dan saya hanya ingin menyimpan 1 nilai pada satu waktu. Luminositas diwakili dalam lux sebagai tipe integral oleh sensor TSL2561 kami, yang direpresentasikan sebagai uint16_t oleh komputer. Alias kami akan terlihat seperti ini:
menggunakan LightModule = AtHomeModule;
kata kunci "menggunakan" berarti kita membuat alias dan nama yang kita berikan tepat setelahnya sesuai dengan urutan setelah karakter "=".
"AtHomeModule" adalah nama asli dari kotak yang kami beri nama baru, dan parameter yang menentukan representasi nilai dan jumlah nilai yang disimpan dalam memori tercantum di antara "".
Nah, ketika nanti kita akan menggunakan nama "AtHomeModule", Arduino akan tahu itu mengacu pada nama lengkap "AtHomeModule".
Jika Anda ingin kotak Anda dapat menyimpan 5 nilai dalam memori alih-alih 1, Anda hanya perlu mengganti "1" dengan "5" dan Arduino akan menghasilkan untuk Anda jenis kotak yang berbeda yang dapat melakukan apa yang Anda inginkan. Namun, perhatikan bahwa jika modul diprogram untuk mengirim nilainya sebelum memiliki waktu untuk mengukur 5 nilai sensor secara efektif, Anda tidak akan pernah melihat 5 di antaranya dikirim karena hanya mengirim nilai baru sejak unggahan terakhir.
Selanjutnya, kita perlu membuat array pointer yang berisi pointer pada stream Arduino yang digunakan oleh modul untuk berkomunikasi, selalu diakhiri oleh keyworkd "nullptr". Di sini, saya hanya menggunakan aliran "Serial" Arduino yang berkomunikasi dengan komputer melalui port USB, sehingga susunannya terlihat seperti ini:
Aliran *aliran = {&Serial, nullptr};
Karakter "*" berarti tipenya adalah pointer (lokasi elemen, bukan elemen itu sendiri) dan tanda kurung "" berarti di Arduino itu adalah array, jadi kita bisa meletakkan beberapa nilai.
Selanjutnya, kita perlu membuat LED kita. Untuk melakukan ini, kita perlu menulis dua baris berikut;
GroveChainableLED::Pin grovePins = {7, 8};
GroveChainableLED led(&grovePins);
Jika Anda tidak memiliki LED Grove RGB tetapi masih menginginkan umpan balik visual, Anda dapat melakukannya dengan perubahan sederhana pada sketsa. Ganti dua baris sebelumnya dengan baris ini:
LED monokromatik (LED_BUILTIN);
Dalam konfigurasi ini LED built-in hijau akan menyala selama nilai yang dipantau ok untuk kesehatan dan mati ketika tidak terikat. Jika Anda lebih suka menyalakannya saat tidak terikat (karena Anda menggunakan misalnya LED merah daripada yang hijau pada pin 13), Anda dapat menggunakan baris ini sebagai gantinya:
LED monokromatik (LED_BUILTIN, benar);
Langkah selanjutnya adalah membuat modul kita sendiri. Ini dilakukan saat pertama kali kita mendapatkan lokasinya di memori dengan memanggil metode "getInstance", seperti ini:
LightModule *module = LightModule::getInstance();
Kemudian, kita perlu mengatur parameter dalam fungsi "setup()" Arduino, dimulai dengan menginisialisasi port "Serial" seperti biasa pada sketsa Arduino:
Serial.begin(9600);
Kami membuat sensor cahaya dengan menulis baris ini:
GroveDigitalLightSensor *lightSensor = baru GroveDigitalLightSensor();
Kemudian, kami memberi tahu modul kami untuk menggunakan array pointer kami di Arduino Stream untuk berkomunikasi melalui mereka:
modul->setStreams(aliran);
Kami juga memberi tahu modul kami untuk menggunakan sensor cahaya kami untuk memantau intensitas cahaya di mana modul berada:
modul->setSensor(lightSensor);
Kami memberi tahu modul kami untuk menggunakan LED kami untuk memberi kami umpan balik visual:
modul->setDisplay(&led);
Terakhir, kami memberi tahu modul kami bahwa modul siap untuk melakukan konfigurasi internal apa pun yang perlu dilakukan dengan memanggil fungsi "setup"-nya sendiri:
modul->setup();
Langkah terakhir kita sekarang adalah memanggil fungsi "run()" dari modul kita, yang dirancang untuk dipanggil pada setiap iterasi dari fungsi "loop" Arduino dengan menulis baris ini di dalam fungsi "loop":
modul->jalankan();
Sekarang, sketsa kami akhirnya siap untuk diunggah ke Arduino dan menguji modul kami!
Langkah 6: Menguji Modul Di Rumah Kami
Untuk mengunggah sketsa ke Arduino, pilih papan Arduino UNO Anda dengan masuk ke "Alat" > "Port"> "[COMx atau /dev/x] (Arduino/Genuino UNO)".
Terakhir, cukup klik tombol "Unggah" (tombol lingkaran dengan panah menunjuk ke kanan, ikon kedua dari bilah alat) untuk mengunggah sketsa di papan Anda.
Selesai! Sekarang modul Anda harus berfungsi dan mengirimkan nilai ke komputer Anda yang terlihat di Serial Monitor Arduino. Anda dapat memeriksanya dengan membuka "Serial Monitor" Arduino di menu "Tools" dan Anda akan memiliki output seperti gambar judul kedua dari langkah ini:)
Langkah 7: Membangun Kasus untuk Modul
Anda dapat membuat kotak kotak sederhana untuk modul Anda dengan memotongnya dengan laser di papan kayu lapis 3mm.
Untuk membuat kotak kotak kami, kami menggunakan pembuat kotak untuk menyiapkan template pada dimensi yang diinginkan yang kami sesuaikan nanti. Anda akan menemukan file svg dari modul luminositas yang dilampirkan pada langkah ini.
Kemudian rekatkan permukaannya kecuali satu sehingga Anda dapat membukanya nanti, masukkan sirkuit Anda ke dalam dan tempelkan LED di lubang casing (kami menggunakan selotip transparan untuk mengisi lubang dan menyebarkan cahaya selain menempelkan LED di depan itu).
Sekarang cukup tambahkan baterai untuk memberi daya pada Arduino Anda, tutup kasing dan modul Anda sudah siap dan akan terlihat bagus:)
Direkomendasikan:
Cara Membangun Battlebot Dengan Cardboard dan Arduino: 7 Langkah (dengan Gambar)
Cara Membuat Battlebot Dengan Cardboard dan Arduino: Saya membuat battlebot menggunakan Arduino UNO dan kardus digunakan untuk membuat bodinya. Saya mencoba menggunakan persediaan yang terjangkau dan memberikan kebebasan kreatif kepada anak-anak tentang cara mendesain bot pertempuran mereka. Battlebot menerima perintah dari pengontrol nirkabel
Cara Membangun Kubus LED 8x8x8 dan Mengontrolnya Dengan Arduino: 7 Langkah (dengan Gambar)
Cara Membangun Kubus LED 8x8x8 dan Mengontrolnya Dengan Arduino: Jan 2020 edit: Saya membiarkan ini jika ada yang ingin menggunakannya untuk menghasilkan ide, tetapi tidak ada gunanya lagi membangun kubus berdasarkan instruksi ini. IC driver LED tidak lagi dibuat, dan kedua sketsa ditulis dalam versi lama
Aktivitas Luminositas DEEDU: 6 Langkah
Aktivitas Luminositas DEEDU: Tujuan dari aktivitas ini adalah untuk meningkatkan sensitivitas pengguna terhadap konsumsi energi untuk kontrol kecerahan. Aktivitas ini dirancang untuk anak-anak di atas usia 9 tahun, yang mampu membaca dan memahami pengukuran kecerahan indikatif dan
Penambah Luminositas Laptop: 13 Langkah
Penambah Luminositas Laptop: Lelah karena tidak dapat melihat layar Anda di laptop lama itu saat Anda berada di luar? Penambah Luminositas Laptop adalah untuk ANDA
Cara Membangun Kotak Speaker Gitar atau Membangun Dua untuk Stereo Anda.: 17 Langkah (dengan Gambar)
Cara Membuat Kotak Speaker Gitar atau Membangun Dua untuk Stereo Anda.: Saya ingin speaker gitar baru sesuai dengan ampli tabung yang sedang saya buat. Pembicara akan tetap berada di luar toko saya sehingga tidak perlu menjadi sesuatu yang terlalu istimewa. Penutup Tolex mungkin terlalu mudah rusak, jadi saya hanya menyemprotkan bagian luar hitam setelah pasir ringan