Mục lục:
- Bước 1: Bộ phận, Công cụ, Nguồn cung cấp
- Bước 2: Sơ đồ mạch và mã
- Bước 3: Xây dựng mạch từ nguyên mẫu đến được hàn
- Bước 4: Hình thức & Chất liệu
- Bước 5: Bây giờ hãy sử dụng những ngôi nhà pha lê
Video: Nhà pha lê: 5 bước
2024 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2024-01-30 13:31
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ã
// 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
-
#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
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
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ê
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:
Tự chế công cụ mở cửa nhà để xe thông minh + Tích hợp trợ lý nhà: 5 bước
Tự làm cửa mở nhà để xe thông minh + Tích hợp trợ lý nhà: Biến cửa nhà để xe thông thường của bạn trở nên thông minh bằng cách sử dụng dự án DIY này. Tôi sẽ chỉ cho bạn cách xây dựng và điều khiển nó bằng Home Assistant (qua MQTT) và có khả năng mở và đóng cửa nhà để xe của bạn từ xa. Tôi sẽ sử dụng bảng ESP8266 có tên Wemos
Máy pha cà phê thông minh - Một phần của Hệ sinh thái Nhà thông minh: 4 bước
Máy pha cà phê thông minh - Một phần của Hệ sinh thái SmartHome: Máy pha cà phê bị tấn công, biến nó thành một phần của Hệ sinh thái nhà thông minh Tôi sở hữu một Máy pha cà phê Delonghi cũ tốt (DCM) (không phải là một chương trình khuyến mãi và muốn nó “thông minh”. Vì vậy, tôi đã hack nó bằng cách cài đặt ESP8266) mô-đun có giao diện với bộ não / bộ vi điều khiển của nó sử dụng
Cách cài đặt HID [Bộ chuyển đổi đèn pha] Tự làm trên Xe tải đèn pha Ram Quad 2012: 10 bước
Cách cài đặt HID [Bộ chuyển đổi đèn pha] Tự làm trên Xe tải Ram Quad 2012: Xin chào mọi người! Cuối cùng tôi " đã có một " Hướng dẫn DIY đèn pha ô tô cho các bạn, lần này là bộ chuyển đổi HID về cách Cài đặt BFxenon HID trên xe tải Ram Quad Headlight 2012. Nó THỰC SỰ DỄ DÀNG =] Tôi hy vọng tất cả các bạn thích
Chậu rửa pha chế nước tự động do nhà sản xuất sử dụng Arduino: 4 bước
Chậu rửa pha chế nước tự động tại nhà do sử dụng Arduino: Mục đích của thiết kế này là phân phối nước từ vòi khi bạn duỗi tay để rửa trong chậu mà không làm bẩn vòi và lãng phí nước. Opensource Arduino - board Nano được sử dụng để thực hiện điều này
Hộp giải đố - Máy phá mã và Máy phá đất [UCM]: 7 bước (có Hình ảnh)
Puzzle Box - Codebreakers and Groundbreakers [UCM]: Một bộ hộp xếp hình cắt bằng laser được thiết kế cho một xưởng sản xuất kỹ thuật số tại Bảo tàng Fitzwilliam, Cambridge liên quan đến triển lãm Codebreakers và Groundbreakers của họ. Đối với hội thảo, nút trong hộp xếp hình được kết nối với MakeyMakey một