INHOUDSOPGAWE:

Crystal House: 5 stappe
Crystal House: 5 stappe

Video: Crystal House: 5 stappe

Video: Crystal House: 5 stappe
Video: ЗАСНЯЛИ РЕАЛЬНОГО ПРИЗРАКА В ДОМЕ С ПАРАНОРМАЛЬНЫМ 2024, November
Anonim
Image
Image
Crystal House
Crystal House

Paartjies en gesinne wat vanweë lang afstand geskei is, voel dikwels die hunkering na verbinding. Crystal House is gebou vir paartjies en gesinne om met mekaar deur ligte kontak te maak. Crystal Houses is verbind met wifi -seine. As u op die knoppie op die een Crystal House druk, ontvang die ander Crystal House se ligte die sein en word dit aangeskakel. Dit is maklik en lekker om te maak! Ek gaan stap vir stap deur materiaal/gereedskap wat gebruik word, die bou/toetsbaan met Arduino en die bou van die struktuur van die Crystal House

Stap 1: Onderdele, gereedskap, voorrade

  • Geassembleerde veer Huzzah ESP8266 (twee)
  • Perma-Proto halfgrootte broodbord (twee)
  • Litiumbattery -3,7 1200mAh (twee)
  • Mini aan/uit-drukknopskakelaar (vier)
  • NeoPixel Mini -knoppie (vier)
  • Broodborddraad
  • Soldeerbout en soldeer
  • Draadstropper
  • Derdehandse gereedskap
  • Vierkantige houtstok
  • Akrielblad
  • Helder kristalsteen
  • Deursigtige papier
  • wondergom

Stap 2: Kringdiagram en kode

Kringdiagram en kode
Kringdiagram en kode

// Instructables Internet of Things Klas voorbeeldkode // Kombinasie van insette en uitsette // Twee drukknoppies stuur opdragte na AIO feed // LED en vibrerende motor (of enige digitale uitset) flah/buzz volgens voer data // // Gewysig deur Becky Stern 2017 // gebaseer op voorbeelde uit Adafruit IO Arduino -biblioteek: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit belê tyd en hulpbronne om hierdie open source -kode te verskaf. // Ondersteun asseblief Adafruit en open source hardeware deur // produkte van Adafruit te koop! // // Geskryf deur Todd Treece vir Adafruit Industries // Kopiereg (c) 2016 Adafruit Industries // Gelisensieer onder die MIT -lisensie. // // Alle teks hierbo moet by enige herverdeling ingesluit word. #insluit

  1. #definieer NeoPIN1 15

    // Parameter 1 = aantal pixels in strook // Parameter 2 = Arduino -speldnommer (die meeste is geldig) // Parameter 3 = pixeltipe vlae, voeg by indien nodig: // NEO_KHZ800 800 KHz bitstroom (die meeste NeoPixel -produkte met WS2812 LED's) // NEO_KHZ400 400 KHz (klassieke 'v1' (nie v2) FLORA -pixels, WS2811 -bestuurders) // NEO_GRB Pixels is bedraad vir GRB -bitstroom (die meeste NeoPixel -produkte) // NEO_RGB -pixels is bedraad vir RGB -bitstroom (v1 FLORA -pixels, nie v2) // NEO_RGBW Pixels word bedraad vir RGBW -bitstroom (NeoPixel RGBW -produkte) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Adafruit IO -opset ********************** *********

    / besoek io.adafruit.com as u 'n rekening moet skep, // of as u u Adafruit IO -sleutel nodig het. #definieer IO_USERNAME "U gebruikersnaam" #definieer IO_KEY "U IO_KEY"

    /****************************** WIFI -konfigurasie **************** **********************/

    #definieer WIFI_SSID "U wifi" #definieer WIFI_PASS "U wagwoord"

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

    /************************ Hoofkode begin hier ********************** ***********/

    #include #include #include #include

    // #definieer LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // #definieer MOTOR_PIN 5 // hierdie pen benodig PWM -vermoë

    // knoppie staat int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // stel die 'digitale' voer AdafruitIO_Feed *opdrag op = io.feed ("command"); AdafruitIO_Feed *command2 = io.feed ("command2");

    ongeldige opstelling () {strip.setBrightness (60); strip.begin (); strip.show (); // Initialiseer alle pixels na 'af' // stel knoppies vas as insette met interne optrekweerstand pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // stel LED -pen en motorpen in as 'n digitale uitset // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // begin die reeksverbinding Serial.begin (115200);

    // maak verbinding met io.adafruit.com Serial.print ("Koppel aan Adafruit IO"); io.connect (); // stel 'n boodskaphanteerder op vir die 'command' feed. // die handleMessage -funksie (hieronder gedefinieer) // sal gebel word wanneer 'n boodskap // van adafruit io ontvang word. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // wag vir 'n verbinding terwyl (io.status () <AIO_CONNECTED) {Serial.print ("."); vertraging (500); }

    // ons is verbind Serial.println (); Serial.println (io.statusText ());

    // maak seker dat alle feeds dadelik hul huidige waardes kry command-> get (); command2-> get (); }

    leemte -lus () {

    // io.run (); word benodig vir alle sketse. // dit moet altyd aan die bokant van u lus // funksie wees. dit hou die kliënt verbind met // io.adafruit.com en verwerk inkomende data. io.run ();

    // gryp die huidige toestand van die knoppie. // ons moet die logika omdraai omdat ons // INPUT_PULLUP gebruik. as (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; }

    // terugkeer as die waarde nie verander het as (button1current == button1last && button2current == button2last) terugkeer;

    // stoor die huidige toestand in die 'digitale' voer op adafruit io Serial.print ("stuur knoppie 1 status ->"); Serial.println (button1current); command-> save (button1current);

    // stoor die huidige toestand in die 'digitale' voer op adafruit io Serial.print ("stuur knoppie 2 status ->"); Serial.println (button2current); command2-> stoor (button2current);

    // stoor laaste knoppie toestand button1last = button1current; button2last = button2current; }

    // hierdie funksie word genoem wanneer 'n 'command' -boodskap // van Adafruit IO ontvang word. dit is aangeheg by // die opdragvoer in die setup () funksie hierbo. void handleButton1 (AdafruitIO_Data *data) {

    int command = data-> toInt ();

    as (command == 1) {// eerste pixel Serial.print aansteek ("ontvang vanaf command (knoppie 1) <-"); Serial.println (opdrag); // analogWrite (MOTOR_PIN, 200); // vertraging (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Geel strook.vertoon (); } anders {Serial.print ("ontvang vanaf opdrag (knoppie 1) <-"); Serial.println (opdrag); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }}} // hierdie funksie word genoem wanneer 'n 'command' -boodskap // van Adafruit IO ontvang word. dit is aangeheg by // die opdragvoer in die setup () funksie hierbo. void handleButton2 (AdafruitIO_Data *data) {

    int command2 = data-> toInt ();

    as (command2 == 1) {// eerste pixel Serial.print aansteek ("ontvang vanaf command2 (knoppie 2) <-"); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // vertraging (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Geel strook.vertoon (); } anders {Serial.print ("ontvang vanaf command2 (knoppie 2) <-"); Serial.println (command2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Stap 3: Kringkonstruksie van prototipe tot gesoldeer

Kringkonstruksie van prototipe tot gesoldeer
Kringkonstruksie van prototipe tot gesoldeer
Kringkonstruksie van prototipe tot gesoldeer
Kringkonstruksie van prototipe tot gesoldeer

Ek wil u aanmoedig om op 'n broodbord te probeer om die kring te toets. Aangesien ons twee toestelle bou, kan ons op twee broodplate toets. Ek het die Neopixel en die on.off -knoppie aan 'n prototipe draad gesoldeer, aangesien dit makliker is om te gebruik. Later kan u die prototipe drade maklik losmaak.

Nadat ons met die prototiperingskring geslaag het, is dit tyd om ons werklike stroombaan te bou. Ek gebruik die Perma-proto-broodbord, aangesien dit kleiner is en die verbinding van die stroombaan baie beter sal wees as die prototiperingskring. As dit by soldeer kom, verg dit baie geduld. Moet nog nie opgee nie! Jy kom daar!

Sodra u u kring voltooi het en die kode in u ESP8266 opgelaai het, behoort die twee toestelle te werk soos ons in die begin genoem het.

Stap 4: Vorm en materiaal

Vorm en materiaal
Vorm en materiaal
Vorm en materiaal
Vorm en materiaal
Vorm en materiaal
Vorm en materiaal
Vorm en materiaal
Vorm en materiaal

Kom ons maak nou ons Crystal House!

Sny die houtstok in 6 duim. Ons benodig in totaal 18 stukke. Aangesien ek 'n bietjie variasie van hierdie twee kristalhuis wil hê, het ek 7 stukke in die een en 9 stukke in die ander een gebruik. Plak die stukke vas aan 'n boksstruktuur. Ek sny twee akrielvelle tot 6 x 6 duim en plak dit onder in die kristalhuise vas.

Sodra u die struktuur van die huise voltooi het. Kom ons versier die huise! Ek sny 'n stuk deursigtige papier en plak dit op die akrielblad. Daarna het ek 'n paar helder plastiek kristalle gebruik en dit op die basis vasgeplak. Aangesien ek 'n deursigtige papier onderaan die kristalle het, word die kristalle in verskillende kleure gereflekteer.

Stap 5: Kom ons gebruik nou die kristalhuise

Laat ons nou die kristalhuise gebruik
Laat ons nou die kristalhuise gebruik
Laat ons nou die kristalhuise gebruik
Laat ons nou die kristalhuise gebruik

Gee jou geliefde die kristalhuis wat jy gemaak het. Sê vir hulle dat hulle belangrik is! U kan die struktuur van buite altyd verander met verskillende materiale en kleure. Laat weet my hoe dit gaan!

Aanbeveel: