Isi kandungan:
- Langkah 1: Mengumpulkan Komponen
- Langkah 2: Memasang Perpustakaan Kami
- Langkah 3: Memasang Perpustakaan yang Diperlukan
- Langkah 4: Menyusun Modul
- Langkah 5: Menulis Lakaran Modul Luminositi
- Langkah 6: Menguji Modul AtHome Kami
- Langkah 7: Membina Kes untuk Modul
Video: Bina Modul Luminositi Dengan AtHome: 7 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:11
AtHome adalah projek pelajar open source dan openhardware sepenuhnya yang dibuat oleh kumpulan AtHome dari Epitech, bertujuan untuk mengembangkan penyelesaian tersambung dari beberapa modul sensor individu yang berkomunikasi dengan pangkalan data yang dihoskan sendiri yang memperlihatkan API yang digunakan untuk memberi makan aplikasi telefon pintar dan aplikasi web. Modul memantau persekitaran dalaman rumah dan dapat memberikan maklum balas visual kepada pengguna, dari hijau (baik) ke merah (buruk) dan data yang dihantar dapat dilihat oleh pengguna melalui komunikasi bersiri modul atau di aplikasi kami jika anda menggunakannya.
Walaupun projek ini masih dalam pembangunan aktif, fungsi asas modul kami kini siap dan semestinya mudah digunakan untuk membangunkan modul khusus. Oleh itu, itulah sebabnya saya mencadangkan anda untuk melihat bagaimana membina modul mudah anda sendiri dengan contoh modul cahaya ini.
Modul ini pada dasarnya dibina dengan papan serasi Arduino (teras Arduino separa harus cukup selagi ia mempunyai aliran, Kawat dan sokongan aliran UART), LED (merah atau RGB) berubah menjadi merah sekiranya berlaku, sensor, bekalan kuasa (bekalan kuasa dinding atau bateri) dan casing pemotongan laser.
Ya, pastinya bukan perkara baru, terdapat banyak projek sensor tetapi kami berharap ciri lain seperti pengesanan masalah kesihatan, komunikasi dan penyimpanan maklumat pada pelayan yang dihoskan sendiri dan aplikasi visualisasi dapat membantu anda. Atau jika anda hanya ingin memantau rumah anda, projek-projek sederhana atau tidak kurang menarik:)
Langkah 1: Mengumpulkan Komponen
Untuk projek ini, anda memerlukan beberapa komponen untuk membina modul AtHome anda:
- 1x Arduino-Compatible board: Di sini saya akan menggunakan Arduino UNO (tetapi ia juga berfungsi dengan papan lain seperti TI Launchpads dan ESP8266 board)
- Sensor 1x: Saya akan menggunakan sensor cahaya TSL2561 (senarai sensor yang disokong terdapat pada dokumentasi perpustakaan kami)
- 1x led: Saya akan menggunakan LED RGB Grove Chainable di sini (tetapi ia juga boleh menjadi LED merah sederhana atau NeoPixel)
- Wayar Dupont
Senarai komponen yang serasi boleh didapati di dokumentasi projek kami.
Langkah 2: Memasang Perpustakaan Kami
Untuk memasang perpustakaan kami, anda perlu memuat turun dari repositori kami (kami akan menerbitkannya kemudian di senarai Arduino IDE dan PlatformIO) dengan pautan ini:
gitlab.com/Woodbox/Framework/-/jobs/artifacts/master/download?job=deploy
Kemudian, masuk ke Arduino IDE dan pilih "Sketch> Include Library> Add. ZIP Library…". Kemudian pilih fail zip bernama "artifacts.zip" dan klik "OK".
Langkah 3: Memasang Perpustakaan yang Diperlukan
Untuk berfungsi, perpustakaan kami memerlukan beberapa perpustakaan lain untuk dipasang di komputer anda:
- Perpustakaan Arkhipenko TaskScheduler
- Perpustakaan Sensor Cahaya Digital SEEED Studio Grove
- Perpustakaan LED RGB SEEED Studio Grove Chainable
- Perpustakaan Adafruit NeoPixel
Anda boleh memasangnya melalui pengurus perpustakaan Arduino IDE, dengan membuka "Sketsa"> "Sertakan Perpustakaan"> "Kelola perpustakaan …".
Di tetingkap baru yang akan dibuka, tulis di bar carian putih nama perpustakaan yang ingin anda pasang, kemudian klik pada bloknya. Butang "Pasang" akan muncul, anda hanya perlu mengkliknya dan IDE akan memuat turunnya dan memasangnya untuk anda.
Langkah 4: Menyusun Modul
Kami akan bermula dengan sensor. Sambungkan melalui wayar 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 Grove Chainable RGB ke pin 5V Arduino dan pin GND LED ke GND kedua Arduino. Sekiranya anda Arduino hanya sebagai satu pin 5V, anda boleh menggunakan papan roti untuk menyambungkan 5v Arduino ke baris + papan roti dan menyambungkan semua pin 5V komponen anda di atasnya, atau menyatukannya bersama pada sehelai papan jalur atau gunakan penyambung wago atau apa sahaja yang anda suka. Sekarang, sambungkan pin CI LED anda ke pin 7 Arduino anda dan pin DI LED anda ke pin 8 Arduino anda. Sekiranya anda tidak mempunyai LED seperti itu, jangan risau, mungkin menggunakan LED bawaan papan Arduino anda atau yang klasik hanya dengan sedikit perubahan kod.
Langkah 5: Menulis Lakaran Modul Luminositi
Mari buat lakaran baru dan tulis kod untuk modul kami.
Sekiranya anda tidak berminat dengan penjelasan lakaran, anda boleh menyalin dan menampalnya di Arduino IDE anda:
#sertakan
menggunakan LightModule = AtHomeModule; Strim * aliran = {& Bersiri, nullptr}; GroveChainableLED:: Pin grovePins = {7, 8}; LED GroveChainableLED (& grovePins); LightModule * modul = LightModule:: getInstance (); batal persediaan () {// letakkan kod persediaan anda di sini, untuk dijalankan sekali: Serial.begin (9600); modul-> setStreams (aliran); GroveDigitalLightSensor * lightSensor = GroveDigitalLightSensor baru (); modul-> setSensor (lightSensor); modul-> setDisplay (& dipimpin); modul-> persediaan (); } gelung void () {// letakkan kod utama anda di sini, untuk dijalankan berulang kali: modul-> run (); }
Sekiranya anda ingin memahami semua apa yang dilakukan oleh kod ini, anda boleh membaca yang berikut atau jika anda tidak berminat, anda boleh terus ke langkah seterusnya.
Untuk memulakan, kita perlu memasukkan perpustakaan kita dalam lakaran kita dengan menulis baris ini di bahagian atas lakaran:
#sertakan
Sekarang, kita perlu membuat alias ke objek modul yang akan kita gunakan. Anda dapat melihatnya sebagai kotak dengan beberapa butang yang digunakan untuk menukar komponennya, memulakannya, menghentikannya, … dll. Oleh kerana kotak itu dibina oleh templat (seperti templat biasa yang kita gunakan untuk projek sebagai manusia, ia mempunyai asas pemula dan penyusun Arduino membina kod terakhir berdasarkan parameter yang kita berikan kepadanya) yang menentukan jenis yang mewakili nilai sensor dan bilangan nilai sensor yang ingin kita simpan dalam memori, ia ditentukan dalam namanya dan biasanya harus diulang setiap kali kita mahu menggunakannya. Yang agak menjengkelkan, sebab itulah kami akan mengaitkan nama baru, alias, dengan nama penuh kotak ini.
Katakan misalnya saya mahu kotak ini diberi nama "LightModule", kerana ia akan digunakan untuk melaksanakan modul pemantauan cahaya dan saya ingin menyimpan hanya 1 nilai pada satu masa. Luminositas ditunjukkan dalam lux sebagai jenis tidak terpisahkan oleh sensor TSL2561 kami, yang diwakili sebagai uint16_t oleh komputer. Alias kami akan kelihatan seperti ini:
menggunakan LightModule = AtHomeModule;
kata kunci "menggunakan" bermaksud kami membuat alias dan nama yang kami berikan tepat sesuai dengan urutan selepas watak "=".
"AtHomeModule" adalah nama sebenarnya dari kotak ini yang kami beri nama baru, dan parameter yang menentukan perwakilan nilai dan jumlah nilai yang disimpan dalam memori disenaraikan di antara "".
Sekarang, apabila kita akan menggunakan nama kemudian "AtHomeModule", Arduino akan mengetahui ia merujuk kepada nama penuh "AtHomeModule".
Sekiranya anda mahu kotak anda dapat menyimpan 5 nilai dalam memori dan bukannya 1, anda hanya perlu mengganti "1" dengan "5" dan Arduino akan menghasilkan untuk anda pelbagai jenis kotak yang dapat melakukan apa yang anda mahukan. Namun, perhatikan bahawa jika modul diprogramkan untuk mengirim nilainya sebelum mempunyai masa untuk mengukur 5 nilai sensor dengan berkesan, anda tidak akan pernah melihat 5 daripadanya dihantar kerana ia hanya menghantar nilai baru sejak muat naik terakhir.
Seterusnya, kita perlu membuat susunan penunjuk yang mengandungi penunjuk pada aliran Arduino yang digunakan oleh modul untuk berkomunikasi, selalu diakhiri dengan kerja kunci "nullptr". Di sini, saya hanya menggunakan aliran "Serial" Arduino yang berkomunikasi dengan komputer melalui port USB, jadi susunannya seperti ini:
Strim * aliran = {& Bersiri, nullptr};
Karakter "*" bermaksud jenisnya adalah penunjuk (lokasi elemen, bukan elemen itu sendiri) dan tanda kurung "" bermaksud dalam Arduino itu adalah tatasusunan, jadi kita dapat meletakkan beberapa nilai.
Seterusnya, kita perlu membuat LED kita. Untuk melakukan ini, kita perlu menulis dua baris berikut;
GroveChainableLED:: Pin grovePins = {7, 8};
LED GroveChainableLED (& grovePins);
Sekiranya anda tidak mempunyai LED Grove RGB tetapi masih mahukan maklum balas visual, anda boleh melakukannya dengan perubahan ringkas dalam lakaran. Gantikan dua baris sebelumnya dengan baris ini:
MonochromaticLED led (LED_BUILTIN);
Dalam konfigurasi ini, LED bawaan hijau akan menyala selagi nilai yang dipantau adalah baik untuk kesihatan dan mati apabila tidak berfungsi. Sekiranya anda lebih suka menyalakannya apabila tidak berfungsi (kerana anda menggunakan contohnya LED merah dan bukan lampu hijau pada pin 13), anda boleh menggunakan garis ini sebagai gantinya:
MonochromaticLED led (LED_BUILTIN, benar);
Langkah seterusnya adalah membuat modul kita sendiri. Ia dilakukan pada kali pertama kami mendapatkan lokasi dalam ingatan dengan memanggil kaedah "getInstance", seperti ini:
LightModule * modul = LightModule:: getInstance ();
Kemudian, kita perlu menetapkan parameter dalam fungsi "setup ()" Arduino, bermula dengan menginisialisasi port "Serial" seperti biasa dalam lakaran Arduino:
Serial.begin (9600);
Kami membuat sensor cahaya dengan menulis baris ini:
GroveDigitalLightSensor * lightSensor = GroveDigitalLightSensor baru ();
Kemudian, kami memberitahu modul kami untuk menggunakan pelbagai petunjuk di Arduino Stream untuk berkomunikasi melalui mereka:
modul-> setStreams (aliran);
Kami juga memberitahu modul kami untuk menggunakan sensor cahaya kami untuk memantau intensiti cahaya di mana modulnya:
modul-> setSensor (lightSensor);
Kami memberitahu modul kami untuk menggunakan LED kami untuk memberi kami maklum balas visual:
modul-> setDisplay (& dipimpin);
Akhirnya, kami memberitahu modul kami siap melakukan konfigurasi dalaman yang perlu dilakukan dengan memanggil fungsi "persediaan" sendiri:
modul-> persediaan ();
Langkah terakhir kami sekarang adalah memanggil fungsi "run ()" dari modul kami, yang dirancang untuk dipanggil pada setiap lelaran fungsi "loop" Arduino dengan menulis baris ini di dalam fungsi "loop":
modul-> jalankan ();
Sekarang, lakaran kami akhirnya siap dimuat naik ke Arduino dan menguji modul kami!
Langkah 6: Menguji Modul AtHome Kami
Untuk memuat naik lakaran ke Arduino, pilih papan Arduino UNO anda dengan masuk di "Tools"> "Port"> "[COMx or / dev / x] (Arduino / Genuino UNO)".
Yang terakhir, klik pada butang "Muat Naik" (butang bulatan dengan anak panah yang menunjuk ke kanan, ikon kedua bar alat) untuk memuat naik lakaran di papan anda.
Sudah disiapkan! Sekarang modul anda harus berfungsi dan menghantar nilai ke komputer anda yang kelihatan di Monitor Serial Arduino. Anda boleh menyemaknya dengan membuka "Serial Monitor" Arduino di menu "Tools" dan anda semestinya mempunyai output seperti gambar tajuk kedua langkah ini:)
Langkah 7: Membina Kes untuk Modul
Anda boleh membina kotak kotak sederhana untuk modul anda dengan memotong laser di papan lapis 3mm.
Untuk membuat kotak kotak kami, kami menggunakan makercase untuk menyiapkan templat pada dimensi yang diinginkan yang akan kami sesuaikan kemudian. Anda akan menemui fail svg modul luminositi yang dilampirkan pada langkah ini.
Kemudian tempelkan wajah bersama-sama kecuali satu sehingga anda dapat membukanya kemudian, pasangkan litar anda ke dalam dan pasangkan LED di lubang casing (kami menggunakan pita lutsinar untuk mengisi lubang dan menyebarkan cahaya di samping melekat LED di depan daripadanya).
Sekarang tambah bateri untuk menghidupkan Arduino anda, tutup casing dan modul anda sudah siap dan semestinya kelihatan baik:)
Disyorkan:
Bina Robot Streaming Video Terkawal Internet Anda Dengan Arduino dan Raspberry Pi: 15 Langkah (dengan Gambar)
Bina Robot Streaming Video Terkawal Internet Anda Dengan Arduino dan Raspberry Pi: Saya @RedPhantom (aka LiquidCrystalDisplay / Itay), seorang pelajar berusia 14 tahun dari Israel yang belajar di Sekolah Menengah Max Shein untuk Sains dan Matematik Lanjutan. Saya membuat projek ini untuk semua orang belajar dan berkongsi! Anda mungkin mempunyai
Aktiviti Luminositi DEEDU: 6 Langkah
Aktiviti DEEDU Luminosity: Tujuan aktiviti ini adalah untuk meningkatkan kepekaan pengguna terhadap penggunaan tenaga untuk kawalan kecerahan. Aktiviti ini dirancang untuk kanak-kanak berumur lebih dari 9 tahun, yang dapat membaca dan memahami pengukuran kecerahan yang ditunjukkan dan
Bina IOT Pertama Anda Menggunakan Arduino Tanpa Modul Tambahan: 5 Langkah (dengan Gambar)
Bina IOT Pertama Anda Menggunakan Arduino Tanpa Modul Tambahan: Dunia berjalan lebih pintar setiap hari dan sebab terbesar di sebalik ini adalah evolusi teknologi pintar. Sebagai peminat teknologi, anda pasti pernah mendengar istilah IOT yang bermaksud Internet of Things. Internet perkara bermaksud mengawal dan memberi makan
Bina Bekalan Daya 15V Dual Menggunakan Modul Rak untuk Bawah $ 50: 10 Langkah (dengan Gambar)
Bina Daya Kuasa 15V Dual Menggunakan Modul Rak di Bawah $ 50: Pengenalan: Sekiranya anda seorang peminat yang berurusan dengan audio, anda akan biasa dengan bekalan kuasa rel dua. Kebanyakan papan audio berkuasa rendah seperti pra-amp memerlukan mana-mana dari +/- 5V hingga +/- 15V. Mempunyai bekalan kuasa voltan ganda menjadikan mu
Penambah Luminositi Komputer: 13 Langkah
Penambah Luminositi Komputer: Bosan kerana tidak dapat melihat skrin anda di komputer riba lama ketika anda berada di luar? Laptop Luminosity Enhancer adalah untuk ANDA