Isi kandungan:

LED Giant - Menjejaki Adam Savage: 13 Langkah (dengan Gambar)
LED Giant - Menjejaki Adam Savage: 13 Langkah (dengan Gambar)

Video: LED Giant - Menjejaki Adam Savage: 13 Langkah (dengan Gambar)

Video: LED Giant - Menjejaki Adam Savage: 13 Langkah (dengan Gambar)
Video: Навязчивые идеи Адама Севиджа 2024, Julai
Anonim
LED Gergasi - Menjejaki Adam Savage
LED Gergasi - Menjejaki Adam Savage
LED Gergasi - Menjejaki Adam Savage
LED Gergasi - Menjejaki Adam Savage
LED Gergasi - Menjejaki Adam Savage
LED Gergasi - Menjejaki Adam Savage

Di sini anda akan menemui rendition LED Giant, yang bertujuan untuk bertindak sebagai lampu amaran Twitter, YouTube dan Twitch. Tujuan utama saya adalah untuk memberi amaran apabila terdapat tweet, video atau aliran kedutan oleh Adam Savage dan pasukan yang diuji, dan untuk bersikap adil, beberapa orang lain yang saya ikuti seperti Robert Cowan, Marty the Mechanic dan banyak lagi.

Jelas sekali saya boleh menggunakan twitter, twitch dll, di telefon atau komputer riba saya, tetapi terdapat begitu banyak amaran dari begitu banyak perkhidmatan dan pemberitahuan yang pada dasarnya saya mematikan semuanya, ditambah pula telefon masuk ke mod senyap setelah jam 10 malam. Ia juga akan berfungsi dengan Webhooks yang saya ada juga dikonfigurasikan untuk menerima kemas kini dari beberapa jadual Biq Query yang berkaitan dengan kerja untuk memberitahu saya jika mereka telah diperbaharui OK dengan jumlah rekod yang mencukupi setiap hari.

Adafruit mempunyai perkhidmatan yang disebut Adafruit IO yang saya ingin mencuba dan saya mempunyai makna sepanjang tahun untuk mencuba dan menangani semula ESP8266 setelah mendengar beberapa kata yang baik pada siaran Wemos D1 Mini 3. Semuanya mula berkumpul ketika saya menemui reka bentuk untuk LED pada perkara yang berbeza oleh Astro73. Saya mulakan dengan itu dan mengolahnya sedikit demi sedikit dan juga menambah butang tekan ke pangkalan dan beberapa perubahan kosmetik lain. Anda boleh mendapatkan remixnya di sini

Ditambah pula dengan suara yang dapat dikendalikan melalui Alexa sekarang juga dengan munculnya kata pemicu alexa IFTTT.

Langkah 1: Bahan

Sekiranya anda ingin membuatnya, senarai bahagiannya agak kecil dan juga tidak mahal. Sekiranya anda tidak sabar, anda boleh mendapatkan bahagian utama dari luar negara sekaligus mengurangkan kosnya. Bahan utama bagaimanapun adalah casing dan alas LED Giant. Sekiranya anda mempunyai pencetak 3D maka anda sudah siap, jika tidak ada beberapa syarikat pencetak dalam talian yang akan mencetak bahagiannya. Hanya ada 3 yang mesti cukup murah.

1. Wemos D1 Mini R3

2. Neopixel 8 LED

3. Pangkal dan kaki dicetak dalam PETG hitam

4. Lensa bercetak dan pemegang cahaya dalam PLA lutsinar

5. Push Button Switch 12mm persegi x1

6. Cap Butang Tekan Bulat x1

7. plumbum dan penyesuai USB untuk kuasa

8. Kepala butang M3x20

9. M3 Kacang

10. Selak M2x8mm x2

11. M2 Kacang x2

12. Beberapa wayar Hitam, Merah dan Kuning

13. Perintang 300-500 Ohm

14. Potongan kecil dari heatshrink

Anda boleh menggunakan peranti ESP yang lain, atau bahkan Huzzah, tetapi casing ini dirancang untuk mini yang mempunyai lubang pemasangan dan mengelakkannya terpaku.

Langkah 2: Alat

Untuk membuat dan membina ini, anda memerlukan perkara berikut

1. pencetak 3D

2. Kekunci Allen 1.5mm dan 2mm

3. Soldering Iron dan solder

4. Pemotong wayar

5. Tang

6. Rasa humor

7. pisau bedah untuk pemangkasan

Langkah 3: Keperluan Kod

Oleh itu, sebelum kita menyelami bangunan, saya akan menggariskan beberapa syarat yang ingin saya sertakan dalam ini. Sebilangan besar ini ada dalam fikiran saya sebelum memulakan dan saya telah membuat beberapa aliran untuk mengetahui apa yang akan saya cuba. Semasa ia berjalan, saya menemui beberapa masalah dengan perkhidmatan yang ingin saya atasi.

Keperluan.

Saya mahu LED menunjukkan kepada saya ketika tweet atau video baru disiarkan dan juga ternyata apabila saluran Twitch yang spesifik bermula. Saya juga mahu makluman itu berterusan sehingga saya membatalkannya sehingga jika saya tidak pergi sebentar saya akan mengetahui apa yang telah berlaku semasa saya pergi. Saya juga mahu ia dapat dikonfigurasi untuk akses Wi-Fi tanpa perlu menukar perisian juga. Satu perkara terakhir yang muncul adalah sebagai tambahan kepada menanggapi siaran langsung, saya memerlukannya untuk memeriksa setiap 15 minit status data yang diberikan kepadanya

Oleh itu, dengan asas-asasnya, perkara seterusnya adalah untuk mengetahui bagaimana setiap bahagian akan dilaksanakan. Anda dapat melihat idea saya di bawah ini di bahagian mana yang akan dikendalikan oleh jenis perisian atau platform mana.

1. Adafruit IO, ini digunakan untuk mengatur suapan untuk makluman, anda boleh mendapatkan akaun di sini

Saya akan menggunakan ini sebagai perkhidmatan antrian pesanan di mana saya akan menghantarnya mesej dari IFTTT dan kemudian Giant LED menerima mesej tersebut sehingga dapat bertindak terhadapnya.

2. IFTTT, https://ifttt.com/ dan ini digunakan untuk mengimbas saluran Twitter, YouTube dan Twitch yang dipilih dan kemudian menghantar acara tersebut ke Adafruit IO

3. Kod ESP8266 untuk membaca suapan ini dan ini dimasukkan ke dalam ESP8266 dengan menggunakan Arduino IDE standard (v1.8.8)

4. Kod Arduino, dimuat ke ESP8266 untuk membaca suapan Adafruit IO dan menyalakan Neopixel

5. Kod Arduino untuk membaca butang tekan untuk membersihkan amaran

6. Mampu mengkonfigurasi penyesuai WiFi tanpa harus menghidupkan kembali ESP, dan untuk ini saya menggunakan perpustakaan WiFi Manager oleh Tzapu, https://github.com/tzapu/WiFiManager walaupun pilihan penyediaan memerlukan sedikit perubahan untuk menampung Adafruit IO perpustakaan.

Langkah 4: Menyiapkan Adafruit IO

Menubuhkan Adafruit IO
Menubuhkan Adafruit IO

Ini adalah langkah pertama kerana anda memerlukan kunci akses yang anda buat di sini dan juga perlu membuat suapan tempat IFTTT akan menghantar acara. Anda boleh menyediakan akaun ini dan akaun IFTTT dan hampir semuanya siap dan berfungsi sebelum anda beralih ke bahagian Arduino projek ini.

Daripada menyalin contoh adafruit, anda boleh mendapatkan asasnya di sini https://learn.adafruit.com/gmailbox/adafruit-io-se… yang akan membuat anda siap.

Kemudian untuk LED GIANT anda juga perlu menambah saluran lalai dengan suapan berikut

1. warna - ini membolehkan kita menukar warna dari jauh dengan sesuatu seperti Alexa

2. berkedut

3. twitterfan

4. youtubefan

Kemudian anda juga perlu membuat kumpulan baru jika anda sudah memanggil input, kemudian ke dalam kumpulan ini juga buat feed yang disebut digital. Ini akan membolehkan kita melihat kesan menekan butang sekiranya kita ingin memperluaskan penggunaan peranti ini untuk tujuan lain.

Sekiranya anda juga ingin pada ketika ini adalah bermain dengan papan pemuka sehingga anda boleh menambahkan suapan ini ke dalamnya untuk tujuan maklumat dan mencari kesalahan.

Langkah 5: Menyiapkan IFTTT

Menyiapkan IFTTT
Menyiapkan IFTTT
Menyiapkan IFTTT
Menyiapkan IFTTT

Anda juga boleh mengikuti panduan Adafruit di sini, https://learn.adafruit.com/gmailbox/ifttt-setup. Anda kemudian boleh memilih tindakan Twitter, youtube dan twitch untuk menyiapkan senarai tontonan anda dan kemudian menghantarnya ke feed yang berkaitan. Saya telah melampirkan video ringkas supaya anda dapat melihat seberapa pantasnya.

Sebagai tambahan jika anda ingin mengawal suara warna LED anda oleh Alexa kini terdapat applet Amazon Alexa. Untuk menetapkan salah satunya pilih aplikasi dan pilih kata biru, kemudian sambungkan ke feed Adafruit yang telah anda tetapkan disebut warna dan masukkan 0000ff sebagai data yang akan dihantar ke saluran tersebut. Anda juga boleh menyampaikan perintah tambahan dengan LED GIANT seperti reset atau but semula jika anda mahu.

Semasa anda menyiapkan pemicu IFTTT, anda perlu memilih data yang dikirim dan ini disebut "Bahan" di IFTTT. Bahagian pertama yang kita perlukan adalah "UserName" kemudian ruang dan kemudian "CreatedAt"

Kami memilih kedua-dua item tersebut sehingga ketika data tiba di ESP8266, kami kemudian dapat mengesan apakah itu tweet baru dan ia berbeza dengan tweet sebelumnya oleh pengguna yang sama. Anda dapat melihat perkara ini dari gambar yang dilampirkan.

Langkah 6: Memasang Papan ESP8266 Ke Arduino IDE

Di sinilah keadaannya agak sukar dan mungkin memerlukan lebih banyak masa untuk diselesaikan. Sebagai tambahan kepada ESP8266, anda juga memerlukan perpustakaan Adafruit IO dan anda boleh mengikuti panduan ini untuk mereka.

learn.adafruit.com/gmailbox/arduino-setup

Terdapat penjelasan ringkas mengenai cara menambahkan papan ESP8266 di sini juga

Jangan lupa untuk memastikan Arduino IDE anda menggunakan versi terbaru juga dan saya menggunakan 1.8.8 pada saat menulis ini.

Satu perpustakaan lain yang kami gunakan adalah SimpleTimer kerana ini akan membolehkan kami mengatur pemasa latar belakang sehingga kami dapat memeriksa suapan secara berkala, petunjuk untuk ini dapat dilihat pada penggunaan simpletimer https://playground.arduino.cc/Code/SimpleTimer# Muat turun

Langkah 7: Memasang Perpustakaan Pengurus WiFi

Untuk membolehkan kita mendapatkan konfigurasi jarak jauh dari penyediaan WiFi, kita akan menggunakan Tzapu Wifi Manger, perincian mengenai ini dan cara memasang perpustakaan boleh didapati di sini, github.com/tzapu/WiFiManager

Ini adalah pemasangan perpustakaan luaran yang cukup mudah dan pilihannya sudah ada di bahagian Urus perpustakaan di bahagian alat Arduino IDE anda.

Langkah 8: Kod ESP8266 - Dengan Pencetakan Debug

// Kod ini mengandungi pernyataan cetak sehingga anda dapat memantau pengoperasiannya melalui monitor Serial

// Berdasarkan Contoh Output LED Adafruit IO RGB // Adafruit melaburkan masa dan sumber yang menyediakan kod sumber terbuka ini. // Tolong sokong Adafruit dan perkakasan sumber terbuka dengan membeli // produk dari Adafruit! // // Ditulis oleh Todd Treece untuk Adafruit Industries // Hak Cipta (c) 2016-2017 Adafruit Industries // Berlesen di bawah lesen MIT. // // Semua teks di atas mesti disertakan dalam pengagihan semula. // menggunakan simpletimer https://playground.arduino.cc/Code/SimpleTimer#Do… // https://playground.arduino.cc/Code/SimpleTimer#Do… // selebihnya kod oleh Ajax Jones https:// taman permainan.arduino.cc/Code/SimpleTimer#Do // https://playground.arduino.cc/Code/SimpleTimer#Do… // ******************* ******* Konfigurasi *********************************** / #tentukan IO_USERNAME "IO anda Nama pengguna "#define IO_KEY" Kunci IO anda "// kosongkan kerana kami akan menerimanya melalui Pengurus Wifi, nampaknya berfungsi dengan baik dengan cara ini #define WIFI_SSID" "#define WIFI_PASS" "// kami tidak memasukkannya sebagai AdafruitIO yang akan sertakan versi nya // # include //https://github.com/esp8266/Arduino // diperlukan untuk perpustakaan #include #include #include "WiFiManager.h" //https://github.com/tzapu/WiFiManager # sertakan pemasa SimpleTimer; #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS); // ************************ Konfigurasi NeoPixel ********************** ********* // #masuk "Adafruit_NeoPixel.h" #tentukan PIXEL_PIN 5 #tentukan PIXEL_COUNT 8 int NUM_LEDS = PIXEL_COUNT; #tentukan PIXEL_TYPE NEO_GRB + NEO_KHZ800 Adafruit_NeoPixel piksel = Adafruit_NeoPixel (PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE); // Warna utama dan warna lalai panjang default_color = 865554; panjang RED_color = 2689027; // merah # 290803 panjang HIJAU_warna = 865554; // hijau # 0d3512 panjang BLUE_color = 856117; // biru # 0d1035 panjang PURPLE_color = 2364968; // ungu # 241628 panjang BRIGHTRED_color = 15990784; // merah terang # f40000 // ------------------------------------------ ----------------------------------------------- //masa idea diambil dari https://www.safaribooksonline.com/library/view/arduino-cookbook-2nd/9781449321185/ch12.html https://playground.arduino.cc/Code/SimpleTimer#Do… https:// taman permainan. arduino.cc/Code/SimpleTimer#Do… const long oneSecond = 1000; // sesaat ialah seribu milisaat selamanya satuMinute = satuSecond * 60; const long fiveMinutes = oneMinute * 5; const panjang lima belasMinutes = limaMinutes * 3; const one oneHour = lima belasMinutes * 4; // Pengguna Twitter yang paling kami sukai dan ini akan berkelip dan semua tweet lain yang kami pilih akan menukar warna String SuperTweet = {"ajaxjones", "donttrythis", "prodnose", "testingcom"}; String SuperTuber = {"diuji", "cowan", "dies"}; // menetapkan status amaran supaya kita dapat terus memancarkan LEDS di gelung gelung utama WHIZZY_TWEET = false; bool WHIZZY_TUBER = salah; bool WHIZZY_TWITCH = salah; // Menyimpan tweet dan youtube terakhir supaya kita dapat membuat perkhidmatan untuk diperiksa sekali-sekala dan kemudian String lasttweet = ""; Rentetan lasttube = ""; String lasttwitch = ""; // pin digital 5, ini adalah butang yang kami gunakan untuk menetapkan semula warna amaran #define BUTTON_PIN 4 // keadaan butang, tidak begitu yang digunakan kerana kami mencari butang pada interupt bool current = false; bool terakhir = salah; // siapkan suapan 'warna', agar kami dapat menguji dan mengirim warna sesuai permintaan atau menggunakan Alexa trigger AdafruitIO_Feed * color = io.feed ("color"); // sediakan suapan 'twitterfan' - Blue AdafruitIO_Feed * twitter = io.feed ("twitterfan"); // sediakan suapan 'youtubefan' - Red AdafruitIO_Feed * youtube = io.feed ("youtubefan"); // sediakan suapan 'twitch' - Purple AdafruitIO_Feed * twitch = io.feed ("twitch"); // sediakan suapan 'digital' AdafruitIO_Feed * digital = io.feed ("input.digital"); // ------------------------------------------------ ----------------------------------------- batal persediaan () {// tetapkan pin butang sebagai input, kita menggunakan INPUT_PULLUP kerana kita tidak perlu menggunakan pinMode perintang luaran (BUTTON_PIN, INPUT_PULLUP); // Lampirkan gangguan pada vektor ISR untuk butang attachInterrupt (digitalPinToInterrupt (BUTTON_PIN), handleInterrupt, FALLING); // Mulakan siri dan tunggu monitor bersiri dibuka kemudian sambungkan ke io.adafruit.com Serial.begin (115200); sementara (! bersiri); // neopixel mula piksel.begin (); // Tetapkan keadaan awal menjadi merah sehingga kita tahu bahawa kita berada di luar talian dan berfungsi setAll (0xf4, 0x00, 0x00); // merah // untuk ujian, ini akan menunjukkan status WiFi WiFi.printDiag (Serial); WiFiManager wifiManager; // tetapkan panggilan balik yang dipanggil ketika menyambung ke WiFi sebelumnya gagal, dan memasuki mod Titik Akses wifiManager.setAPCallback (configModeCallback); // tetapkan semula tetapan yang disimpan, hapus komen baris berikutnya untuk memaksa pengujian WiFi Manager sehingga anda dapat menyambungkan // menggunakan telefon atau tablet anda untuk mencari rangkaian LED Giant yang akan muncul //wifiManager.resetSettings (); // menetapkan waktu tamat sehingga portal konfigurasi dimatikan // berguna untuk menjadikannya semua mencuba semula atau tidur // dalam beberapa saat wifiManager.setTimeout (240); jika (! wifiManager.autoConnect ("GIANT LED")) {Serial.println (F ("gagal menyambung dan memukul masa tamat")); // tetapkan semula dan cuba lagi tunda (3000); ESP.reset (); kelewatan (1000); } // untuk pengujian kita dapat melihat apakah kita mempunyai kelayakan yang tepat untuk menyambung //Serial.println (WiFi. SSID ()); //Serial.println(WiFi.psk());//WiFi.begin(WIFI_SSID, WIFI_PASS); // sementara (WiFi.status ()! = WL_CONNECTED) {// kelewatan (500); //Serial.print ("."); //} Serial.println (); Serial.println (F ("WiFi disambungkan")); Serial.println (F ("Alamat IP:")); Serial.println (WiFi.localIP ()); // sekarang kami menyambung ke Serial.print perkhidmatan IO (F ("Menyambung ke Adafruit IO")); io.connect (); // sediakan pengendali mesej untuk suapan 'warna'. warna-> onMessage (handleMessage); // sediakan pengendali mesej untuk suapan 'twitterfan'. twitter-> onMessage (twitterMessage); // sediakan pengendali mesej untuk umpan 'youtubefan'. youtube-> onMessage (youtubeMessage); // sediakan pengendali mesej untuk suapan 'twitch'. twitch-> onMessage (twitchMessage); // tunggu sambungan sementara (io.status () <AIO_CONNECTED) {Serial.print (F (".")); kelewatan (500); } // kita dihubungkan Serial.println (); Serial.println (io.statusText ()); //Serial.println(sizeof(SuperTweet)); //Serial.println(sizeof(SuperTweet[0])); // Cetak senarai akaun Twitter yang kami nantikan (byte idx = 0; idx <sizeof (SuperTweet) / sizeof (SuperTweet [0]); idx ++) {Serial.print (F ("SuperTweet [")); Serial.print (idx); Serial.print ("] = '"); Serial.print (SuperTweet [idx]); Serial.println ("'" "); } // Cetak senarai akaun YouTube yang kami nantikan (byte idx = 0; idx get (); // minta keadaan suapan yang ada, jadi anda perlu menekan semula semasa ia memulakan youtube -> get (); twitter-> get (); twitch-> get (); untuk (int i = 0; i get (); twitter-> get (); twitch-> get (); Serial.print ("mendapatkan beberapa tweet"); Serial.print ("uptime (s):"); Serial.println (millis () / 1000);} // ---------------- -------------------------------------------------- ----------------------- gelung kosong () {// io.run (); diperlukan untuk semua lakaran. io.run (); pemasa. jalankan (); if (WHIZZY_TWEET == true) {RunningLights (0x0d, 0x10, 0x35, 250);} if (WHIZZY_TUBER == true) {RunningLights (0x29, 0x08, 0x03, 250);} jika (WHIZZY_TWITCH == benar) {RunningLights (0x24, 0x16, 0x28, 250);}} // --------------------------------- -------------------------------------------------- ------ // tetapkan interupt untuk membersihkan amaran ketika butang ditekan dan periksa pengendalian kekosongan internetInterrupt () {WHIZZY_TWEET = salah; WHIZZY_TUBER = salah; WHIZZY_TWITCH = salah; semasa = benar; // hantar keadaan semasa ke umpan 'input.digital' pada adafruit io supaya kita dapat melihatnya digital-> simpan (semasa); untuk (int i = 0; i ")); Serial.print (semasa); Serial.print (F (" dan warna lalai ")); Serial.println (default_color); current = false; digital-> save (semasa); sementara (WiFi.status ()! = WL_CONNECTED) {kelewatan (500); setAll (0xeb, 0xfb, 0x03); // Yellow ebfb03}} // -------------- -------------------------------------------------- ------------------------- // ini dipanggil setiap kali mesej 'twitter' tiba - tetapkan LED ke Blue void twitterMessage (AdafruitIO_Data * data) {String tweeter = (data-> toString ()); tweeter.toLowerCase (); if ((lasttweet! = Tweeter) && (tweeter! = "")) {Lasttweet = tweeter; setAll (0x0d, 0x10, 0x35); // Tetapkan warna biru tweet Serial.print (F ("Tweet:")); Serial.print (tweeter); // periksa tweeter favourtite untuk (byte idx = 0; idx = 0) {// Mari buat tweet whizzy # 0d1035 WHIZZY_TWEET = true; Serial.print ("by"); Serial.print (SuperTweet [idx]);}} Serial.println ("");}} // --------- -------------------------------------------------- ---------------------------- - // ini dipanggil setiap kali mesej 'youtube' tiba - tetapkan LED ke MERAH void youtubeMessage (AdafruitIO_Data * data) {String tuber = (data-> toString ()); tuber.toLowerCase (); if ((lasttube! = tuber) && (tuber! = "")) {lasttube = umbi; setAll (0x29, 0x08,0x03); // Tetapkan warna merah youtube 290803 Serial.print (F ("Youtube:")); Serial.println (ubi); // periksa Youtuber favourtite untuk (byte idx = 0; idx = 0) {// Mari buat video mereka menjadi sesuka hati # 0d1035 WHIZZY_TUBER = benar; Serial.print ("oleh"); Serial.print (SuperTuber [idx]); }} Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // ini dipanggil setiap kali a Mesej 'twitch' tiba - tetapkan LED ke PURPLE void twitchMessage (AdafruitIO_Data * data) {String twitch = (data-> toString ()); twitch.toLowerCase (); jika ((lasttwitch! = twitch) && (twitch! = "")) {lasttwitch = twitch; setAll (0x24, 0x16, 0x28); // Tetapkan warna ungu berkedut # 241628 Serial.print (F ("Twitch:")); Serial.println (berkedut); // Tidak perlu memeriksa Twitcher favourtite, kami hanya mengikuti satu WHIZZY_TUBER = true; Serial.println (""); }} // ---------------------------------------------- ------------------------------------------- // fungsi ini dipanggil bila-bila masa mesej 'warna' diterima // yang akan menetapkan warna lalai pada permulaan berdasarkan nilai suapan warna terakhir yang tidak betulMesej (data AdafruitIO_Data *) {// mencetak nilai RGB dan nilai hex Serial.print (F ("Nilai HEX yang diterima: ")); Serial.println (data-> nilai ()); warna panjang = data-> keNeoPixel (); // default_color = warna; Serial.print (F ("Diterima HEX panjang:")); Serial.println (warna); untuk (int i = 0; i <PIXEL_COUNT; ++ i) {pixels.setPixelColor (i, color); } tunjukkanStrip (); } // ----------------------------------------------- ------------------------------------------ batal RunningLights (byte merah, bait hijau, byte blue, int WaveDelay) {int Position = 0; untuk (int j = 0; j <NUM_LEDS; j ++) {Kedudukan ++; // = 0; // Kedudukan + Kadar; untuk (int i = 0; i <NUM_LEDS; i ++) {setPixel (i, ((sin (i + Position) * 127 + 128) / 255) * red, ((sin (i + Position) * 127 + 128) / 255) * hijau, ((sin (kedudukan + i) * 127 + 128) / 255) * biru); } tunjukkanStrip (); kelewatan (WaveDelay); }} // ---------------------------------------------- ------------------------------------------- // Rutin Neopixel batal setSemua (byte merah, byte green, byte blue) {untuk (int i = 0; i getConfigPortalSSID ()); // memasuki mod konfigurasi, tetapkan Neo Pixel ke ungu # 241628 = 2364968 // setAll (0x24, 0x16, 0x28); setAll (0xeb, 0xfb, 0x03); // Kuning ebfb03}

Langkah 9: Memateri Semuanya

Memateri Semuanya Bersama
Memateri Semuanya Bersama
Memateri Semuanya Bersama
Memateri Semuanya Bersama
Memateri Semuanya Bersama
Memateri Semuanya Bersama

Segala-galanya dalam reka bentuk ini disolder bersama dan semestinya agak mudah diuruskan. Saya telah menggunakan 3 wayar warna yang berbeza untuk mempermudah dan perkara pertama ialah mengukur wayar untuk neopixel ke WEMOS. Saya memetiknya dan meletakkan sekeping kecil pengecutan panas dan kemudian menyoldernya seperti yang ditunjukkan sehingga ia akan rata di lensa.

Butang berada di sebelah dan akan sesuai dengan pangkalan. Satu bahagian butang menuju ke Gnd dan ini dipintal bersama dengan wayar Ground neopixel. Saya kemudian memasangkannya dan menyoldernya ke dalam pin tanah WEMOS.

Pimpin kuasa untuk Neopixel menuju ke Pv 5v. Kawat isyarat, atau Di (data dalam) neopixel disolder ke pin Wemos sebagai D1. Terdapat beberapa laman web yang mencadangkan memasukkan perintang 300-500 Ohm secara bersiri dengan ini, tetapi sehingga kini saya tidak mempunyai masalah jadi buat masa ini hanya hubungan langsung.

Untuk memastikan amalan yang baik, dan atas nasihat laman web seperti Adafruit, saya telah meletakkan perintang 330R bersiri dengan garis Di ke neopixel. Ini adalah untuk mengelakkan LED pertama di gelang melepaskan pixies ajaib dan hanya dilakukan dengan memotong wayar dan memasukkan perintang. Sebilangan kecil heatshrink akan menghentikan seluar pendek yang tidak bergerak. Anda boleh memotong perintang cukup pendek dan hanya meletakkan gelung di setiap hujungnya dan melakukan perkara yang sama dengan wayar.

Kawat lain untuk butang terus ke pin D2. Tidak perlu penahan tarik kerana ini ditangani dalam perisian dengan meletakkan perintah PULLUP terhadap pin itu.

Itu pada dasarnya semua ada padanya.

Langkah 10: 3D Cetakan

Terlampir di sini adalah fail STL yang kami gunakan untuk Giant LED. Failnya adalah remix / pengerjaan semula astro73 dan anda juga boleh mengambil semua fail dari https://www.thingiverse.com/thing:3290837 juga.

Untuk kaki dan pangkalan saya menggunakan filamen Sunlu PETG + yang berfungsi sangat baik pada Prusa i3 dan saya menggunakan 10 atau 20% pengisian gyroid.

Untuk LED itu sendiri saya telah menggunakan Sunlu PLA transparan dan menggunakan sekitar 10% isi dengan lapisan atas dan bawah sepusat.

Dengan setiap saya hanya menggunakan tetapan Prusa PET dan Prusa PLA di Slic3r dan semuanya berjaya dengan baik. Saya mendapat sedikit tali pada kaki, tetapi saya hanya melancarkan obor ke atas mereka dan tali itu hilang:)

Langkah 11: Pemasangan LED Gergasi

Pemasangan LED Gergasi
Pemasangan LED Gergasi
Pemasangan LED Gergasi
Pemasangan LED Gergasi
Pemasangan LED Gergasi
Pemasangan LED Gergasi

Semua kepingan dapat disatukan dengan mudah, anda harus memasukkan kacang M3 ke pangkal untuk membolehkan skru memegang benda itu bersama-sama. Anda juga perlu memasang NeoPixel ke WEMOS melalui kaki terlebih dahulu. Saya sedang mempertimbangkan untuk meletakkan beberapa penyambung, tetapi memutuskan bahawa ia tidak akan terpisah pada masa akan datang.

Lensa hanya ditekankan pada kaki dan pada gilirannya mereka disambungkan ke pangkal dengan bolt M3x20mm tunggal. Anda mungkin perlu mengacukan pisau di bahagian dalam lubang butang sehingga bergerak dengan baik dan bebas. Wemos dipegang di tempatnya dengan 2 bolt soket M2x8 yang disekat dari bawah.

Untuk menyelesaikannya, anda boleh melekatkan sekeping cetakan ke pangkal untuk menghentikan sebarang keretakan jika diperlukan.

Langkah 12: Arahan Penyediaan dan Pengendalian

Image
Image
Arahan Penyediaan dan Pengendalian
Arahan Penyediaan dan Pengendalian
Arahan Penyediaan dan Pengendalian
Arahan Penyediaan dan Pengendalian

Dengan semua yang sudah siap dan perisian yang dimuatkan memberi sedikit kuasa pada usb dan LED GIANT akan muncul dan LED akan menjadi MERAH dan kemudian berubah menjadi warna kuning. Ini menunjukkan ia berada di luar talian dan menunggu konfigurasi wifi. Menggunakan telefon atau rupa yang serupa untuk rangkaian wifi LED GIANT dan sambungkan dan anda akan mendapat skrin WiFi Manager. Ia akan mengimbas kawasan setempat anda dan anda hanya memasukkan butiran wifi anda, ESP akan dihidupkan semula dan anda kini akan berada dalam talian dengan lampu hijau. Ia juga akan dihubungkan pada titik ini ke IO dan lampu amaran akan menyala kerana belum ada mesej sebelumnya. Tekan butang beberapa kali dan LED GIANT kini siap untuk kemas kini tiba.

Anda boleh pergi ke papan pemuka Adafruit IO pada ketika ini dan menambahkan beberapa data pada setiap suapan dan melihat lampu masuk ke mod amaran.

Berseronok !

Langkah 13: Apa Yang Boleh Dilakukan oleh Giant LED

Apa Yang Boleh Dilakukan oleh Giant LED
Apa Yang Boleh Dilakukan oleh Giant LED
Apa Yang Boleh Dilakukan oleh Giant LED
Apa Yang Boleh Dilakukan oleh Giant LED

Setelah anda mempunyai asas-asas reka bentuk seperti ini dan dengan IFTTT, anda boleh menggunakannya untuk banyak perkara. Makluman peti masuk Gmail adalah satu yang mudah, dan kerana Adafruit juga berfungsi dengan Webhooks program lain dapat mengirim data kepadanya juga. Saya mempunyai satu yang sedang disediakan untuk mengikuti beberapa muat naik data Big Query sebagai sebahagian daripada projek kerja.

Dengan butang anda boleh menggunakannya untuk memberi isyarat LED GIANT lain juga, anda boleh memilikinya di rumah yang berbeza dan menggunakannya sebagai penunjuk jarak jauh untuk meminta pihak lain menekan butang untuk membatalkan lampu.

Berikut adalah pautan berguna pada kaedah webhook untuk menghantar data ke suapan. Dalam kes ini, ia menggunakan applet IFTTT tetapi anda juga boleh menggunakan kaedah CURL dengan python.

io.adafruit.com/blog/notebook/2018/11/26/f…

Bahkan mungkin memasangkan OLED 128x32 ke pangkalan untuk menambah LED dengan beberapa kandungan teks dan saya sedang berusaha untuk itu dan akan mengemas kini STL dan membekalkan kod untuk menggunakan IO juga.

Disyorkan: