Inhoudsopgave:
- Stap 1: Onderdelen, gereedschappen, benodigdheden
- Stap 2: Schakelschema en code
- Stap 3: Circuitconstructie van prototype tot gesoldeerd
- Stap 4: Vorm en materiaal
- Stap 5: Laten we nu de kristallen huizen gebruiken
Video: Crystal House: 5 stappen
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
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
// 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
-
#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
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
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
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:
Smart Crystal Light String - Ajarnpa
Smart Crystal Light String: Terwijl Kerstmis nadert en ik volledig onderzoek doe naar doe-het-zelf-domotica en slimme objecten, heb ik dit jaar besloten om te proberen een slimme, mooi ogende RGB-lichtstring te maken. Ik heb veel onderzoek gedaan naar doe-het-zelf-oplossingen rond het web, aan de ene kant wat pr
Green House-automatisering: 11 stappen
Green House Automation: Greenhouse-automatisering is een project waarbij drie parameters van een kas, namelijk bodemvocht, temperatuur & Vochtigheid, wordt door de gebruiker op afstand gecontroleerd door simpelweg een webbrowser te gebruiken
Projectoverzicht Crystal Ball: 10 stappen
Crystal Ball Project Overzicht: Deze instructable is gemaakt om te voldoen aan de projectvereiste van de Makecourse aan de Universiteit van Zuid-Florida (www.makecourse.com) Mijn Crystal Ball-project is een combinatie van het Mattel-speelgoed uit de jaren 1950, de Magic Eight-ball en een fortuin tel
Prullenbak naar Crystal Chamber: 7 stappen
Prullenbak naar Crystal Chamber: In een melkwegstelsel niet zo ver weg, was er een maker met te veel afval om hem heen. Dus besloot hij iets geweldigs, ongelooflijks… en best cool te maken. Elke maker heeft één probleem: te veel dingen die hij niet kan weggooien, omdat
Mystic Crystal Ball (het vertelt je letterlijk je fortuin!): 3 stappen (met afbeeldingen)
Mystic Crystal Ball (Het vertelt je letterlijk je fortuin!): Leer hoe je een waarzeggerij maakt die je toekomst onthult wanneer je hem aanraakt! Het project bestaat uit drie basisonderdelen en kan in ongeveer vier uur worden gebouwd. Materialen:1. Capacitieve aanraaksensor: 1 - Arduino Uno Microcontroller 1