Turinys:

„Crystal House“: 5 žingsniai
„Crystal House“: 5 žingsniai

Video: „Crystal House“: 5 žingsniai

Video: „Crystal House“: 5 žingsniai
Video: Šokio žingsniai - 1 2024, Lapkritis
Anonim
Image
Image
„Crystal House“
„Crystal House“

Poros ir šeimos, išsiskyrusios dėl didelio atstumo, dažnai jaučia ryšio ilgesį. „Crystal House“yra skirtas poroms ir šeimoms prisijungti tarpusavyje per šviesas. „Crystal Houses“yra prijungti prie „Wi -Fi“signalų. Kai paspausite vieno „Crystal House“mygtuką, kitos „Crystal House“lemputės gaus signalą ir bus įjungtos. Tai lengva ir smagu pagaminti! Aš žingsnis po žingsnio pereisiu nuo naudojamų medžiagų/įrankių, kuriu/bandysiu grandinę naudodami „Arduino“ir statysiu „Crystal House“struktūrą

1 žingsnis: dalys, įrankiai, reikmenys

  • Surinkta plunksna Huzzah ESP8266 (du)
  • „Perma-Proto“pusės dydžio duonos lenta (dvi)
  • Ličio baterija -3,7 1200 mAh (dvi)
  • Mini įjungimo/išjungimo mygtukinis jungiklis (keturi)
  • „NeoPixel“mini mygtukas (keturi)
  • Duonos lentos viela
  • Lituoklis ir lydmetalis
  • Vielos nuėmiklis
  • Trečias rankinis įrankis
  • Kvadratinė medinė lazda
  • Akrilo lakštas
  • Skaidrus krištolo akmuo
  • Skaidrus popierius
  • Super klijai

2 žingsnis: grandinės schema ir kodas

Grandinės schema ir kodas
Grandinės schema ir kodas

// Instructables Daiktų interneto klasės pavyzdžio kodas // Įėjimų ir išėjimų derinimas // Du mygtukai siunčia komandas į AIO tiekimą // Šviesos diodas ir vibruojantis variklis (arba bet kuri skaitmeninė išvestis) flah/buzz pagal kanalo duomenis // // Pakeitė Becky „Stern 2017“// remiantis „Adafruit IO Arduino“bibliotekos pavyzdžiais: // https://github.com/adafruit/Adafruit_IO_Arduino // // „Adafruit“investuoja laiką ir išteklius, teikdama šį atvirojo kodo kodą. // Prašome palaikyti „Adafruit“ir atvirojo kodo aparatinę įrangą perkant // produktus iš „Adafruit“! // Parašė Todd Treece „Adafruit Industries“// Autorių teisės (c) 2016 m. „Adafruit Industries“// Licencijuota pagal MIT licenciją. // // Visas anksčiau pateiktas tekstas turi būti įtrauktas į bet kokį perskirstymą. #įtraukti

  1. #define NeoPIN1 15

    // 1 parametras = pikselių skaičius juostelėje // 2 parametras = Arduino kaiščio numeris (dauguma jų galioja) // 3 parametras = pikselių tipo vėliavos, prireikus pridėkite: // NEO_KHZ800 800 KHz bitų srautas (dauguma „NeoPixel“produktų su WS2812 Šviesos diodai) // NEO_KHZ400 400 KHz (klasikiniai „v1“(ne v2) FLORA pikseliai, WS2811 tvarkyklės) // NEO_GRB Pikseliai prijungti prie GRB bitų srauto (dauguma „NeoPixel“produktų) ne v2) // NEO_RGBW Pikseliai yra prijungti prie RGBW bitų srauto („NeoPixel RGBW“produktai) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Adafruit IO konfigūracija ********************** *********

    / jei norite sukurti paskyrą, // apsilankykite io.adafruit.com, // arba jei jums reikia „Adafruit IO“rakto. #define IO_USERNAME "Jūsų vartotojo vardas" #define IO_KEY "Jūsų IO_KEY"

    /******************************* WIFI konfigūracija **************** **********************/

    #define WIFI_SSID „Jūsų wifi“#define WIFI_PASS „Jūsų slaptažodis“

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

    /************************ Čia prasideda pagrindinis kodas ********************* **********/

    #įtraukimas #įtraukimas #įtraukimas #įtraukimas

    // #define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // #define MOTOR_PIN 5 // šiam kaiščiui reikia PWM galimybių

    // mygtuko būsena int button1current = 0; int mygtukas1paskutinis = 0; int mygtukas2srovė = 0; int mygtukas2paskutinis = 0;

    // nustatyti 'skaitmeninį' sklaidos kanalą AdafruitIO_Feed *komanda = io.feed ("komanda"); AdafruitIO_Feed *command2 = io.feed ("command2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicijuokite visus taškus į „išjungtą“// nustatykite mygtukų kaiščius kaip įėjimus su vidiniu ištraukiamuoju rezistoriumi pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // nustatyti skaitmeninį išėjimą ir variklio kaištį // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // paleisti nuoseklųjį ryšį Serial.begin (115200);

    // prisijungti prie io.adafruit.com Serial.print („Prisijungimas prie„ Adafruit IO ““); io.connect (); // nustatyti komandų sklaidos kanalo pranešimų tvarkyklę. // „handleMessage“funkcija (apibrėžta žemiau) // bus iškviesta kiekvieną kartą, kai // bus gautas pranešimas iš „adafruit io“. komanda-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // laukti ryšio, kol (io.status () <AIO_CONNECTED) {Serial.print ("."); vėlavimas (500); }

    // mes prisijungę Serial.println (); Serial.println (io.statusText ());

    // įsitikinkite, kad visi sklaidos kanalai iš karto gauna dabartines vertes komanda-> get (); command2-> get (); }

    void loop () {

    // io.run (); reikalingas visiems eskizams. // ji visada turi būti jūsų ciklo // funkcijos viršuje. jis palaiko kliento ryšį su // io.adafruit.com ir apdoroja visus gaunamus duomenis. io.run ();

    // patraukti dabartinę mygtuko būseną. // turime apversti logiką, nes mes // naudojame 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; }

    // grįžti, jei vertė nepasikeitė, jei (button1current == button1last && button2current == button2last) return;

    // išsaugoti esamą būseną į „skaitmeninį“kanalą „adafruit io Serial.print“(„siuntimo mygtuko 1 būsena ->“); Serial.println (mygtukas1 srovė); komanda-> išsaugoti (button1current);

    // išsaugoti esamą būseną į „skaitmeninį“kanalą „adafruit io Serial.print“(„siuntimo mygtuko 2 būsena ->“); Serial.println (button2current); command2-> išsaugoti (button2current);

    // saugoti paskutinio mygtuko būseną button1last = button1current; button2last = button2current; }

    // ši funkcija iškviečiama, kai iš „Adafruit IO“gaunamas „komandinis“pranešimas //. jis buvo pridėtas prie // komandų sklaidos kanalo aukščiau esančioje sąrankos () funkcijoje. void handleButton1 („AdafruitIO_Data *“duomenys) {

    int komanda = duomenys-> toInt ();

    if (komanda == 1) {// užsidega pirmasis pikselis Serial.print ("gautas iš komandos (1 mygtukas) <-"); Serial.println (komanda); // analogWrite (MOTOR_PIN, 200); // uždelsimas (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Geltona juostelė.show (); } else {Serial.print ("gautas iš komandos (1 mygtukas) <-"); Serial.println (komanda); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // ši funkcija iškviečiama kaskart, kai iš „Adafruit IO“gaunamas „komandinis“pranešimas //. jis buvo pridėtas prie // komandų sklaidos kanalo aukščiau esančioje sąrankos () funkcijoje. void handleButton2 („AdafruitIO_Data *“duomenys) {

    int komanda2 = duomenys-> toInt ();

    if (command2 == 1) {// užsidega pirmasis pikselis Serial.print ("gautas iš command2 (2 mygtukas) <-"); Serial.println (komanda2); // analogWrite (MOTOR_PIN, 200); // uždelsimas (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Geltona juostelė.show (); } else {Serial.print ("gautas iš komandos2 (2 mygtukas) <-"); Serial.println (komanda2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

3 žingsnis: grandinės konstrukcija nuo prototipo iki litavimo

Grandinės konstrukcija nuo prototipo iki litavimo
Grandinės konstrukcija nuo prototipo iki litavimo
Grandinės konstrukcija nuo prototipo iki litavimo
Grandinės konstrukcija nuo prototipo iki litavimo

Aš raginčiau jus išbandyti duonos lentą, kad išbandytumėte grandinę. Kadangi mes kuriame du įrenginius, galėtume išbandyti ant dviejų duonos lentų. „Neopixel“ir mygtuką „on.off“lituodavau prie laido prototipų, nes juo lengviau naudotis. Vėliau galite lengvai lituoti prototipų laidus.

Kai mums pavyks sukurti prototipų grandinę, laikas sukurti tikrąją grandinę. Aš naudoju „Perma-proto“duonos lentą, nes ji yra mažesnė, o grandinės jungtis bus daug geresnė nei prototipų grandinė. Kalbant apie litavimą, tai reikalauja daug kantrybės. Dar nepasiduok! Jūs ten!

Baigę grandinę ir įkėlę kodą į savo ESP8266, abu įrenginiai turėtų veikti taip, kaip minėjome pradžioje.

4 žingsnis: forma ir medžiaga

Forma ir medžiaga
Forma ir medžiaga
Forma ir medžiaga
Forma ir medžiaga
Forma ir medžiaga
Forma ir medžiaga
Forma ir medžiaga
Forma ir medžiaga

Dabar kurkime savo krištolo namus!

Supjaustykite medinę lazdelę į 6 colius. Iš viso mums reikia 18 vienetų. Kadangi noriu šių dviejų kristalų namų variantų, viename panaudojau 7 gabalus, o kitame - 9 gabalus. Klijuokite gabalus prie dėžutės struktūros. Aš supjaustiau du akrilo lakštus iki 6 x 6 colių ir įklijavau juos į krištolo namų dugną.

Baigę statyti namus. Papuoškime namus! Iškirpau skaidraus spalvoto popieriaus gabalėlį ir priklijavau ant akrilo lakšto. Po to aš panaudojau keletą skaidrių plastikinių kristalų ir priklijavau juos prie pagrindo. Kadangi kristalų apačioje turiu skaidrų spalvotą popierių, kristalai atsispindi skirtingomis spalvomis.

5 žingsnis: Dabar naudokime krištolo namus

Dabar naudokime krištolo namus
Dabar naudokime krištolo namus
Dabar naudokime krištolo namus
Dabar naudokime krištolo namus

Padovanok savo mylimam žmogui savo sukurtą krištolo namą. Pasakykite jiems, kad jie yra svarbūs! Išorinę struktūrą visada galite keisti naudodami įvairias medžiagas ir spalvas. Leiskite man žinoti, kaip tai vyksta!

Rekomenduojamas: