Përmbajtje:

Shtëpia e Kristaltë: 5 hapa
Shtëpia e Kristaltë: 5 hapa

Video: Shtëpia e Kristaltë: 5 hapa

Video: Shtëpia e Kristaltë: 5 hapa
Video: HAPA DOLLAPA - Kukulla per femije, by Studio "Çamarroket" 2024, Nëntor
Anonim
Image
Image
Shtëpi Kristali
Shtëpi Kristali

Çiftet dhe familjet që janë ndarë për shkak të distancës së gjatë shpesh ndiejnë mallin për lidhje. Crystal House është ndërtuar për çifte dhe familje që të lidhen me njëri -tjetrin përmes dritave. Shtëpitë e Kristalta janë të lidhura me sinjale wifi. Kur shtypni butonin në njërën shtëpi Crystal, dritat e tjera të Crystal House marrin sinjalin dhe do të ndizen. Easyshtë e lehtë dhe argëtuese për tu bërë! Unë do të kaloj hap pas hapi nga materialet/mjetet e përdorura, ndërtimin/testimin e qarkut duke përdorur Arduino dhe ndërtimin e strukturës së Shtëpisë së Kristaltë

Hapi 1: Pjesë, Mjete, Furnizime

  • Pendë e mbledhur Huzzah ESP8266 (dy)
  • Perma-Proto Pjatë gjysmë e madhe (dy)
  • Bateria litium -3.7 1200mAh (dy)
  • Ndërprerës Mini On/Off Push-Button (katër)
  • Mino Butoni NeoPixel (katër)
  • Tela Breadboard
  • Hekur dhe saldues për saldim
  • Zhveshës me tela
  • Mjet i dorës së tretë
  • Shkop druri katror
  • Fletë akrilike
  • Guri kristal i qartë
  • Letër transparente
  • super ngjites

Hapi 2: Diagrami dhe Kodi i Qarkut

Diagrami dhe Kodi i Qarkut
Diagrami dhe Kodi i Qarkut

// Instructables Internet of Things Kodi i mostrës së klasës // Kombinimi i hyrjeve dhe daljeve // Dy butona dërgon komanda në ushqimin AIO // LED dhe motor vibrues (ose ndonjë dalje dixhitale) flah/buzz sipas të dhënave të ushqimit // // Modifikuar nga Becky Stern 2017 // bazuar në shembuj nga Biblioteka Adafruit IO Arduino: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit investon kohë dhe burime duke siguruar këtë kod me burim të hapur. // Ju lutemi mbështesni Adafruit dhe pajisjet me burim të hapur duke blerë // produkte nga Adafruit! // // Shkruar nga Todd Treece për Adafruit Industries // E drejta e autorit (c) 2016 Industritë Adafruit // Licensuar sipas licencës MIT. // // I gjithë teksti i mësipërm duhet të përfshihet në çdo rishpërndarje. #përfshi

  1. #përcaktoni NeoPIN1 15

    // Parametri 1 = numri i pikselave në shirit // Parametri 2 = Numri i kunjit Arduino (shumica janë të vlefshme) // Parametri 3 = flamujt e tipit piksel, shtoni së bashku sipas nevojës: // NEO_KHZ800 800 KHz bitstream (shumica e produkteve NeoPixel w/WS2812 LED) // NEO_KHZ400 400 KHz (klasike 'v1' (jo v2) pikselë FLORA, drejtues WS2811) // NEO_GRB Pixel -et janë të lidhur me bitstream GRB (shumica e produkteve NeoPixel) // NEO_RGB Pixel -et janë të lidhur për bitstream RGB (v1 pixel FLORA, jo v2) // Pixelët NEO_RGBW lidhen për transmetimin bit RGBW (produktet NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /*********************** Adafruit IO Configuration ********************* *********

    / vizitoni io.adafruit.com nëse keni nevojë të krijoni një llogari, // ose nëse keni nevojë për çelësin tuaj Adofruit IO. #përcaktoni IO_USERNAME "Emri juaj i përdoruesit" #përcaktoni IO_KEY "IO_KEY juaj"

    /***************************** Konfigurimi WIFI **************** *********************/

    #përcakto WIFI_SSID "Wi -Fi juaj" #përcaktoni WIFI_PASS "Fjalëkalimin tuaj"

    #përfshi "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

    /*********************** Kodi Kryesor Fillon Këtu ******************** **********/

    #përfshi #përfshi #përfshi #përfshi

    // #përcakto LED_PIN 15 #përcakto BUTTON1_PIN 4 #përcakto BUTTON2_PIN 14 // #përcakto MOTOR_PIN 5 // kjo kunj ka nevojë për aftësi PWM

    // gjendja e butonit int button1current = 0; butoni int1last = 0; int button2current = 0; int button2last = 0;

    // vendosni ushqimin 'dixhital' AdafruitIO_Feed *command = io.feed ("command"); AdafruitIO_Feed *command2 = io.feed ("command2");

    void setup () {strip.setBrightness (60); strip.filloj (); shirit.shfaq (); // Filloni të gjithë pikselët për të "fikur" // vendosni kunjat e butonave si hyrje me pinMode të rezistencës së brendshme tërheqëse (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // vendos pinin led dhe pin motorin si dalje dixhitale // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // filloni lidhjen serike Serial.begin (115200);

    // lidheni me io.adafruit.com Serial.print ("Lidhja me Adafruit IO"); io.connect (); // vendosni një mbajtës mesazhesh për burimin 'komandë'. // funksioni handleMessage (i përcaktuar më poshtë) // do të thirret sa herë që një mesazh // merret nga adafruit io. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // prisni një lidhje ndërsa (io.status () <AIO_CONNECTED) {Serial.print ("."); vonesë (500); }

    // jemi të lidhur Serial.println (); Serial.println (io.statusText ());

    // sigurohuni që të gjitha burimet të marrin vlerat e tyre aktuale komandën-> merrni (); command2-> merrni (); }

    lak void () {

    // io.run (); kërkohet për të gjitha skicat. // duhet të jetë gjithmonë i pranishëm në krye të funksionit tuaj të lakut //. e mban klientin të lidhur me // io.adafruit.com, dhe përpunon çdo të dhënë në hyrje. io.run ();

    // kapni gjendjen aktuale të butonit. // ne duhet të përmbysim logjikën sepse ne jemi // duke përdorur INPUT_PULLUP. nëse (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; }

    // kthehet nëse vlera nuk ka ndryshuar nëse (button1current == button1last && button2current == button2last) kthehet;

    // ruani gjendjen aktuale në ushqimin 'dixhital' në adafruit io Serial.print ("butoni i dërgimit 1 statusi ->"); Serial.println (button1current); komandë-> ruaj (button1current);

    // ruani gjendjen aktuale në ushqimin 'dixhital' në adafruit io Serial.print ("butoni i dërgimit të statusit 2 ->"); Serial.println (button2current); command2-> ruaj (button2current);

    // ruani gjendjen e fundit të butonit button1last = button1current; button2last = butoni2rrymë; }

    // ky funksion thirret sa herë që një mesazh 'komande' // merret nga Adafruit IO. i ishte bashkangjitur // ushqimit të komandës në funksionin setup () më sipër. dorezë e pavlefshme Button1 (të dhënat e AdafruitIO_Data *) {

    komanda int = të dhëna-> toInt ();

    nëse (komanda == 1) {// ndizni pikselin e parë Serial.print ("marrë nga komanda (butoni 1) <-"); Serial.println (komanda); // analogWrite (MOTOR_PIN, 200); // vonesë (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Shirit i verdhë.shfaq (); } else {Serial.print ("marrë nga komanda (butoni 1) <-"); Serial.println (komanda); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // ky funksion thirret sa herë që një mesazh 'komande' // merret nga Adafruit IO. i ishte bashkangjitur // burimit të komandës në funksionin setup () më sipër. dorezë e zbrazët Button2 (të dhënat e AdafruitIO_Data *) {

    komanda int2 = të dhëna-> toInt ();

    if (command2 == 1) {// ndez pikselin e parë Serial.print ("marrë nga komanda2 (butoni 2) <-"); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // vonesë (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, shirit. Ngjyra (255, 128, 128)); // Shirit i verdhë.shfaq (); } else {Serial.print ("marrë nga komanda2 (butoni 2) <-"); Serial.println (command2); strip.setPixelColor (1, shirit. Ngjyra (0, 0, 0)); // off strip.show (); }}

Hapi 3: Ndërtimi i Qarkut Nga Prototipi në Saldim

Ndërtimi i Qarkut Nga Prototipi në Salduar
Ndërtimi i Qarkut Nga Prototipi në Salduar
Ndërtimi i Qarkut Nga Prototipi në Salduar
Ndërtimi i Qarkut Nga Prototipi në Salduar

Unë do t'ju inkurajoja që të provoni në një dërrasë buke për të testuar qarkun. Meqenëse po ndërtojmë dy pajisje, mund të testojmë në dy dërrasa buke. Unë bashkova Neopixel dhe butonin on.off në një tel prototipues pasi është më i lehtë për t'u përdorur. Më vonë, lehtë mund t'i lidhni telat e prototipit.

Pasi të kemi sukses me qarkun e prototipimit, është koha për të ndërtuar qarkun tonë të vërtetë. Unë jam duke përdorur bordin e bukës Perma-proto pasi është më i vogël dhe lidhja e qarkut do të jetë shumë më mirë sesa qarku i prototipimit. Kur bëhet fjalë për lidhjen, kërkon shumë durim. Mos u dorëzo akoma! Ju jeni duke arritur atje!

Pasi të keni mbaruar qarkun tuaj dhe të keni ngarkuar kodin në ESP8266 tuaj, të dy pajisjet duhet të funksionojnë siç e përmendëm në fillim.

Hapi 4: Forma dhe materiali

Forma & Materiali
Forma & Materiali
Forma & Materiali
Forma & Materiali
Forma & Materiali
Forma & Materiali
Forma & Materiali
Forma & Materiali

Tani le të bëjmë Shtëpinë tonë Kristal!

Pritini shkopin e drurit në 6 centimetra. Ne kemi nevojë për 18 copë në total. Meqenëse dua disa ndryshime nga këto dy shtëpi kristalore, kam përdorur 7 pjesë në njërën dhe 9 pjesë në tjetrën. Ngjitini pjesët në një strukturë kuti. I preva dy fletë akrilike në 6 me 6 inç dhe i ngjita në pjesën e poshtme të Shtëpive të Kristalta.

Pasi të keni përfunduar strukturën e shtëpive. Le të dekorojmë shtëpitë! Unë preva një copë letër me ngjyrë transparente dhe i ngjita në fletën akrilike. Pas kësaj, unë përdor disa kristale plastike të qarta dhe i ngjita në bazë. Meqenëse kam një letër me ngjyrë transparente në fund të kristaleve, kristalet reflektohen në ngjyra të ndryshme.

Hapi 5: Tani Le të Përdorim Shtëpitë Kristal

Tani Le të Përdorim Shtëpitë Kristal
Tani Le të Përdorim Shtëpitë Kristal
Tani Le të Përdorim Shtëpitë Kristal
Tani Le të Përdorim Shtëpitë Kristal

Jepini të dashurit tuaj shtëpinë prej kristali që keni bërë. Thuaju atyre se ato janë të rëndësishme! Ju gjithmonë mund të modifikoni strukturën e jashtme duke përdorur materiale dhe ngjyra të ndryshme. Më tregoni se si shkon!

Recommended: