Isi kandungan:

Rumah Kristal: 5 Langkah
Rumah Kristal: 5 Langkah

Video: Rumah Kristal: 5 Langkah

Video: Rumah Kristal: 5 Langkah
Video: Crystal at Blok M - Satu-satunya rumah mewah 3,5 lantai mulai dari 700jt-an di Jaksel 2024, Julai
Anonim
Image
Image
Rumah Kristal
Rumah Kristal

Pasangan dan keluarga yang berpisah kerana jarak jauh sering merasakan kerinduan untuk berhubung. Crystal House dibina untuk pasangan dan keluarga berhubung antara satu sama lain melalui lampu. Rumah Kristal dihubungkan dengan isyarat wifi. Apabila anda menekan butang pada satu Crystal House, lampu Crystal House yang lain akan menerima isyarat dan akan dihidupkan. Ia senang dan senang dibuat! Saya akan melalui langkah demi langkah dari bahan / alat yang digunakan, membina / menguji litar menggunakan Arduino dan membina struktur Crystal House

Langkah 1: Bahagian, Alat, Bekalan

  • Bulu Berkumpul Huzzah ESP8266 (dua)
  • Papan roti bersaiz separuh Perma-Proto (dua)
  • Bateri Lithium -3.7 1200mAh (dua)
  • Suis Tekan-Butang Aktif / Mati Mini (empat)
  • Butang Mini NeoPixel (empat)
  • Kawat Papan Roti
  • Soldering Iron & Solder
  • Pelucut wayar
  • Alat Tangan Ketiga
  • Tongkat kayu persegi
  • Lembaran akrilik
  • Batu kristal jernih
  • Kertas lutsinar
  • Lem super

Langkah 2: Diagram dan Kod Litar

Rajah dan Kod Litar
Rajah dan Kod Litar

// Instructables Internet of Things Kelas kod sampel // Menggabungkan Input dan Output // Dua butang tekan menghantar arahan ke suapan AIO // LED dan motor bergetar (atau sebarang output digital) flah / buzz mengikut data suapan // // Diubah suai oleh Becky Stern 2017 // berdasarkan contoh dari Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // 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 Adafruit Industries // Berlesen di bawah lesen MIT. // // Semua teks di atas mesti disertakan dalam pengagihan semula. #sertakan

  1. #tentukan NeoPIN1 15

    // Parameter 1 = bilangan piksel dalam jalur // Parameter 2 = Nombor pin Arduino (kebanyakannya valid) // Parameter 3 = bendera jenis piksel, tambahkan bersama-sama jika diperlukan: // NEO_KHZ800 bitstream 800 KHz (kebanyakan produk NeoPixel w / WS2812 LED) // NEO_KHZ400 400 KHz (piksel FLORA klasik 'v1' (bukan v2), pemacu WS2811) // Piksel NEO_GRB adalah kabel untuk aliran bit GRB (kebanyakan produk NeoPixel) // Piksel NEO_RGB disambungkan untuk bitstream RGB (piksel vOR FLORA, bukan v2) // NEO_RGBW Pixel berwayar untuk bitstream RGBW (produk NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    / ************************ Adafruit IO Configuration ********************** *********

    / lawati io.adafruit.com jika anda perlu membuat akaun, // atau jika anda memerlukan kunci Adafruit IO anda. #define IO_USERNAME "Nama pengguna anda" #define IO_KEY "IO_KEY Anda"

    / ******************************* Konfigurasi WIFI **************** ********************** /

    #define WIFI_SSID "Wifi anda" #define WIFI_PASS "Kata laluan anda"

    #include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

    / ************************ Kod Utama Bermula Di Sini ********************* ********** /

    #sertakan #sertakan #sertakan #sertakan

    // # define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // # tentukan MOTOR_PIN 5 // pin ini memerlukan keupayaan PWM

    // butang status int butang1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // sediakan suapan 'digital' AdafruitIO_Feed * command = io.feed ("command"); AdafruitIO_Feed * command2 = io.feed ("command2");

    batal persediaan () {strip.setBrightness (60); jalur.begin (); strip.show (); // Memulakan semua piksel ke 'off' // tetapkan pin butang sebagai input dengan pinMode resistor pull-up dalaman (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // tetapkan pin led dan pin motor sebagai output digital // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // mulakan sambungan bersiri Serial.begin (115200);

    // sambung ke io.adafruit.com Serial.print ("Menyambung ke Adafruit IO"); io.connect (); // sediakan pengendali mesej untuk suapan 'perintah'. // fungsi handleMessage (ditakrifkan di bawah) // akan dipanggil setiap kali mesej // diterima dari adafruit io. arahan-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // tunggu sambungan sementara (io.status () <AIO_CONNECTED) {Serial.print ("."); kelewatan (500); }

    // kami dihubungkan Serial.println (); Serial.println (io.statusText ());

    // pastikan semua suapan mendapat nilai semasa dengan segera perintah-> get (); perintah2-> get (); }

    gelung kosong () {

    // io.run (); diperlukan untuk semua lakaran. // semestinya selalu ada di bahagian atas fungsi // loop anda. ia memastikan klien tetap terhubung ke // io.adafruit.com, dan memproses data yang masuk. io.run ();

    // ambil keadaan butang semasa. // kita harus membalikkan logiknya kerana kita // menggunakan INPUT_PULLUP. if (digitalRead (BUTTON1_PIN) == RENDAH) {button1current = 1; } if (digitalRead (BUTTON2_PIN) == RENDAH) {button2current = 1; } if (digitalRead (BUTTON2_PIN) == TINGGI && digitalRead (BUTTON1_PIN) == TINGGI) {button1current = 0; button2current = 0; }

    // kembali jika nilainya tidak berubah jika (button1current == button1last && button2current == button2last) kembali;

    // simpan keadaan semasa ke suapan 'digital' pada adafruit io Serial.print ("status butang kirim 1 ->"); Serial.println (button1current); perintah-> simpan (button1current);

    // simpan keadaan semasa ke suapan 'digital' pada adafruit io Serial.print ("status butang kirim 2 ->"); Serial.println (button2current); command2-> save (button2current);

    // simpan butang keadaan terakhir butang1last = butang1 semasa; button2last = button2current; }

    // fungsi ini dipanggil setiap kali mesej 'arahan' // diterima dari Adafruit IO. ia dilampirkan ke // feed perintah dalam fungsi setup () di atas. void handleButton1 (AdafruitIO_Data * data) {

    int perintah = data-> toInt ();

    if (command == 1) {// menyalakan piksel pertama Serial.print ("diterima dari perintah (butang 1) <-"); Serial.println (arahan); // analogWrite (MOTOR_PIN, 200); // kelewatan (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Jalur kuning.show (); } lain {Serial.print ("diterima dari arahan (butang 1) <-"); Serial.println (arahan); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // fungsi ini dipanggil setiap kali mesej 'arahan' // diterima dari Adafruit IO. ia dilampirkan ke // feed perintah dalam fungsi setup () di atas. void handleButton2 (data AdafruitIO_Data *) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// menyalakan piksel pertama Serial.print ("diterima dari command2 (butang 2) <-"); Serial.println (arahan2); // analogWrite (MOTOR_PIN, 200); // kelewatan (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Jalur kuning.show (); } lain {Serial.print ("diterima dari command2 (butang 2) <-"); Serial.println (arahan2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Langkah 3: Pembinaan Litar Dari Prototaip ke Soldered

Pembinaan Litar Dari Prototaip ke Soldered
Pembinaan Litar Dari Prototaip ke Soldered
Pembinaan Litar Dari Prototaip ke Soldered
Pembinaan Litar Dari Prototaip ke Soldered

Saya mendorong anda untuk mencuba papan roti untuk menguji litar. Oleh kerana kami membina dua peranti, kami dapat menguji pada dua papan roti. Saya menyolder butang Neopixel dan on.off ke wayar prototaip kerana lebih mudah digunakan. Kemudian, anda boleh mematikan wayar prototaip dengan mudah.

Selepas kita berjaya dengan prototaip litar, inilah masanya untuk membina litar sebenar kita. Saya menggunakan papan roti Perma-proto kerana lebih kecil dan sambungan litar akan jauh lebih baik daripada litar prototaip. Untuk solder, ia memerlukan banyak pesakit. Jangan berputus asa! Anda sampai di sana!

Setelah anda menyelesaikan litar anda dan memuat naik kod ke dalam ESP8266 anda, kedua-dua peranti akan berfungsi seperti yang telah kami sebutkan pada awalnya.

Langkah 4: Bentuk & Bahan

Bentuk & Bahan
Bentuk & Bahan
Bentuk & Bahan
Bentuk & Bahan
Bentuk & Bahan
Bentuk & Bahan
Bentuk & Bahan
Bentuk & Bahan

Sekarang jadikan Rumah Kristal kami!

Potong batang kayu menjadi 6 inci. Kami memerlukan 18 keping keseluruhan. Oleh kerana saya mahukan beberapa variasi dari dua rumah kristal ini, saya menggunakan 7 keping dalam satu dan 9 keping yang lain. Lekatkan kepingan ke struktur kotak. Saya memotong dua kepingan akrilik menjadi 6 x 6 inci dan menempelkannya ke bahagian bawah Rumah Kristal.

Sebaik sahaja anda menyelesaikan struktur rumah. Mari menghias rumah! Saya memotong sehelai kertas berwarna lutsinar dan menempelkannya ke kepingan akrilik. Selepas itu, saya menggunakan beberapa kristal plastik jernih dan menempelkannya ke pangkal. Oleh kerana saya mempunyai kertas berwarna lutsinar di bahagian bawah kristal, kristal dipantulkan ke warna yang berbeza.

Langkah 5: Sekarang Mari Menggunakan Rumah Kristal

Sekarang Mari Menggunakan Rumah Kristal
Sekarang Mari Menggunakan Rumah Kristal
Sekarang Mari Menggunakan Rumah Kristal
Sekarang Mari Menggunakan Rumah Kristal

Kurniakan rumah kristal yang anda buat yang anda sayangi. Beritahu mereka bahawa mereka penting! Anda sentiasa boleh mengubah struktur luar menggunakan bahan dan warna yang berbeza. Beritahu saya bagaimana keadaannya!

Disyorkan: