Obsah:

Kryštálový dom: 5 krokov
Kryštálový dom: 5 krokov

Video: Kryštálový dom: 5 krokov

Video: Kryštálový dom: 5 krokov
Video: Отель Купидон - все серии. Мелодрама (2019) 2024, Júl
Anonim
Image
Image
Kryštálový dom
Kryštálový dom

Páry a rodiny, ktoré sú kvôli veľkej vzdialenosti odlúčené, často pociťujú túžbu po spojení. Crystal House je postavený pre páry a rodiny, aby sa navzájom spájali prostredníctvom svetiel. Kryštálové domy sú prepojené wifi signálmi. Keď stlačíte tlačidlo na jednom kryštálovom dome, ostatné svetlá kryštálového domu prijmú signál a zapnú sa. Je to ľahké a zábavné! Budem krok za krokom prechádzať od použitých materiálov/nástrojov, budovania/testovania obvodu pomocou Arduina a budovania štruktúry Crystal House

Krok 1: Diely, nástroje, spotrebný materiál

  • Zostavené perie Huzzah ESP8266 (dve)
  • Perma-Proto polovičný pekáč (dva)
  • Lítiová batéria -3,7 1200 mAh (dve)
  • Mini zapínač/vypínač (štyri)
  • Mini tlačidlo NeoPixel (štyri)
  • Kruhový drôt
  • Spájkovačka a spájkovačka
  • Odstraňovač drôtov
  • Nástroj z tretej ruky
  • Štvorcová drevená palica
  • Akrylový list
  • Čistý krištáľový kameň
  • Priehľadný papier
  • super lepidlo

Krok 2: Schéma zapojenia a kód

Schéma zapojenia a kód
Schéma zapojenia a kód

// Instructables Internet of Things Vzorový kód triedy // Kombinácia vstupov a výstupov // Dve tlačidlá odosielajú príkazy do kanála AIO // LED a vibračný motor (alebo akýkoľvek digitálny výstup) flah/buzz podľa údajov kanála // // Upravila Becky Stern 2017 // na základe príkladov z knižnice Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit investuje čas a zdroje tým, že poskytuje tento otvorený zdrojový kód. // Podporte prosím Adafruit a hardvér s otvoreným zdrojovým kódom nákupom // produktov od Adafruit! // // Napísal Todd Treece pre Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Licencované pod licenciou MIT. // // Všetky texty uvedené vyššie musia byť zahrnuté v akejkoľvek redistribúcii. #zahrnúť

  1. #define NeoPIN1 15

    // Parameter 1 = počet pixelov v páse // Parameter 2 = Počet pinov Arduino (väčšina je platná) // Parameter 3 = vlajky typu pixelov, sčítajte podľa potreby: // NEO_KHZ800 800 KHz bitstream (väčšina produktov NeoPixel s WS2812 LED diódy) // NEO_KHZ400 400 KHz (klasický „v1“(nie v2) pixely FLORA, ovládače WS2811) // Pixely NEO_GRB sú zapojené pre bitový tok GRB (väčšina produktov NeoPixel) // Pixely NEO_RGB sú zapojené pre bitový tok RGB (pixely v1 FLORA, nie v2) // NEO_RGBW Pixely sú zapojené pre bitový tok RGBW (produkty NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Konfigurácia Adafruit IO ********************* *********

    / navštívte io.adafruit.com, ak si potrebujete vytvoriť účet, // alebo ak potrebujete kľúč AdOruit IO. #define IO_USERNAME "Vaše používateľské meno" #define IO_KEY "Vaše IO_KEY"

    /******************************************************************************* *********************/

    #define WIFI_SSID „Vaša wifi“#define WIFI_PASS „Vaše heslo“

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

    /************************* Hlavný kód začína tu ******************** **********/

    #include #include #include #include

    // #define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // #define MOTOR_PIN 5 // tento pin potrebuje PWM

    // stav tlačidla int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // nastavenie 'digitálneho' kanála AdafruitIO_Feed *command = io.feed ("príkaz"); AdafruitIO_Feed *command2 = io.feed ("command2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicializácia všetkých pixelov na 'vypnuté' // nastavenie kolíkov tlačidiel ako vstupov s vnútorným zdvíhacím odporom pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // nastavenie led kolíka a kolíka motora ako digitálnych výstupov // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, VÝSTUP);

    // spustenie sériového pripojenia Serial.begin (115200);

    // pripojenie na io.adafruit.com Serial.print („Pripojenie k Adafruit IO“); io.connect (); // nastavenie obsluhy správ pre informačný kanál 'príkaz'. // funkcia handleMessage (definovaná nižšie) // sa bude volať vždy, keď bude // prijatá správa z adafruit io. príkaz-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // čakať na spojenie while (io.status () <AIO_CONNECTED) {Serial.print ("."); oneskorenie (500); }

    // sme pripojení Serial.println (); Serial.println (io.statusText ());

    // uistite sa, že všetky kanály okamžite získajú svoje aktuálne hodnoty command-> get (); command2-> get (); }

    prázdna slučka () {

    // io.run (); je potrebný pre všetky náčrty. // vždy by mal byť prítomný v hornej časti funkcie loop //. udržuje klienta v spojení s // io.adafruit.com a spracováva všetky prichádzajúce údaje. io.run ();

    // uchopenie aktuálneho stavu tlačidla. // musíme obrátiť logiku, pretože // používame 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; }

    // návrat, ak sa hodnota nezmenila, ak (button1current == button1last && button2current == button2last) return;

    // uloženie aktuálneho stavu do 'digitálneho' kanála na adafruit io Serial.print ("stav tlačidla odoslania 1 ->"); Serial.println (button1current); príkaz-> uložiť (button1current);

    // uloženie aktuálneho stavu do 'digitálneho' kanála na adafruit io Serial.print ("stav tlačidla odoslania 2 ->"); Serial.println (button2current); príkaz2-> uložiť (button2current);

    // uloženie posledného stavu tlačidla button1last = button1current; button2last = button2current; }

    // táto funkcia sa volá vždy, keď je z IO Adafruit prijatá správa „príkazu“//. bol pripojený k // príkazovému kanálu vo funkcii setup () vyššie. void handleButton1 (údaje AdafruitIO_Data *) {

    int príkaz = data-> toInt ();

    if (príkaz == 1) {// rozsvieti prvý pixel Serial.print ("prijaté z príkazu (tlačidlo 1) <-"); Serial.println (príkaz); // analogWrite (MOTOR_PIN, 200); // zdržanie (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Yellow strip.show (); } else {Serial.print ("prijaté z príkazu (tlačidlo 1) <-"); Serial.println (príkaz); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // táto funkcia sa volá vždy, keď je z IO Adafruit prijatá správa „príkazu“//. bol pripojený k // príkazovému kanálu vo funkcii setup () vyššie. void handleButton2 (údaje AdafruitIO_Data *) {

    int príkaz2 = data-> toInt ();

    if (command2 == 1) {// rozsvieti prvý pixel Serial.print ("prijaté z príkazu2 (tlačidlo 2) <-"); Serial.println (príkaz2); // analogWrite (MOTOR_PIN, 200); // zdržanie (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Yellow strip.show (); } else {Serial.print ("prijaté z príkazu2 (tlačidlo 2) <-"); Serial.println (príkaz2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Krok 3: Konštrukcia obvodu od prototypu k spájkovanému

Konštrukcia obvodu od prototypu k spájkovanému
Konštrukcia obvodu od prototypu k spájkovanému
Konštrukcia obvodu od prototypu k spájkovanému
Konštrukcia obvodu od prototypu k spájkovanému

Povzbudil by som vás, aby ste vyskúšali obvod a vyskúšali obvod. Keďže staviame dve zariadenia, mohli sme testovať na dvoch doskách. Neopixel a tlačidlo on.off som spájkoval na prototypovací drôt, pretože sa používa jednoduchšie. Neskôr môžete prototypovacie vodiče ľahko spájkovať.

Potom, čo uspejeme s prototypovacím obvodom, je čas postaviť náš skutočný obvod. Používam doštičku Perma-proto, pretože je menšia a pripojenie obvodu bude oveľa lepšie ako prototypovací obvod. Pokiaľ ide o spájkovanie, vyžaduje to veľa trpezlivosti. Ešte to nevzdávaj! Dostávate sa tam!

Akonáhle dokončíte svoj obvod a nahráte kód do svojho ESP8266, tieto dve zariadenia by mali fungovať, ako sme uviedli na začiatku.

Krok 4: Forma a materiál

Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál

Teraz si vyrobme náš Kryštálový dom!

Palicu na drevo nakrájajte na 6 palcov. Potrebujeme celkom 18 kusov. Pretože chcem nejakú variáciu z týchto dvoch kryštálových domov, použil som 7 kusov v jednom a 9 kusov v druhom. Prilepte kúsky do krabicovej konštrukcie. Dva akrylové listy som narezal na 6 x 6 palcov a vlepil ich do spodnej časti Kryštálových domov.

Akonáhle dokončíte štruktúru domov. Vyzdobme domy! Odrezala som kúsok priehľadného farebného papiera a prilepila ich na akrylový list. Potom som použil niekoľko priehľadných plastových kryštálov a prilepil ich na základňu. Keďže v spodnej časti kryštálov mám priehľadný farebný papier, kryštály sa odrážajú do rôznych farieb.

Krok 5: Teraz použime kryštálové domy

Teraz použime kryštálové domy
Teraz použime kryštálové domy
Teraz použime kryštálové domy
Teraz použime kryštálové domy

Darujte svojmu milovanému kryštálový dom, ktorý ste vyrobili. Povedzte im, že sú dôležití! Vonkajšiu štruktúru môžete kedykoľvek upraviť pomocou rôznych materiálov a farieb. Dajte mi vedieť, ako to prebieha!

Odporúča: