Kazalo:

Kristalna hiša: 5 korakov
Kristalna hiša: 5 korakov

Video: Kristalna hiša: 5 korakov

Video: Kristalna hiša: 5 korakov
Video: Штукатурка стен - самое полное видео! Переделка хрущевки от А до Я. #5 2024, November
Anonim
Image
Image
Kristalna hiša
Kristalna hiša

Pari in družine, ki so ločeni zaradi dolge razdalje, pogosto čutijo hrepenenje po povezavi. Kristalna hiša je zgrajena za pare in družine, ki se med seboj povezujejo prek luči. Kristalne hiše so povezane s signali wifi. Ko pritisnete gumb na eni kristalni hiši, druge luči kristalne hiše sprejmejo signal in se prižgejo. Izdelava je enostavna in zabavna! Korak za korakom bom šel skozi uporabljene materiale/orodja, gradnjo/preskusno vezje z Arduinom in gradnjo strukture Kristalne hiše

1. korak: Deli, orodja, potrebščine

  • Sestavljeno pero Huzzah ESP8266 (dva)
  • Perma-Proto polovična plošča (dve)
  • Litijeva baterija -3,7 1200mAh (dva)
  • Mini stikalo za vklop/izklop (štiri)
  • Mini gumb NeoPixel (štiri)
  • Breadboard Wire
  • Spajkalnik in spajkanje
  • Odstranjevalec žice
  • Orodje iz tretje roke
  • Kvadratna lesena palica
  • Akrilna plošča
  • Čisti kristalni kamen
  • Prozoren papir
  • super lepilo

2. korak: Shema vezja in koda

Shema vezja in koda
Shema vezja in koda

// Vzorčna koda razreda stvari, ki jih je mogoče naročiti // Združevanje vhodov in izhodov // Dva gumba pošiljata ukaze na vir AIO // LED in vibrirajoči motor (ali kateri koli digitalni izhod) flah/buzz glede na podatke o viru // // Spremenila Becky Stern 2017 // na podlagi primerov iz knjižnice Adafruit IO Arduino: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit vlaga čas in sredstva za to odprtokodno kodo. // Prosimo, podprite Adafruit in odprtokodno strojno opremo z nakupom // izdelkov pri Adafruit! // // Napisal Todd Treece za Adafruit Industries // Avtorske pravice (c) 2016 Adafruit Industries // Licencirano pod licenco MIT. // // Vse zgornje besedilo mora biti vključeno v kakršno koli prerazporeditev. #vključi

  1. #define NeoPIN1 15

    // Parameter 1 = število slikovnih pik v traku // Parameter 2 = Arduino pin številka (večina jih je veljavnih) // Parameter 3 = zastavice tipa slikovnih pik, po potrebi seštejemo: // NEO_KHZ800 800 KHz bitni tok (večina izdelkov NeoPixel z WS2812 LED diode) // NEO_KHZ400 400 KHz (klasični 'v1' (ne v2) slikovni elementi FLORA, gonilniki WS2811) // NEO_GRB Piksli so ožičeni za bitni tok GRB (večina izdelkov NeoPixel) // NEO_RGB Piksli so ožičeni za bitni tok RGB (v1 FLORA slikovnih pik, not v2) // NEO_RGBW Piksli so povezani za RGBW bitstream (izdelki NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Adafruit IO konfiguracija ********************** *********

    / obiščite io.adafruit.com, če morate ustvariti račun, // ali če potrebujete svoj ključ Adafruit IO. #define IO_USERNAME "Vaše uporabniško ime" #define IO_KEY "Vaš IO_KEY"

    /******************************* WIFI konfiguracija **************** **********************/

    #define WIFI_SSID "Vaš wifi" #define WIFI_PASS "Vaše geslo"

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

    /************************ Glavna koda se začne tukaj ********************* **********/

    #include #include #include #include

    // #define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // #define MOTOR_PIN 5 // ta pin potrebuje možnost PWM

    // stanje gumba int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // nastavimo 'digitalni' vir AdafruitIO_Feed *command = io.feed ("ukaz"); AdafruitIO_Feed *command2 = io.feed ("ukaz2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicializiramo vse slikovne pike na 'off' // nastavimo zatiče gumbov kot vhode z notranjim vlečnim uporom pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // nastavimo led pin in pin motorja kot digitalne izhode // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // zaženite serijsko povezavo Serial.begin (115200);

    // povežite se z io.adafruit.com Serial.print ("Povezovanje z vmesnikom Adafruit IO"); io.connect (); // nastavimo obravnavo sporočil za vir 'ukaz'. // funkcija handleMessage (opredeljena spodaj) // se bo klicala vsakič, ko bo sporočilo // prejeto od adafruit io. ukaz-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // počakajte na povezavo while (io.status () <AIO_CONNECTED) {Serial.print ("."); zamuda (500); }

    // povezani smo Serial.println (); Serial.println (io.statusText ());

    // zagotovimo, da vsi viri takoj dobijo trenutne vrednosti command-> get (); command2-> get (); }

    void loop () {

    // io.run (); je potrebno za vse skice. // vedno mora biti na vrhu vaše zanke // funkcije. Odjemalec je povezan z // io.adafruit.com in obdeluje vse dohodne podatke. io.run ();

    // zgrabi trenutno stanje gumba. // moramo obrniti logiko, ker // uporabljamo 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; }

    // vrne, če se vrednost ni spremenila, če se (button1current == button1last && button2current == button2last) vrne;

    // shranimo trenutno stanje v "digitalni" vir na adafruit io Serial.print ("stanje gumba za pošiljanje 1 ->"); Serial.println (button1current); ukaz-> shrani (button1current);

    // shranimo trenutno stanje v 'digitalni' vir na adafruit io Serial.print ("stanje gumba za pošiljanje 2 ->"); Serial.println (button2current); command2-> shrani (button2current);

    // shrani stanje zadnjega gumba button1last = button1current; button2last = button2current; }

    // ta funkcija se pokliče vsakič, ko od Adafruit IO prejme sporočilo "ukaz". je bil priložen // ukazu vira v zgornji funkciji setup (). void handleButton1 (podatki AdafruitIO_Data *) {

    int ukaz = podatki-> toInt ();

    if (ukaz == 1) {// zasveti prva slikovna pika Serial.print ("prejeto iz ukaza (gumb 1) <-"); Serial.println (ukaz); // analogWrite (MOTOR_PIN, 200); // zakasnitev (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Rumeni trak.show (); } else {Serial.print ("prejeto iz ukaza (gumb 1) <-"); Serial.println (ukaz); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // ta funkcija se pokliče vsakič, ko od vmesnika Adafruit IO prejmemo sporočilo "ukaz". je bil priložen // ukazu vira v zgornji funkciji setup (). void handleButton2 (podatki AdafruitIO_Data *) {

    int command2 = podatki-> toInt ();

    if (command2 == 1) {// prižge Serial.print prve slikovne pike ("prejeto od command2 (gumb 2) <-"); Serial.println (ukaz2); // analogWrite (MOTOR_PIN, 200); // zakasnitev (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Rumeni trak.show (); } else {Serial.print ("prejeto od ukaza command2 (gumb 2) <-"); Serial.println (ukaz2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

3. korak: Konstrukcija vezja od prototipa do spajkanja

Konstrukcija vezja od prototipa do spajkanja
Konstrukcija vezja od prototipa do spajkanja
Konstrukcija vezja od prototipa do spajkanja
Konstrukcija vezja od prototipa do spajkanja

Svetujem vam, da preizkusite vezje, da preizkusite vezje. Ker izdelujemo dve napravi, bi lahko preizkusili na dveh načinih. Neopixel in gumb za vklop / izklop sem spajkal na žico za izdelavo prototipov, saj je lažja za uporabo. Kasneje lahko žice prototipov enostavno spajkate.

Ko uspemo s prototipnim vezjem, je čas za izgradnjo našega pravega vezja. Uporabljam ploščo Perma-proto, ker je manjša in bo vezje veliko boljše od prototipnega vezja. Kar zadeva spajkanje, zahteva veliko potrpežljivosti. Ne obupajte še! Prideš tja!

Ko končate vezje in naložite kodo v svoj ESP8266, bi morali obe napravi delovati, kot smo omenili na začetku.

4. korak: Oblika in material

Oblika in material
Oblika in material
Oblika in material
Oblika in material
Oblika in material
Oblika in material
Oblika in material
Oblika in material

Zdaj pa naredimo našo Kristalno hišo!

Lesno palico razrežite na 6 centimetrov. Skupaj potrebujemo 18 kosov. Ker želim nekaj variacij iz teh dveh kristalnih hiš, sem v enem uporabil 7 kosov, v drugem pa 9 kosov. Kose prilepite v okvir škatle. Dve akrilni plošči sem razrezala na 6 x 6 palcev in jih prilepila na dno kristalnih hiš.

Ko končate zgradbo hiš. Okrasimo hiše! Odrezala sem kos prozornega barvnega papirja in jih prilepila na akrilno ploščo. Po tem sem uporabil nekaj prozornih plastičnih kristalov in jih zlepil na podlago. Ker imam na dnu kristalov prozoren barvni papir, se kristali odražajo v različnih barvah.

5. korak: Zdaj pa uporabimo Kristalne hiše

Zdaj pa uporabimo Kristalne hiše
Zdaj pa uporabimo Kristalne hiše
Zdaj pa uporabimo Kristalne hiše
Zdaj pa uporabimo Kristalne hiše

Podarite svojemu ljubljenemu kristalno hišo, ki ste jo naredili. Povejte jim, da so pomembni! Zunanjo strukturo lahko vedno spremenite z različnimi materiali in barvami. Povej mi, kako je!

Priporočena: