Daftar Isi:

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, Juli
Anonim
Image
Image
Rumah Kristal
Rumah Kristal

Pasangan dan keluarga yang terpisah karena jarak yang jauh seringkali merasakan kerinduan akan koneksi. Crystal House dibangun untuk pasangan dan keluarga untuk terhubung satu sama lain melalui lampu. Rumah Kristal terhubung dengan sinyal wifi. Saat Anda menekan tombol di salah satu Rumah Kristal, lampu Rumah Kristal lainnya menerima sinyal dan akan menyala. Sangat mudah dan menyenangkan untuk dibuat! Saya akan melalui langkah demi langkah dari bahan/alat yang digunakan, membangun/menguji rangkaian menggunakan Arduino dan membangun struktur Crystal House

Langkah 1: Suku Cadang, Alat, Perlengkapan

  • Bulu Rakitan Huzzah ESP8266 (dua)
  • Perma-Proto Papan tempat memotong roti setengah ukuran (dua)
  • Baterai Lithium -3.7 1200mAh (dua)
  • Sakelar Tombol Tekan Nyala/Mati Mini (empat)
  • Tombol Mini NeoPixel (empat)
  • Kawat papan tempat memotong roti
  • Besi Solder & Solder
  • penari telanjang kawat
  • Alat Tangan Ketiga
  • Tongkat kayu persegi
  • lembaran akrilik
  • Batu kristal bening
  • Kertas transparan
  • lem super

Langkah 2: Diagram Sirkuit dan Kode

Diagram Sirkuit dan Kode
Diagram Sirkuit dan Kode

// Kode sampel Kelas Internet of Things yang dapat diinstruksikan // Menggabungkan Input dan Output // Dua tombol mengirim perintah ke feed AIO // LED dan motor bergetar (atau output digital apa pun) flah/buzz sesuai dengan data feed // // Dimodifikasi oleh Becky Stern 2017 // berdasarkan contoh dari Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit menginvestasikan waktu dan sumber daya untuk menyediakan kode sumber terbuka ini. // Tolong dukung Adafruit dan perangkat keras open source dengan membeli // produk dari Adafruit! // // Ditulis oleh Todd Treece untuk Adafruit Industries // Hak Cipta (c) 2016 Adafruit Industries // Dilisensikan di bawah lisensi MIT. // // Semua teks di atas harus disertakan dalam redistribusi apa pun. #termasuk

  1. #definisikan NeoPIN1 15

    // Parameter 1 = jumlah piksel dalam strip // Parameter 2 = Nomor pin Arduino (sebagian besar valid) // Parameter 3 = flag tipe piksel, tambahkan sesuai kebutuhan: // NEO_KHZ800 800 KHz bitstream (sebagian besar produk NeoPixel w/WS2812 LED) // NEO_KHZ400 400 KHz (piksel FLORA klasik 'v1' (bukan v2), driver WS2811) // NEO_GRB Piksel disambungkan untuk bitstream GRB (sebagian besar produk NeoPixel) // Piksel NEO_RGB disambungkan untuk bitstream RGB (piksel FLORA v1, not v2) // NEO_RGBW Piksel disambungkan untuk bitstream RGBW (produk NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel(2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Konfigurasi Adafruit IO ********************** *********

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

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

    #define WIFI_SSID "Wifi Anda" #define WIFI_PASS "Kata sandi Anda"

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

    /*************************** Kode Utama Dimulai Disini ********************* **********/

    #sertakan #sertakan #sertakan #sertakan

    //#define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 //#define MOTOR_PIN 5 // pin ini membutuhkan kemampuan PWM

    // status tombol int button1current = 0; int tombol1terakhir = 0; int tombol2saat ini = 0; int tombol2terakhir = 0;

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

    void setup() { strip.setBrightness(60); strip.mulai(); strip.tampilkan(); // Inisialisasi semua piksel ke 'off' // setel pin tombol sebagai input dengan pinMode resistor pull-up internal(BUTTON1_PIN, INPUT_PULLUP); pinMode(BUTTON2_PIN, INPUT_PULLUP); // atur pin led dan pin motor sebagai output digital // pinMode(MOTOR_PIN, OUTPUT); // mode pin(LED_PIN, OUTPUT);

    // memulai koneksi serial Serial.begin(115200);

    // sambungkan ke io.adafruit.com Serial.print("Menghubungkan ke Adafruit IO"); io.koneksi(); // siapkan pengendali pesan untuk umpan 'perintah'. // fungsi handleMessage (didefinisikan di bawah) // akan dipanggil setiap kali sebuah pesan diterima // dari adafruit io. perintah->onMessage(handleButton1); command2->onMessage(handleButton2);

    // tunggu koneksi while(io.status() < AIO_CONNECTED) { Serial.print("."); penundaan (500); }

    // kita terhubung Serial.println(); Serial.println(io.statusText());

    // pastikan semua feed mendapatkan nilai saat ini segera command->get(); perintah2->dapatkan(); }

    lingkaran kosong() {

    // io.run(); diperlukan untuk semua sketsa. // itu harus selalu ada di bagian atas fungsi loop // Anda. itu membuat klien tetap terhubung ke // io.adafruit.com, dan memproses semua data yang masuk. io.run();

    // ambil status tombol saat ini. // kita harus membalik logikanya karena 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) == HIGH){ button1current = 0; tombol2saat ini = 0; }

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

    // simpan status saat ini ke feed 'digital' di adafruit io Serial.print("status tombol kirim 1 -> "); Serial.println(tombol1saat ini); perintah->simpan(button1current);

    // simpan status saat ini ke feed 'digital' di adafruit io Serial.print("status tombol pengiriman 2 -> "); Serial.println(button2current); command2->save(button2current);

    // simpan status tombol terakhir button1last = button1current; button2last = button2current; }

    // fungsi ini dipanggil setiap kali pesan 'perintah' // diterima dari Adafruit IO. itu dilampirkan ke // umpan perintah dalam fungsi setup() di atas. void handleButton1(AdafruitIO_Data *data) {

    perintah int = data->toInt();

    if (perintah == 1){ //menyalakan piksel pertama Serial.print("diterima dari perintah (tombol 1) <- "); Serial.println(perintah); // analogWrite(MOTOR_PIN, 200); // tunda(500); // analogWrite(MOTOR_PIN, 0); strip.setPixelColor(0, strip. Color(200, 100, 0)); // strip kuning.show(); } else { Serial.print("diterima dari perintah (tombol 1) <- "); Serial.println(perintah); strip.setPixelColor(0, strip. Color(0, 0, 0)); // off strip.show(); } } // fungsi ini dipanggil setiap kali pesan 'perintah' // diterima dari Adafruit IO. itu dilampirkan ke // umpan perintah dalam fungsi setup() di atas. void handleButton2(AdafruitIO_Data *data) {

    int command2 = data->toInt();

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

Langkah 3: Konstruksi Sirkuit Dari Prototipe ke Disolder

Konstruksi Sirkuit Dari Prototipe ke Disolder
Konstruksi Sirkuit Dari Prototipe ke Disolder
Konstruksi Sirkuit Dari Prototipe ke Disolder
Konstruksi Sirkuit Dari Prototipe ke Disolder

Saya akan mendorong Anda untuk mencoba papan tempat memotong roti untuk menguji sirkuit. Karena kami sedang membangun dua perangkat, kami dapat menguji pada dua papan tempat memotong roti. Saya menyolder Neopixel dan tombol on.off ke kabel prototyping karena lebih mudah digunakan. Kemudian, Anda dapat dengan mudah menyolder kabel prototyping.

Setelah kita berhasil dengan rangkaian prototyping, sekarang saatnya untuk membangun rangkaian kita yang sebenarnya. Saya menggunakan papan tempat memotong roti Perma-proto karena lebih kecil dan koneksi sirkuit akan jauh lebih baik daripada sirkuit prototyping. Saat menyolder, itu membutuhkan banyak kesabaran. Jangan menyerah dulu! Anda sedang menuju ke sana!

Setelah Anda menyelesaikan sirkuit dan mengunggah kode ke ESP8266 Anda, kedua perangkat akan berfungsi seperti yang kami sebutkan di awal.

Langkah 4: Bentuk & Bahan

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

Sekarang mari kita buat Rumah Kristal kita!

Potong tongkat kayu menjadi 6 inci. Kami membutuhkan total 18 buah. Karena saya ingin beberapa variasi dari dua rumah kristal ini, saya menggunakan 7 buah di satu dan 9 buah di yang lain. Rekatkan potongan-potongan itu ke dalam struktur kotak. Saya memotong dua lembar akrilik menjadi 6 kali 6 inci dan menempelkannya ke bagian bawah Rumah Kristal.

Setelah Anda menyelesaikan struktur rumah. Mari kita mendekorasi rumah! Saya memotong selembar kertas berwarna transparan dan menempelkannya ke lembaran akrilik. Setelah itu, saya menggunakan beberapa kristal plastik bening dan menempelkannya ke alasnya. Karena saya memiliki kertas berwarna transparan di bagian bawah kristal, kristal dipantulkan ke warna yang berbeda.

Langkah 5: Sekarang Mari Gunakan Rumah Kristal

Sekarang Mari Gunakan Rumah Kristal
Sekarang Mari Gunakan Rumah Kristal
Sekarang Mari Gunakan Rumah Kristal
Sekarang Mari Gunakan Rumah Kristal

Berikan kekasih Anda rumah kristal yang Anda buat. Katakan pada mereka bahwa mereka penting! Anda selalu dapat memodifikasi struktur luar menggunakan bahan dan warna yang berbeda. Beri tahu saya bagaimana kelanjutannya!

Direkomendasikan: