Inhoudsopgave:

Crystal House: 5 stappen
Crystal House: 5 stappen

Video: Crystal House: 5 stappen

Video: Crystal House: 5 stappen
Video: 5000 STEPS IN 30 MIN AT HOME | Do it twice to get 10000 STEPS | Weight Loss Workout | NO JUMPING 2024, Juli-
Anonim
Image
Image
Kristallen huis
Kristallen huis

Koppels en gezinnen die vanwege de lange afstand uit elkaar zijn, voelen vaak het verlangen naar verbinding. Crystal House is gebouwd voor stellen en gezinnen om met elkaar in contact te komen door middel van verlichting. Crystal Houses zijn verbonden met wifi-signalen. Wanneer je op de knop van het ene Crystal House drukt, ontvangen de lichten van het andere Crystal House het signaal en gaan ze aan. Het is makkelijk en leuk om te maken! Ik zal stap voor stap door de gebruikte materialen / gereedschappen gaan, een circuit bouwen / testen met Arduino en de structuur van het Crystal House bouwen

Stap 1: Onderdelen, gereedschappen, benodigdheden

  • Geassembleerde Veer Huzzah ESP8266 (twee)
  • Perma-Proto Half-sized breadboard (twee)
  • Lithiumbatterij -3.7 1200mAh (twee)
  • Mini aan/uit-drukknopschakelaar (vier)
  • NeoPixel-miniknop (vier)
  • Breadboard draad
  • Soldeerbout en soldeer
  • Draadstripper
  • Hulpmiddel uit de derde hand
  • Vierkante houten stok
  • Acrylplaat
  • Heldere kristallen steen
  • Transparant papier
  • superlijm

Stap 2: Schakelschema en code

Schakelschema en code
Schakelschema en code

// Instructables Internet of Things Class-voorbeeldcode// Combineren van in- en uitgangen // Twee drukknoppen sturen commando's naar AIO-feed // LED en vibrerende motor (of een digitale uitgang) knipperen/zoemen volgens feedgegevens // // Aangepast door Becky Stern 2017 // gebaseerd op voorbeelden uit Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit investeert tijd en middelen om deze open source code te leveren. // Ondersteun Adafruit en open source hardware door // producten van Adafruit te kopen! // // Geschreven door Todd Treece voor Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Gelicentieerd onder de MIT-licentie. // // Alle bovenstaande tekst moet worden opgenomen in elke herdistributie. #erbij betrekken

  1. #define NeoPIN1 15

    // Parameter 1 = aantal pixels in strip // Parameter 2 = Arduino-pinnummer (de meeste zijn geldig) // Parameter 3 = vlaggen van het pixeltype, indien nodig bij elkaar optellen: // NEO_KHZ800 800 KHz bitstream (de meeste NeoPixel-producten met WS2812 LED's) // NEO_KHZ400 400 KHz (klassiek 'v1' (niet v2) FLORA-pixels, WS2811-stuurprogramma's) // NEO_GRB Pixels zijn bedraad voor GRB-bitstream (de meeste NeoPixel-producten) // NEO_RGB Pixels zijn bedraad voor RGB-bitstream (v1 FLORA-pixels, niet v2) // NEO_RGBW Pixels zijn bedraad voor RGBW-bitstream (NeoPixel RGBW-producten) Adafruit_NeoPixel strip = Adafruit_NeoPixel(2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************* Adafruit IO-configuratie ********************* *******

    / bezoek io.adafruit.com als je een account moet aanmaken, // of als je je Adafruit IO-sleutel nodig hebt. #define IO_USERNAME "Uw gebruikersnaam" #define IO_KEY "Uw IO_KEY"

    /****************************** WIFI Configuratie **************** *********************/

    #define WIFI_SSID "Uw wifi" #define WIFI_PASS "Uw wachtwoord"

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

    /************************* Hoofdcode begint hier ******************** **********/

    #include #include #include #include

    //#define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 //#define MOTOR_PIN 5 // deze pin heeft PWM-mogelijkheden nodig

    // knop staat int button1current = 0; int knop1laatste = 0; int button2current = 0; int knop2laatste = 0;

    // stel de 'digitale' feed in AdafruitIO_Feed *command = io.feed("command"); AdafruitIO_Feed *command2 = io.feed("command2");

    void setup() { strip.setBrightness(60); strip.begin(); strip.show(); // Initialiseer alle pixels op 'uit' // stel knoppinnen in als ingangen met interne pull-up weerstand pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // stel led-pin en motorpin in als digitale uitgangen // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, UITGANG);

    // start de seriële verbinding Serial.begin (115200);

    // maak verbinding met io.adafruit.com Serial.print ("Verbinding maken met Adafruit IO"); io.connect(); // stel een berichthandler in voor de 'opdracht'-feed. // de handleMessage-functie (hieronder gedefinieerd) // wordt aangeroepen wanneer een bericht wordt // ontvangen van adafruit io. command->onMessage(handleButton1); command2->onMessage(handleButton2);

    // wacht op een verbinding while(io.status() <AIO_CONNECTED) {Serial.print("."); vertraging (500); }

    // we zijn verbonden Serial.println(); Serial.println(io.statusText());

    // zorg ervoor dat alle feeds meteen hun huidige waarden krijgen command->get(); command2->get(); }

    lege lus() {

    // io.run(); is vereist voor alle schetsen. // het moet altijd bovenaan je loop //-functie aanwezig zijn. het houdt de client verbonden met // io.adafruit.com en verwerkt alle inkomende gegevens. io.run();

    // pak de huidige status van de knop. // we moeten de logica omdraaien omdat we // INPUT_PULLUP gebruiken. if(digitalRead(BUTTON1_PIN) == LAAG){ button1current = 1; } if (digitalRead(BUTTON2_PIN) == LAAG){ button2current = 1; } if (digitalRead(BUTTON2_PIN) == HOOG && digitalRead(BUTTON1_PIN) == HOOG){ button1current = 0; knop2stroom = 0; }

    // return als de waarde niet is veranderd if(button1current == button1last && button2current == button2last) return;

    // sla de huidige status op in de 'digitale' feed op adafruit io Serial.print ("sending button 1 status -> "); Serial.println(knop1stroom); commando->opslaan(knop1huidig);

    // sla de huidige status op in de 'digitale' feed op adafruit io Serial.print ("verzendknop 2 status -> "); Serial.println(button2current); command2->save(button2current);

    // laatste knopstatus opslaan knop1last = knop1huidig; button2last = button2current; }

    // deze functie wordt aangeroepen wanneer een 'command'-bericht // wordt ontvangen van Adafruit IO. het was gekoppeld aan // de opdrachtfeed in de setup()-functie hierboven. void handleButton1 (AdafruitIO_Data * data) {

    int commando = data->toInt();

    if (opdracht == 1){ // licht op eerste pixel Serial.print("ontvangen van opdracht (knop 1) <- "); Serial.println(opdracht); // analoogWrite (MOTOR_PIN, 200); // vertraging (500); // analoogWrite (MOTOR_PIN, 0); strip.setPixelColor(0, strip. Color(200, 100, 0)); // Gele strip.show(); } else { Serial.print("ontvangen van opdracht (knop 1) <- "); Serial.println(opdracht); strip.setPixelColor(0, strip. Color(0, 0, 0)); // uit strip.show(); } } // deze functie wordt aangeroepen wanneer een 'command'-bericht // wordt ontvangen van Adafruit IO. het was gekoppeld aan // de opdrachtfeed in de setup()-functie hierboven. void handleButton2(AdafruitIO_Data *data) {

    int command2 = data->toInt();

    if (command2 == 1){ // verlicht eerste pixel Serial.print("ontvangen van command2 (knop 2) <- "); Seriële.println(opdracht2); // analoogWrite (MOTOR_PIN, 200); // vertraging (500); // analoogWrite (MOTOR_PIN, 0); strip.setPixelColor(1, strip. Color(255, 128, 128)); // Gele strip.show(); } else { Serial.print("ontvangen van command2 (knop 2) <- "); Serieel.println(commando2); strip.setPixelColor(1, strip. Color(0, 0, 0)); // uit strip.show(); } }

Stap 3: Circuitconstructie van prototype tot gesoldeerd

Circuitconstructie van prototype tot gesoldeerd
Circuitconstructie van prototype tot gesoldeerd
Circuitconstructie van prototype tot gesoldeerd
Circuitconstructie van prototype tot gesoldeerd

Ik zou je willen aanmoedigen om op een breadboard te proberen om het circuit te testen. Omdat we twee apparaten bouwen, kunnen we testen op twee breadboards. Ik heb de Neopixel en de aan.uit-knop aan een prototyping-draad gesoldeerd, omdat het gemakkelijker te gebruiken is. Later kun je de prototyping-draden er gemakkelijk af solderen.

Nadat we zijn geslaagd met het prototypecircuit, is het tijd om ons echte circuit te bouwen. Ik gebruik het Perma-proto-broodbord omdat het kleiner is en de verbinding van het circuit veel beter zal zijn dan het prototype-circuit. Als het op solderen aankomt, is veel geduld nodig. Geef nog niet op! Je komt er!

Zodra je je circuit hebt voltooid en de code naar je ESP8266 hebt geüpload, zouden de twee apparaten moeten werken zoals we in het begin vermeldden.

Stap 4: Vorm en materiaal

Vorm & Materiaal
Vorm & Materiaal
Vorm & Materiaal
Vorm & Materiaal
Vorm & Materiaal
Vorm & Materiaal
Vorm & Materiaal
Vorm & Materiaal

Laten we nu ons Crystal House maken!

Snijd de houten stok in 6 inch. We hebben in totaal 18 stuks nodig. Omdat ik wat variatie wil van deze twee kristallen huizen, heb ik 7 stuks in de ene en 9 stuks in de andere gebruikt. Lijm de stukken in een doosstructuur. Ik sneed twee acrylplaten tot 6 bij 6 inch en plakte ze in de bodem van de Crystal Houses.

Zodra u klaar bent met de structuur van de huizen. Laten we de huizen versieren! Ik sneed een stuk transparant gekleurd papier en plakte ze op de acrylplaat. Daarna heb ik wat doorzichtige plastic kristallen gebruikt en deze op de basis geplakt. Omdat ik een transparant gekleurd papier aan de onderkant van de kristallen heb, worden de kristallen gereflecteerd in verschillende kleuren.

Stap 5: Laten we nu de kristallen huizen gebruiken

Laten we nu de kristallen huizen gebruiken
Laten we nu de kristallen huizen gebruiken
Laten we nu de kristallen huizen gebruiken
Laten we nu de kristallen huizen gebruiken

Geef je geliefde het kristallen huis dat je hebt gemaakt. Vertel ze dat ze belangrijk zijn! U kunt de buitenstructuur altijd aanpassen met verschillende materialen en kleuren. Laat me weten hoe het gaat!

Aanbevolen: