Obsah:

Crystal House: 5 kroků
Crystal House: 5 kroků

Video: Crystal House: 5 kroků

Video: Crystal House: 5 kroků
Video: Zavřete oči a poslouchejte 😂😂😂 2024, Červenec
Anonim
Image
Image
Crystal House
Crystal House

Páry a rodiny, které jsou kvůli velké vzdálenosti odloučeny, často pociťují touhu po spojení. Crystal House je postaven pro páry a rodiny, aby se navzájem propojili pomocí světel. Crystal Houses jsou propojeny wifi signály. Když stisknete tlačítko na jednom Crystal House, ostatní světla Crystal House přijmou signál a zapnou se. Je to snadné a zábavné! Budu procházet krok za krokem od použitých materiálů/nástrojů, budování/testování obvodu pomocí Arduina a budování struktury Crystal House

Krok 1: Díly, nástroje, spotřební materiál

  • Smontované peří Huzzah ESP8266 (dvě)
  • Poloviční prkénko Perma-Proto (dvě)
  • Lithiová baterie -3,7 1200 mAh (dvě)
  • Mini zapínací/vypínací tlačítkový spínač (čtyři)
  • Mini tlačítko NeoPixel (čtyři)
  • Breadboard Wire
  • Páječka a páječka
  • Odstraňovač drátů
  • Nástroj z třetí ruky
  • Čtvercová dřevěná tyč
  • Akrylový list
  • Čistý křišťálový kámen
  • Průhledný papír
  • super lepidlo

Krok 2: Schéma zapojení a kód

Schéma zapojení a kód
Schéma zapojení a kód

// Instructables Internet of Things Ukázkový kód třídy // Kombinace vstupů a výstupů // Dvě tlačítka odesílají příkazy do kanálu AIO // LED a vibrační motor (nebo jakýkoli digitální výstup) flah/buzz podle dat kanálu // // Upraveno Becky Stern 2017 // na základě příkladů z Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit investuje čas a prostředky poskytováním tohoto otevřeného zdrojového kódu. // Podporujte prosím Adafruit a hardware s otevřeným zdrojovým kódem nákupem // produktů od Adafruit! // // Napsal Todd Treece pro Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Licencováno pod licencí MIT. // // Veškerý výše uvedený text musí být součástí jakékoli redistribuce. #zahrnout

  1. #define NeoPIN1 15

    // Parametr 1 = počet pixelů v pásu // Parametr 2 = Počet pinů Arduina (většina je platná) // Parametr 3 = příznaky typu pixelu, sčítejte podle potřeby: // NEO_KHZ800 bitový tok 800 KHz (většina produktů NeoPixel s WS2812 LED diody) // NEO_KHZ400 400 KHz (klasické 'v1' (ne v2) pixely FLORA, ovladače WS2811) // NEO_GRB Pixely jsou zapojeny pro bitový tok GRB (většina produktů NeoPixel) // Pixely NEO_RGB jsou zapojeny pro bitový tok RGB (pixely v1 FLORA, ne v2) // NEO_RGBW Pixely jsou zapojeny pro bitový tok RGBW (produkty NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Konfigurace IO Adafruit ********************* *********

    / navštivte io.adafruit.com, pokud si potřebujete vytvořit účet, // nebo pokud potřebujete svůj klíč Adafruit IO. #define IO_USERNAME "Vaše uživatelské jméno" #define IO_KEY "Vaše IO_KEY"

    /******************************* Konfigurace WIFI **************** *********************/

    #define WIFI_SSID „Vaše wifi“#define WIFI_PASS „Vaše heslo“

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

    /************************* Hlavní kód začíná zde ******************** **********/

    #include #include #include #include

    // #define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // #define MOTOR_PIN 5 // tento pin potřebuje PWM

    // stav tlačítka int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // nastavit 'digitální' feed AdafruitIO_Feed *command = io.feed ("příkaz"); AdafruitIO_Feed *command2 = io.feed ("command2");

    neplatné nastavení () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicializace všech pixelů na 'off' // nastavení kolíků tlačítek jako vstupů s interním pull-up rezistorem pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // nastavit pin LED a kolík motoru jako digitální výstupy // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, VÝSTUP);

    // spusťte sériové připojení Serial.begin (115200);

    // připojení k serveru io.adafruit.com Serial.print ("Připojení k Adafruit IO"); io.connect (); // nastavení obsluhy zpráv pro kanál 'příkaz'. // funkce handleMessage (definovaná níže) // bude volána vždy, když je // přijata zpráva z adafruit io. příkaz-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // počkejte na připojení while (io.status () <AIO_CONNECTED) {Serial.print ("."); zpoždění (500); }

    // jsme připojeni Serial.println (); Serial.println (io.statusText ());

    // zajistěte, aby všechny kanály okamžitě dostaly své aktuální hodnoty command-> get (); command2-> get (); }

    prázdná smyčka () {

    // io.run (); je vyžadován pro všechny skici. // vždy by měl být přítomen v horní části funkce smyčky //. udržuje klienta připojeného k // io.adafruit.com a zpracovává veškerá příchozí data. io.run ();

    // uchopte aktuální stav tlačítka. // musíme převrátit logiku, protože // používáme 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; }

    // návrat, pokud se hodnota nezměnila, pokud (button1current == button1last && button2current == button2last) return;

    // uložení aktuálního stavu do 'digitálního' feedu na adafruit io Serial.print ("stav tlačítka odeslání 1 ->"); Serial.println (button1current); příkaz-> uložit (button1current);

    // uložení aktuálního stavu do 'digitálního' feedu na adafruit io Serial.print ("stav tlačítka odeslání 2 ->"); Serial.println (button2current); command2-> save (button2current);

    // uložení posledního stavu tlačítka button1last = button1current; button2last = button2current; }

    // tato funkce je volána vždy, když je z Adafruit IO přijata zpráva 'příkazu //. bylo připojeno k // příkazovému kanálu ve funkci setup () výše. void handleButton1 (data AdafruitIO_Data *) {

    int příkaz = data-> toInt ();

    if (příkaz == 1) {// rozsvítí první pixel Serial.print ("přijato z příkazu (tlačítko 1) <-"); Serial.println (příkaz); // analogWrite (MOTOR_PIN, 200); // zpoždění (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Žlutý proužek.show (); } else {Serial.print ("přijato z příkazu (tlačítko 1) <-"); Serial.println (příkaz); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // tato funkce je volána vždy, když je od Adafruit IO přijata zpráva 'příkazu //. bylo připojeno k // příkazovému kanálu ve funkci setup () výše. void handleButton2 (data AdafruitIO_Data *) {

    int příkaz2 = data-> toInt ();

    if (command2 == 1) {// rozsvítí první pixel Serial.print ("přijato z příkazu2 (tlačítko 2) <-"); Serial.println (příkaz2); // analogWrite (MOTOR_PIN, 200); // zpoždění (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Žlutý proužek.show (); } else {Serial.print ("přijato z příkazu2 (tlačítko 2) <-"); Serial.println (příkaz2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Krok 3: Stavba obvodu od prototypu k pájenému

Stavba obvodu od prototypu k pájenému
Stavba obvodu od prototypu k pájenému
Stavba obvodu od prototypu k pájenému
Stavba obvodu od prototypu k pájenému

Doporučil bych vám vyzkoušet na prkénku a otestovat obvod. Protože stavíme dvě zařízení, mohli jsme testovat na dvou prkénkách. Neopixel a tlačítko on.off jsem připájel k prototypovacímu drátu, protože jeho použití je snazší. Později můžete prototypovací dráty snadno pájet.

Poté, co uspějeme s prototypovacím obvodem, je čas postavit náš skutečný obvod. Používám prkénko Perma-proto, protože je menší a připojení obvodu bude mnohem lepší než obvod prototypů. Pokud jde o pájení, vyžaduje to hodně trpělivosti. Ještě to nevzdávej! Dostáváte se tam!

Jakmile dokončíte obvod a nahrajete kód do svého ESP8266, obě zařízení by měla fungovat, jak jsme zmínili na začátku.

Krok 4: Forma a materiál

Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál
Forma a materiál

Nyní vytvoříme náš Crystal House!

Nakrájejte dřevěnou tyč na 6 palců. Potřebujeme celkem 18 kusů. Protože chci od těchto dvou krystalových domů nějakou variaci, použil jsem 7 kusů v jednom a 9 kusů v druhém. Nalepte dílky do krabicové konstrukce. Vystřihl jsem dva akrylové listy na 6 x 6 palců a vlepil je do spodní části Krystalových domů.

Jakmile dokončíte strukturu domů. Pojďme vyzdobit domy! Odstřihl jsem kousek průhledného barevného papíru a nalepil je na akrylový list. Poté jsem použil několik čirých plastových krystalů a nalepil je na základnu. Protože mám ve spodní části krystalů průhledný barevný papír, krystaly se odrážejí do různých barev.

Krok 5: Nyní použijme krystalové domy

Nyní použijme krystalové domy
Nyní použijme krystalové domy
Nyní použijme krystalové domy
Nyní použijme krystalové domy

Darujte svému milovanému krystalový dům, který jste vyrobili. Řekněte jim, že jsou důležití! Vnější strukturu můžete kdykoli upravit pomocí různých materiálů a barev. Dej mi vědět jak to jde!

Doporučuje: