Mục lục:

Nhà pha lê: 5 bước
Nhà pha lê: 5 bước

Video: Nhà pha lê: 5 bước

Video: Nhà pha lê: 5 bước
Video: 4 bước làm trụ hoa pha lê tại nhà 2024, Tháng bảy
Anonim
Image
Image
Nhà pha lê
Nhà pha lê

Các cặp vợ chồng và gia đình bị chia cắt do khoảng cách xa thường cảm thấy khao khát được kết nối. Crystal House được xây dựng để các cặp vợ chồng và gia đình kết nối với nhau thông qua ánh sáng. Crystal Houses được kết nối bằng tín hiệu wifi. Khi bạn nhấn nút trên một Ngôi nhà Pha lê, các đèn của Ngôi nhà Pha lê khác sẽ nhận được tín hiệu và sẽ được bật. Nó rất dễ dàng và thú vị để thực hiện! Tôi sẽ đi từng bước từ vật liệu / công cụ được sử dụng, xây dựng / thử nghiệm mạch sử dụng Arduino và xây dựng cấu trúc của Ngôi nhà pha lê

Bước 1: Bộ phận, Công cụ, Nguồn cung cấp

  • Lắp ráp Feather Huzzah ESP8266 (hai)
  • Perma-Proto Half-size breadboard (hai)
  • Pin Lithium -3,7 1200mAh (hai)
  • Công tắc Nút bấm Bật / Tắt Mini (bốn)
  • Nút Mini NeoPixel (bốn)
  • Dây bảng mạch
  • Hàn sắt & hàn
  • Thợ thoát y dây
  • Dụng cụ tay thứ ba
  • Thanh gỗ vuông
  • Tấm acrylic
  • Đá pha lê trong suốt
  • Giấy trong suốt
  • keo siêu dính

Bước 2: Sơ đồ mạch và mã

Sơ đồ mạch và mã
Sơ đồ mạch và mã

// Mã mẫu của lớp Internet of Things được hướng dẫn // Kết hợp đầu vào và đầu ra // Hai nút nhấn gửi lệnh đến nguồn cấp dữ liệu AIO // Đèn LED và động cơ rung (hoặc bất kỳ đầu ra kỹ thuật số nào) flah / buzz theo dữ liệu nguồn cấp dữ liệu // // Được sửa đổi bởi Becky Stern 2017 // dựa trên các ví dụ từ Thư viện Adafruit IO Arduino: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit đầu tư thời gian và tài nguyên để cung cấp mã nguồn mở này. // Vui lòng hỗ trợ Adafruit và phần cứng mã nguồn mở bằng cách mua // các sản phẩm từ Adafruit! // // Được viết bởi Todd Treece cho Adafruit Industries // Bản quyền (c) 2016 Adafruit Industries // Được cấp phép theo giấy phép MIT. // // Tất cả văn bản ở trên phải được đưa vào bất kỳ phân phối lại nào. #bao gồm

  1. #define NeoPIN1 15

    // Tham số 1 = số pixel trong dải // Tham số 2 = số chân Arduino (hầu hết đều hợp lệ) // Tham số 3 = cờ loại pixel, thêm lại với nhau nếu cần: // Dòng bit NEO_KHZ800 800 KHz (hầu hết các sản phẩm NeoPixel w / WS2812 Đèn LED) // NEO_KHZ400 400 KHz (pixel 'v1' (không phải v2) FLORA cổ điển, trình điều khiển WS2811) // Điểm ảnh NEO_GRB có dây cho dòng bit GRB (hầu hết các sản phẩm NeoPixel) // Điểm ảnh NEO_RGB được nối dây cho dòng bit RGB (điểm ảnh FLORA v1, không phải v2) // Điểm ảnh NEO_RGBW được nối dây cho dòng bit RGBW (sản phẩm NeoPixel RGBW) dải Adafruit_NeoPixel = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    / ************************ Cấu hình IO Adafruit ********************** *********

    / hãy truy cập io.adafruit.com nếu bạn cần tạo tài khoản, // hoặc nếu bạn cần khóa IO Adafruit của mình. # xác định IO_USERNAME "Tên người dùng của bạn" # xác định IO_KEY "IO_KEY của bạn"

    / ******************************* Cấu hình WIFI **************** ********************** /

    # xác định WIFI_SSID "Wi-Fi của bạn" # xác định WIFI_PASS "Mật khẩu của bạn"

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

    / ************************ Mã chính bắt đầu tại đây ********************* ********** /

    #include #include #include #include

    // # xác định LED_PIN 15 # xác định BUTTON1_PIN 4 # xác định BUTTON2_PIN 14 // # xác định MOTOR_PIN 5 // chân này cần khả năng PWM

    // trạng thái nút int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // thiết lập nguồn cấp dữ liệu 'kỹ thuật số' AdafruitIO_Feed * command = io.feed ("command"); AdafruitIO_Feed * command2 = io.feed ("command2");

    void setup () {strip.setBrightness (60); dải.begin (); dải.show (); // Khởi tạo tất cả các pixel thành 'off' // thiết lập các chân nút làm đầu vào với pinMode điện trở kéo lên bên trong (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // đặt chân led và chân động cơ làm đầu ra kỹ thuật số // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // bắt đầu kết nối nối tiếp Serial.begin (115200);

    // kết nối với io.adafruit.com Serial.print ("Đang kết nối với IO Adafruit"); io.connect (); // thiết lập trình xử lý thông báo cho nguồn cấp dữ liệu 'lệnh'. // hàm handleMessage (được định nghĩa bên dưới) // sẽ được gọi bất cứ khi nào // nhận được thông báo từ adafruit io. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // đợi kết nối while (io.status () <AIO_CONNECTED) {Serial.print ("."); chậm trễ (500); }

    // chúng ta được kết nối Serial.println (); Serial.println (io.statusText ());

    // đảm bảo tất cả các nguồn cấp dữ liệu nhận được giá trị hiện tại của chúng ngay lập tức command-> get (); command2-> get (); }

    void loop () {

    // io.run (); là bắt buộc đối với tất cả các bản phác thảo. // nó phải luôn ở trên cùng của hàm // vòng lặp của bạn. nó giữ cho máy khách kết nối với // io.adafruit.com và xử lý mọi dữ liệu đến. io.run ();

    // lấy trạng thái hiện tại của nút. // chúng ta phải lật logic vì // chúng ta đang sử dụng INPUT_PULLUP. if (digitalRead (BUTTON1_PIN) == LOW) {button1current = 1; } if (digitalRead (BUTTON2_PIN) == LOW) {button2current = 1; } if (digitalRead (BUTTON2_PIN) == HIGH && digitalRead (BUTTON1_PIN) == HIGH) {button1current = 0; button2current = 0; }

    // return nếu giá trị không thay đổi if (button1current == button1last && button2current == button2last) return;

    // lưu trạng thái hiện tại vào nguồn cấp dữ liệu 'kỹ thuật số' trên adafruit io Serial.print ("trạng thái nút gửi 1 ->"); Serial.println (button1current); command-> save (button1current);

    // lưu trạng thái hiện tại vào nguồn cấp dữ liệu 'kỹ thuật số' trên adafruit io Serial.print ("trạng thái nút gửi 2 ->"); Serial.println (button2current); command2-> save (button2current);

    // lưu trữ trạng thái nút cuối cùng button1last = button1current; button2last = button2current; }

    // hàm này được gọi bất cứ khi nào nhận được thông báo 'lệnh' // từ Adafruit IO. nó được gắn vào // nguồn cấp lệnh trong hàm setup () ở trên. void handleButton1 (AdafruitIO_Data * data) {

    lệnh int = data-> toInt ();

    if (command == 1) {// làm sáng pixel đầu tiên Serial.print ("nhận được từ lệnh (nút 1) <-"); Serial.println (lệnh); // analogWrite (MOTOR_PIN, 200); // delay (500); // analogWrite (MOTOR_PIN, 0); dải.setPixelColor (0, dải. Color (200, 100, 0)); // Màu vàng dải.show (); } else {Serial.print ("nhận được từ lệnh (nút 1) <-"); Serial.println (lệnh); dải.setPixelColor (0, dải. Color (0, 0, 0)); // tắt dải.show (); }} // hàm này được gọi bất cứ khi nào nhận được thông báo 'lệnh' // từ Adafruit IO. nó được gắn vào // nguồn cấp lệnh trong hàm setup () ở trên. void handleButton2 (AdafruitIO_Data * data) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// làm sáng pixel đầu tiên Serial.print ("nhận được từ command2 (button 2) <-"); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // delay (500); // analogWrite (MOTOR_PIN, 0); dải.setPixelColor (1, dải. Color (255, 128, 128)); // Màu vàng dải.show (); } else {Serial.print ("nhận được từ command2 (nút 2) <-"); Serial.println (command2); dải.setPixelColor (1, dải. Color (0, 0, 0)); // tắt dải.show (); }}

Bước 3: Xây dựng mạch từ nguyên mẫu đến được hàn

Xây dựng mạch từ nguyên mẫu đến được hàn
Xây dựng mạch từ nguyên mẫu đến được hàn
Xây dựng mạch từ nguyên mẫu đến được hàn
Xây dựng mạch từ nguyên mẫu đến được hàn

Tôi khuyến khích bạn thử trên breadboard để kiểm tra mạch. Vì chúng tôi đang xây dựng hai thiết bị, chúng tôi có thể thử nghiệm trên hai breadboard. Tôi đã hàn Neopixel và nút on.off vào một dây tạo mẫu vì nó dễ sử dụng hơn. Sau đó, bạn có thể dễ dàng hàn các dây tạo mẫu.

Sau khi chúng tôi thành công với mạch tạo mẫu, đã đến lúc xây dựng mạch thực của chúng tôi. Tôi đang sử dụng breadboard Perma-proto vì nó nhỏ hơn và kết nối của mạch sẽ tốt hơn nhiều so với mạch tạo mẫu. Khi nói đến hàn, nó đòi hỏi rất nhiều kiên nhẫn. Đừng bỏ cuộc! Bạn đang đạt được điều đó!

Sau khi bạn hoàn thành mạch của mình và tải mã lên ESP8266 của mình, hai thiết bị sẽ hoạt động như chúng tôi đã đề cập ở phần đầu.

Bước 4: Hình thức & Chất liệu

Hình thức & Chất liệu
Hình thức & Chất liệu
Hình thức & Chất liệu
Hình thức & Chất liệu
Hình thức & Chất liệu
Hình thức & Chất liệu
Hình thức & Chất liệu
Hình thức & Chất liệu

Bây giờ chúng ta hãy làm cho ngôi nhà pha lê của chúng tôi!

Cắt thanh gỗ thành 6 inch. Chúng tôi cần tổng cộng 18 mảnh. Vì tôi muốn có một số biến thể từ hai ngôi nhà pha lê này, tôi đã sử dụng 7 mảnh trong một và 9 mảnh trong ngôi còn lại. Dán các mảnh vào một cấu trúc hộp. Tôi cắt hai tấm acrylic thành 6 x 6 inch và dán chúng vào đáy của những Ngôi nhà Pha lê.

Sau khi bạn hoàn thành cấu trúc của những ngôi nhà. Cùng trang trí các ngôi nhà nhé! Tôi cắt một mảnh giấy màu trong suốt và dán chúng lên tấm acrylic. Sau đó, tôi sử dụng một số tinh thể nhựa trong và dán chúng lên đế. Vì tôi có một tờ giấy màu trong suốt ở dưới cùng của các tinh thể, các tinh thể được phản chiếu với các màu sắc khác nhau.

Bước 5: Bây giờ hãy sử dụng những ngôi nhà pha lê

Bây giờ chúng ta hãy sử dụng những ngôi nhà pha lê
Bây giờ chúng ta hãy sử dụng những ngôi nhà pha lê
Bây giờ chúng ta hãy sử dụng những ngôi nhà pha lê
Bây giờ chúng ta hãy sử dụng những ngôi nhà pha lê

Hãy tặng người yêu của bạn ngôi nhà pha lê mà bạn đã làm. Nói với họ rằng họ quan trọng! Bạn luôn có thể sửa đổi cấu trúc bên ngoài bằng các vật liệu và màu sắc khác nhau. Cho tôi biết làm thế nào nó đi!

Đề xuất: