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, Juli
Anonim
Image
Image
Crystal House
Crystal House

Parovi i porodice koji su razdvojeni zbog velike udaljenosti često osjećaju čežnju za povezivanjem. Kristalna kuća izgrađena je za parove i porodice koji se međusobno povezuju putem svjetla. Kristalne kuće povezane su wifi signalima. Kada pritisnete dugme na jednoj kristalnoj kući, druga svjetla 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/testiranja kruga pomoću Arduina i izgradnje strukture Kristalne kuće

Korak 1: Dijelovi, alati, potrošni materijal

  • Sklopljeno pero Huzzah ESP8266 (dva)
  • Perma-Proto matična ploča pola veličine (dvije)
  • Litijumska baterija -3.7 1200mAh (dva)
  • Mini prekidač za uključivanje/isključivanje (četiri)
  • Mini dugme 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

// Uputstva za Internet stvari stvari Primjerak koda klase // Kombiniranje ulaza i izlaza // Dva tipka šalju naredbe na AIO feed // LED i vibracijski motor (ili bilo koji digitalni izlaz) flah/zujanje prema podacima feeda // // Izmijenila Becky Stern 2017 // na temelju primjera iz Adafruit IO Arduino biblioteke: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit ulaže vrijeme i resurse pružajući ovaj otvoreni kod. // Molimo vas da podržite Adafruit i hardver otvorenog koda kupovinom // proizvoda od Adafruit! // // Napisao Todd Treece za Adafruit Industries // Autorska prava (c) 2016 Adafruit Industries // Licencirano pod MIT licencom. // // Sav gornji tekst mora biti uključen u bilo koju preraspodjelu. #include

  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 po potrebi: // NEO_KHZ800 800 KHz bitstream (većina NeoPixel proizvoda sa 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 NeoPixel proizvoda) // 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še 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 dugmeta int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

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

    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 sa io.adafruit.com Serial.print ("Povezivanje sa Adafruit IO"); io.connect (); // postavljanje rukovatelja porukama za 'naredbe' feed. // funkcija handleMessage (definirana dolje) // 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 trebalo biti prisutno na vrhu vaše petlje // funkcije. održava klijenta povezanim sa // io.adafruit.com i obrađuje sve dolazne podatke. io.run ();

    // hvatanje trenutnog stanja dugmeta. // 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 dugmeta 1 za slanje ->"); Serial.println (button1current); naredba-> spremi (button1current);

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

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

    // ova funkcija se poziva svaki put kada se primi 'naredbena' poruka // od Adafruit IO -a. pripojen je // feedu naredbi u gornjoj funkciji setup (). void handleButton1 (podaci AdafruitIO_Data *) {

    int naredba = podaci-> toInt ();

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

    int command2 = data-> toInt ();

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

Korak 3: Konstrukcija kola od prototipa do lemljenja

Konstrukcija kola od prototipa do lemljenja
Konstrukcija kola od prototipa do lemljenja
Konstrukcija kola od prototipa do lemljenja
Konstrukcija kola od prototipa do lemljenja

Preporučio bih vam da isprobate ploču za testiranje kola. Budući da gradimo dva uređaja, mogli bismo testirati na dvije ploče. Lemio sam Neopixel i dugme za uključivanje i isključivanje na žicu za izradu prototipa jer je lakša za upotrebu. Kasnije možete lako spajati žice prototipova.

Nakon što uspijemo sa prototipskim krugom, vrijeme je za izgradnju našeg stvarnog kola. Koristim Perma-proto matičnu ploču s obzirom da je manja i veza kruga bit će mnogo bolja od kruga prototipa. Što se tiče lemljenja, potrebno je puno strpljenja. Ne odustaj još! Stigli ste tamo!

Kada završite 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 u dno kristalnih kućica.

Kada završite sa strukturom kuća. Ukrasimo kuće! Odrezao 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

Poklonite 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čuje se: