Spisu treści:
- Krok 1: Części, narzędzia, materiały
- Krok 2: Schemat obwodu i kod
- Krok 3: Budowa obwodu od prototypu do lutowania
- Krok 4: Forma i materiał
- Krok 5: Teraz skorzystajmy z kryształowych domów
Wideo: Kryształowy dom: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:28
Pary i rodziny, które są rozdzielone z powodu dużej odległości, często odczuwają tęsknotę za związkiem. Crystal House jest zbudowany dla par i rodzin, aby łączyć się ze sobą za pomocą świateł. Crystal Houses są połączone z sygnałami Wi-Fi. Kiedy naciśniesz przycisk na jednym Kryształowym Domu, światła drugiego Kryształowego Domu otrzymają sygnał i zostaną włączone. To proste i przyjemne w wykonaniu! Przejdę krok po kroku od użytych materiałów/narzędzi, budowy/testowania obwodu za pomocą Arduino i budowy struktury Crystal House
Krok 1: Części, narzędzia, materiały
- Złożone Pióro Huzzah ESP8266 (dwa)
- Perma-Proto Połowa deski do krojenia chleba (dwie)
- Bateria litowa -3,7 1200 mAh (dwie)
- Mini włącznik/wyłącznik przyciskowy (cztery)
- Miniprzycisk NeoPixel (cztery)
- Drut do krojenia chleba
- Lutownica i lutownica
- Ściągacz izolacji
- Narzędzie trzeciej ręki
- Kwadratowy kij do drewna
- Arkusz akrylowy
- Wyczyść kryształowy kamień
- Przezroczysty papier
- Super klej
Krok 2: Schemat obwodu i kod
// Przykładowy kod klasy Internetu Rzeczy Instructables// Łączenie wejść i wyjść // Dwa przyciski wysyłają polecenia do kanału AIO // Dioda LED i silnik wibracyjny (lub dowolne wyjście cyfrowe) flah/buzz zgodnie z danymi kanału // // Zmodyfikowane przez Becky Stern 2017 // na podstawie przykładów z Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit inwestuje czas i zasoby dostarczając ten open source'owy kod. // Proszę wesprzyj Adafruit i sprzęt open source kupując // produkty od Adafruit! // // Autor Todd Treece dla Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Licencjonowane na licencji MIT. // // Cały powyższy tekst musi być uwzględniony w każdej redystrybucji. #włączać
-
#definiuj NeoPIN1 15
// Parametr 1 = liczba pikseli w pasku // Parametr 2 = numer pinu Arduino (większość jest prawidłowa) // Parametr 3 = flagi typu piksela, dodaj je w razie potrzeby: // Strumień bitów NEO_KHZ800 800 KHz (większość produktów NeoPixel z WS2812 diody LED) // NEO_KHZ400 400 KHz (klasyczne piksele 'v1' (nie v2) FLORA, sterowniki WS2811) // NEO_GRB Piksele są okablowane dla strumienia bitowego GRB (większość produktów NeoPixel) // Piksele NEO_RGB są okablowane dla strumienia bitowego RGB (piksele v1 FLORA, nie v2) // NEO_RGBW Piksele są podłączone do strumienia bitowego RGBW (produkty NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel(2, NeoPIN1, NEO_GRB + NEO_KHZ800);
/************************* Konfiguracja IO Adafruit ********************** **********
/ odwiedź io.adafruit.com, jeśli potrzebujesz utworzyć konto, // lub jeśli potrzebujesz klucza IO Adafruit. #define IO_USERNAME "Twoja nazwa użytkownika" #define IO_KEY "Twój IO_KEY"
/****************************** Konfiguracja WIFI *************** **********************/
#define WIFI_SSID "Twoje wifi" #define WIFI_PASS "Twoje hasło"
#include "AdafruitIO_WiFi.h" AdafruitIO_WiFi io(IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);
/************************* Kod główny zaczyna się tutaj ********************* **********/
#include #include #include #include
//#define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 //#define MOTOR_PIN 5 // ten pin wymaga funkcji PWM
// stan przycisku int button1current = 0; int ostatni przycisk = 0; int przycisk2prąd = 0; int przycisk2ostatni = 0;
// skonfiguruj kanał 'cyfrowy' AdafruitIO_Feed *command = io.feed("command"); AdafruitIO_Feed *polecenie2 = io.feed("polecenie2");
void setup() { strip.setBrightness(60); strip.początek(); strip.pokaż(); // Zainicjuj wszystkie piksele na 'off' // ustaw piny przycisków jako wejścia z wewnętrznym rezystorem podciągającym pinMode(BUTTON1_PIN, INPUT_PULLUP); pinMode(BUTTON2_PIN, INPUT_PULLUP); // ustaw pin led i pin silnika jako wyjścia cyfrowe // pinMode(MOTOR_PIN, OUTPUT); // pinMode(LED_PIN, WYJŚCIE);
// uruchom połączenie szeregowe Serial.begin(115200);
// połącz się z io.adafruit.com Serial.print("Łączenie z IO Adafruit"); io.connect(); // skonfiguruj obsługę wiadomości dla kanału „polecenie”. // funkcja handleMessage (zdefiniowana poniżej) // będzie wywoływana za każdym razem, // odebrana wiadomość z adafruit io. polecenie->onMessage(handleButton1); polecenie2->onMessage(handleButton2);
// czekaj na połączenie while(io.status() < AIO_CONNECTED) { Serial.print("."); opóźnienie (500); }
// jesteśmy połączeni Serial.println(); Serial.println(io.statusText());
// upewnij się, że wszystkie kanały od razu otrzymują swoje aktualne wartości command->get(); polecenie2->get(); }
pusta pętla () {
// io.run(); jest wymagany dla wszystkich szkiców. // powinien zawsze znajdować się na górze // funkcji pętli. utrzymuje klienta połączonego z // io.adafruit.com i przetwarza wszelkie przychodzące dane. io.uruchom();
// pobierz aktualny stan przycisku. // musimy odwrócić logikę, ponieważ używamy // 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; przycisk2prąd = 0; }
// powrót, jeśli wartość nie uległa zmianie if(button1current == button1last && button2current == button2last) return;
// zapisuje aktualny stan do kanału 'digital' na adafruit io Serial.print("wysyłanie statusu przycisku 1 -> "); Serial.println(button1current); polecenie->zapisz(przycisk1bieżący);
// zapisuje aktualny stan do 'cyfrowego' kanału na adafruit io Serial.print("wysyłanie statusu przycisku 2 -> "); Serial.println(button2current); polecenie2->zapisz(przycisk2bieżący);
// zapisz stan ostatniego przycisku button1last = button1current; button2last = button2current; }
// ta funkcja jest wywoływana za każdym razem, gdy odbierany jest // komunikat "polecenia" z Adafruit IO. został dołączony do // kanału poleceń w funkcji setup() powyżej. void handleButton1(AdafruitIO_Data *dane) {
int polecenie = dane->toInt();
if (polecenie == 1){ //podświetl pierwszy piksel Serial.print("otrzymany z polecenia (przycisk 1) <-"); Serial.println(polecenie); // analogWrite(MOTOR_PIN, 200); // opóźnienie(500); // analogWrite(MOTOR_PIN, 0); strip.setPixelColor(0, strip. Color(200, 100, 0)); // Żółty strip.show(); } else { Serial.print("otrzymane z polecenia (przycisk 1) <-"); Serial.println(polecenie); strip.setPixelColor(0, strip. Color(0, 0, 0)); // wyłącz strip.show(); } } // ta funkcja jest wywoływana za każdym razem, gdy odbierany jest komunikat "polecenia" // z Adafruit IO. został dołączony do // kanału poleceń w funkcji setup() powyżej. void handleButton2(AdafruitIO_Data *dane) {
int polecenie2 = dane->toInt();
if (polecenie2 == 1){ //podświetl pierwszy piksel Serial.print("otrzymane z polecenia2 (przycisk 2) <-"); Serial.println(polecenie2); // analogWrite(MOTOR_PIN, 200); // opóźnienie(500); // analogWrite(MOTOR_PIN, 0); strip.setPixelColor(1, strip. Color(255, 128, 128)); // Żółty strip.show(); } else { Serial.print("otrzymane z polecenia2 (przycisk 2) <-"); Serial.println(polecenie2); strip.setPixelColor(1, strip. Color(0, 0, 0)); // wyłącz strip.show(); } }
Krok 3: Budowa obwodu od prototypu do lutowania
Zachęcam do wypróbowania na płytce stykowej, aby przetestować obwód. Ponieważ budujemy dwa urządzenia, mogliśmy przetestować na dwóch płytkach stykowych. Przylutowałem Neopixel i przycisk on.off do przewodu prototypowego, ponieważ jest łatwiejszy w użyciu. Później możesz łatwo odlutować przewody prototypowe.
Po tym, jak odnieśliśmy sukces z obwodem prototypowania, nadszedł czas na zbudowanie naszego prawdziwego obwodu. Używam płytki prototypowej Perma-proto, ponieważ jest ona mniejsza, a połączenie obwodu będzie znacznie lepsze niż w obwodzie prototypowym. Jeśli chodzi o lutowanie, to wymaga dużo cierpliwości. Nie poddawaj się jeszcze! Docierasz tam!
Po zakończeniu obwodu i przesłaniu kodu do ESP8266 oba urządzenia powinny działać tak, jak wspomnieliśmy na początku.
Krok 4: Forma i materiał
Teraz zróbmy nasz Kryształowy Dom!
Pokrój drewniany kij na 6 cali. Potrzebujemy w sumie 18 sztuk. Ponieważ chcę trochę urozmaicenia tych dwóch kryształowych domów, użyłem 7 sztuk w jednym i 9 sztuk w drugim. Przyklej kawałki do struktury pudełka. Przyciąłem dwa arkusze akrylowe na 6 na 6 cali i przykleiłem je do spodu Crystal Houses.
Po zakończeniu budowy domów. Udekorujmy domy! Wyciąłem kawałek przezroczystego kolorowego papieru i przykleiłem je do arkusza akrylowego. Następnie użyłem przezroczystych plastikowych kryształków i przykleiłem je do podstawy. Ponieważ na dole kryształów mam przezroczysty kolorowy papier, kryształy odbijają się w różnych kolorach.
Krok 5: Teraz skorzystajmy z kryształowych domów
Podaruj swojej ukochanej kryształowy dom, który stworzyłeś. Powiedz im, że są ważni! Zawsze możesz modyfikować strukturę zewnętrzną, używając różnych materiałów i kolorów. Daj mi znać jak idzie!
Zalecana:
Inteligentny dom Raspberry Pi: 5 kroków (ze zdjęciami)
Smart Home od Raspberry Pi: Istnieje już kilka produktów, które czynią Twoje mieszkanie bardziej inteligentnym, ale większość z nich to rozwiązania autorskie. Ale dlaczego potrzebujesz połączenia z Internetem, aby włączyć światło za pomocą smartfona? To był jeden z powodów, dla których zbudowałem własnego Smara
Inteligentny kryształowy łańcuch świetlny: 9 kroków (ze zdjęciami)
Smart Crystal Light String: W miarę zbliżania się świąt Bożego Narodzenia i pełnego badania nad automatyką domową dla majsterkowiczów i inteligentnymi przedmiotami, postanowiłem w tym roku spróbować stworzyć elegancki, ładnie wyglądający łańcuch świetlny RGB. Zrobiłem wiele badań na temat rozwiązań dla majsterkowiczów w sieci, z jednej strony trochę pr
Zdalny inteligentny dom: 5 kroków
Zdalny inteligentny dom: Materialen: dunne gelamineerde hout plate. 1 x grondplaat met een średnica van 1 cmkleine nagels2 x breadbords plakbandveel kabels met średnica 0.3 cmveel kabel jumper gereedschap: boormachinelijmpistoolsoldeerboutschroevendra
Jak zrobić inteligentny dom za pomocą modułu przekaźnika sterującego Arduino - Pomysły na automatykę domową: 15 kroków (ze zdjęciami)
Jak zrobić inteligentny dom za pomocą modułu przekaźnika sterującego Arduino | Pomysły na automatykę domową: W tym projekcie automatyki domowej zaprojektujemy moduł przekaźnika inteligentnego domu, który może sterować 5 urządzeniami domowymi. Ten moduł przekaźnikowy może być sterowany z telefonu komórkowego lub smartfona, pilota na podczerwień lub pilota do telewizora, przełącznika ręcznego. Ten inteligentny przekaźnik może również wykrywać r
Inteligentny dom z Arduino: 11 kroków (ze zdjęciami)
Inteligentny dom z Arduino: Hello.Pokażę Ci jak zbudować własny inteligentny dom. Pokazuje temperaturę zarówno wewnątrz, jak i na zewnątrz, czy okno jest otwarte czy zamknięte, pokazuje, kiedy pada i alarmuje, gdy czujniki czujnika PIR się poruszają. Zrobiłem aplikację na Androida do