Sadržaj:

Kristalna kuća: 5 koraka
Kristalna kuća: 5 koraka

Video: Kristalna kuća: 5 koraka

Video: Kristalna kuća: 5 koraka
Video: NAPRAVITE OVAJ SIR U SAMO PAR KORAKA IAKO STE POČETNIK! BRZO, LAKO I JEFTINO!!!! GOTOVO ODMAH! 2024, Srpanj
Anonim
Image
Image
Kristalna kuća
Kristalna kuća

Parovi i obitelji koji su razdvojeni zbog velike udaljenosti često osjećaju čežnju za povezivanjem. Kristalna kuća izgrađena je za parove i obitelji koji se međusobno povezuju svjetlima. Kristalne kuće povezane su wifi signalima. Kada pritisnete gumb na jednoj kristalnoj kući, svjetla druge kristalne kuće primaju signal i bit će uključene. Lako je i zabavno za napraviti! Proći ću korak po korak od korištenih materijala/alata, izgradnje/ispitivanja kruga pomoću Arduina i izgradnje strukture Kristalne kuće

Korak 1: Dijelovi, alati, potrošni materijal

  • Sklopljeno pero Huzzah ESP8266 (dva)
  • Perma-Proto ploča veličine pola (dvije)
  • Litijeva baterija -3,7 1200mAh (dvije)
  • Mini prekidač za uključivanje/isključivanje (četiri)
  • Mini gumb NeoPixel (četiri)
  • Breadboard Wire
  • Lemilica i lemljenje
  • Skidač žice
  • Alat iz treće ruke
  • Kvadratni drveni štap
  • Akrilni lim
  • Bistri kristalni kamen
  • Prozirni papir
  • super ljepilo

Korak 2: Dijagram i kod

Dijagram i kod
Dijagram i kod

// Primjer koda klase Interneta instrukcija koje se može uputiti // Kombiniranje ulaza i izlaza // Dva gumba šalju naredbe na AIO feed // LED i vibracijski motor (ili bilo koji digitalni izlaz) flah/zujanje prema podacima feeda // // Izmijenila Becky Stern 2017 // temeljeno na primjerima iz Adafruit IO Arduino knjižnice: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit ulaže vrijeme i resurse pružajući ovaj otvoreni izvorni kod. // Molimo vas da podržite Adafruit i hardver otvorenog koda kupnjom // proizvoda od Adafruit! // // Napisao Todd Treece za Adafruit Industries // Autorska prava (c) 2016 Adafruit Industries // Licencirano pod licencom MIT -a. // // Sav gornji tekst mora biti uključen u bilo kakvu preraspodjelu. #uključi

  1. #define NeoPIN1 15

    // Parametar 1 = broj piksela u traci // Parametar 2 = Arduino broj pina (većina je ispravna) // Parametar 3 = zastavice tipa piksela, zbrajajte se prema potrebi: // NEO_KHZ800 800 KHz bitstream (većina proizvoda NeoPixel w/WS2812 LED diode) // NEO_KHZ400 400 KHz (klasični 'v1' (ne v2) FLORA pikseli, upravljački programi WS2811) // NEO_GRB Pikseli su ožičeni za GRB bitstream (većina proizvoda NeoPixel) // NEO_RGB Pikseli su ožičeni za RGB bitstream (v1 FLORA piksela, nije v2) // NEO_RGBW Pikseli su ožičeni za RGBW tok bitova (NeoPixel RGBW proizvodi) Adafruit_NeoPixel traka = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

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

    / posjetite io.adafruit.com ako trebate stvoriti račun, // ili ako vam je potreban vaš Adafruit IO ključ. #define IO_USERNAME "Vaše korisničko ime" #define IO_KEY "Vaš IO_KEY"

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

    #define WIFI_SSID "Vaš WiFi" #define WIFI_PASS "Vaša lozinka"

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

    /************************ Glavni kod počinje ovdje ********************* **********/

    #include #include #include #include

    // #define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // #define MOTOR_PIN 5 // ovom pinu je potrebna PWM sposobnost

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

    // postavljanje 'digitalnog' feeda AdafruitIO_Feed *command = io.feed ("naredba"); AdafruitIO_Feed *naredba2 = io.feed ("naredba2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicijaliziranje svih piksela na "isključeno" // postavljanje pinova gumba kao ulaze s unutarnjim pull-up otpornikom pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // LED pin i pin motora postavite kao digitalne izlaze // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // pokretanje serijske veze Serial.begin (115200);

    // povezivanje s io.adafruit.com Serial.print ("Spajanje na Adafruit IO"); io.connect (); // postavljanje rukovatelja porukama za feed 'naredbe'. // funkcija handleMessage (definirana u nastavku) // bit će pozvana kad god se poruka // primi od adafruit io. naredba-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // čekamo vezu while (io.status () <AIO_CONNECTED) {Serial.print ("."); kašnjenje (500); }

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

    // pobrinite se da svi izvori odmah dobiju svoje trenutne vrijednosti command-> get (); command2-> get (); }

    void loop () {{100} {101}

    // io.run (); je potrebno za sve skice. // uvijek bi trebao biti na vrhu vaše petlje // funkcije. održava klijenta spojenim na // io.adafruit.com i obrađuje sve dolazne podatke. io.run ();

    // zgrabite trenutno stanje gumba. // moramo preokrenuti logiku jer // koristimo 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; }

    // vraćamo ako se vrijednost nije promijenila if (button1current == button1last && button2current == button2last) return;

    // sprema trenutno stanje u 'digitalni' feed na adafruit io Serial.print ("status tipke za slanje 1 ->"); Serial.println (button1current); naredba-> spremi (button1struja);

    // sprema trenutno stanje u 'digitalni' feed na adafruit io Serial.print ("status tipke za slanje 2 ->"); Serial.println (button2current); command2-> spremi (button2current);

    // spremi stanje zadnjeg gumba button1last = button1current; button2last = button2current; }

    // ova funkcija se poziva kad god se primi poruka 'naredbe' // od Adafruit IO -a. bio je priložen // feedu naredbi u gornjoj funkciji setup (). void handleButton1 (podaci AdafruitIO_Data *) {

    int naredba = podaci-> toInt ();

    if (naredba == 1) {// svijetli prvi piksel Serial.print ("primljeno od naredbe (gumb 1) <-"); Serial.println (naredba); // analogWrite (MOTOR_PIN, 200); // odgoda (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Žuta traka.show (); } else {Serial.print ("primljeno iz naredbe (gumb 1) <-"); Serial.println (naredba); strip.setPixelColor (0, strip. Color (0, 0, 0)); // isključeno strip.show (); }} // ova funkcija se poziva kad god se primi poruka 'naredbe' // od Adafruit IO -a. pripojen je // feedu naredbi u gornjoj funkciji setup (). void handleButton2 (podaci AdafruitIO_Data *) {

    int naredba2 = podaci-> toInt ();

    if (command2 == 1) {// svijetli prvi piksel Serial.print ("primljeno od command2 (gumb 2) <-"); Serial.println (naredba2); // analogWrite (MOTOR_PIN, 200); // odgoda (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Žuta traka.show (); } else {Serial.print ("primljeno od naredbe2 (gumb 2) <-"); Serial.println (naredba2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // isključeno strip.show (); }}

Korak 3: Konstrukcija kruga od prototipa do lemljenja

Konstrukcija kruga od prototipa do lemljenja
Konstrukcija kruga od prototipa do lemljenja
Konstrukcija kruga od prototipa do lemljenja
Konstrukcija kruga od prototipa do lemljenja

Potičem vas da isprobate ploču za testiranje kruga. Budući da gradimo dva uređaja, mogli bismo testirati na dvije ploče. Lemio sam Neopixel i gumb za uključivanje / isključivanje na žicu za izradu prototipa jer je lakša za upotrebu. Kasnije možete jednostavno spajati žice za izradu prototipova.

Nakon što uspijemo s prototipnim krugom, vrijeme je za izgradnju našeg pravog kruga. Koristim Perma-proto ploču s opcijama jer je manja i veza kruga bit će mnogo bolja od sklopa za izradu prototipova. Što se tiče lemljenja, potrebno je puno strpljenja. Ne odustaj još! Stižeš tamo!

Nakon što završite svoj krug i učitate kôd u svoj ESP8266, dva uređaja bi trebala raditi kako smo spomenuli na početku.

Korak 4: Oblik i materijal

Oblik i materijal
Oblik i materijal
Oblik i materijal
Oblik i materijal
Oblik i materijal
Oblik i materijal
Oblik i materijal
Oblik i materijal

Sada napravimo našu Kristalnu kuću!

Drveni štap izrežite na 6 inča. Trebamo ukupno 18 komada. Budući da želim neke varijacije od ove dvije kristalne kuće, upotrijebio sam 7 komada u jednom i 9 komada u drugom. Zalijepite komade u okvir kutije. Izrezao sam dva akrilna lima na 6 x 6 inča i zalijepio ih na dno Kristalnih kućica.

Nakon što dovršite strukturu kuća. Ukrasimo kuće! Izrezao sam komad prozirnog papira u boji i zalijepio ih na akrilni list. Nakon toga sam upotrijebio neke prozirne plastične kristale i zalijepio ih na podlogu. Budući da na dnu kristala imam prozirni papir u boji, kristali se reflektiraju u različitim bojama.

Korak 5: Koristimo sada kristalne kuće

Koristimo sada Kristalne kuće
Koristimo sada Kristalne kuće
Koristimo sada Kristalne kuće
Koristimo sada Kristalne kuće

Dajte svom voljenom kristalnu kuću koju ste napravili. Recite im da su važni! Vanjsku strukturu uvijek možete promijeniti različitim materijalima i bojama. Javi mi kako ide!

Preporučeni: