Taula de continguts:

Crystal House: 5 passos
Crystal House: 5 passos

Vídeo: Crystal House: 5 passos

Vídeo: Crystal House: 5 passos
Vídeo: #shorts Beginner's friendly bracelet making.Jewelry Making useful & easy. 2024, De novembre
Anonim
Image
Image
Casa de Cristall
Casa de Cristall

Les parelles i les famílies separades a causa de la llarga distància solen sentir l’enyorança de la connexió. Crystal House està dissenyat perquè les parelles i les famílies es connectin entre elles mitjançant llums. Crystal Houses està connectada amb senyals wifi. Quan premeu el botó d’una Crystal House, els llums de l’altra Crystal House reben el senyal i s’encenen. És fàcil i divertit de fer! Aniré passant pas a pas des dels materials / eines utilitzats, construint / provant circuits amb Arduino i construint l’estructura de la Crystal House

Pas 1: peces, eines i subministraments

  • Ploma muntada Huzzah ESP8266 (dos)
  • Perma-Proto Taula de pa de mida mitjana (dues)
  • Bateria de liti -3,7 1200 mAh (dos)
  • Mini interruptor de botó d'encès / apagat (quatre)
  • Mini botó NeoPixel (quatre)
  • Fil de tauler de pa
  • Soldador i soldador
  • Decapant de filferro
  • Eina de tercera mà
  • Pal de fusta quadrat
  • Full acrílic
  • Pedra de vidre transparent
  • Paper transparent
  • Super cola

Pas 2: Diagrama i codi del circuit

Diagrama i codi del circuit
Diagrama i codi del circuit

// Codi de mostra de la classe d'Internet de les coses instructables // Combinació d'entrades i sortides // Dos botons envien ordres a l'alimentació AIO // LED i motor vibrant (o qualsevol sortida digital) flah / buzz segons les dades d'alimentació // // Modificat per Becky Stern 2017 // basat en exemples de la biblioteca Adafruit IO Arduino: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit inverteix temps i recursos proporcionant aquest codi de codi obert. // Suporteu Adafruit i el maquinari de codi obert comprant // productes d'Adafruit. // // Escrit per Todd Treece per a Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Llicenciat sota la llicència MIT. // // Tot el text anterior s’ha d’incloure a qualsevol redistribució. #incloure

  1. #define NeoPIN1 15

    // Paràmetre 1 = nombre de píxels a la tira // Paràmetre 2 = número de pin Arduino (la majoria són vàlids) // Paràmetre 3 = indicadors de tipus de píxel, afegiu-los segons sigui necessari: // NEO_KHZ800 800 KHz bitstream (la majoria de productes NeoPixel amb WS2812 LED) // NEO_KHZ400 400 KHz (clàssics 'v1' (no v2) píxels FLORA, controladors WS2811) // Els píxels NEO_GRB estan connectats per al flux de bits GRB (la majoria dels productes NeoPixel) // Els píxels NEO_RGB estan connectats per al flux de bits RGB (v1 píxels FLORA, no v2) // NEO_RGBW Els píxels estan connectats per a flux de bits RGBW (productes NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    / ************************ Configuració d'Adafruit IO ********************** *********

    / visiteu io.adafruit.com si necessiteu crear un compte, // o si necessiteu la vostra clau d'Adafruit IO. #define IO_USERNAME "El vostre nom d'usuari" #define IO_KEY "El vostre IO_KEY"

    / ******************************** Configuració WIFI *************** *********************** /

    #define WIFI_SSID "Your wifi" #define WIFI_PASS "Your password"

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

    / ************************ El codi principal comença aquí ********************* ********** /

    #include #include #include #include

    // # define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // # define MOTOR_PIN 5 // aquest pin necessita capacitat PWM

    // estat del botó int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // configureu el feed 'digital' AdafruitIO_Feed * ordre = io.feed ("ordre"); AdafruitIO_Feed * command2 = io.feed ("command2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicialitzeu tots els píxels a "apagat" // configureu els pins dels botons com a entrades amb pinMode de la resistència de tracció interna (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // definiu el pin LED i el motor com a sortides digitals // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // iniciar la connexió sèrie Serial.begin (115200);

    // connectar-se a io.adafruit.com Serial.print ("Connexió a Adafruit IO"); io.connect (); // configureu un gestor de missatges per al feed "ordre". // la funció handleMessage (definida a continuació) // es cridarà sempre que // es rebi un missatge de adafruit io. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // espera una connexió mentre (io.status () <AIO_CONNECTED) {Serial.print ("."); retard (500); }

    // estem connectats Serial.println (); Serial.println (io.statusText ());

    // assegureu-vos que tots els canals obtinguin els seus valors actuals immediatament command-> get (); command2-> get (); }

    bucle buit () {

    // io.run (); és obligatori per a tots els esbossos. // sempre ha d'estar present a la part superior del vostre bucle // funció. manté el client connectat a // io.adafruit.com i processa les dades entrants. io.run ();

    // agafa l’estat actual del botó. // hem de capgirar la lògica perquè // fem servir INPUT_PULLUP. if (digitalRead (BUTTON1_PIN) == BAIX) {button1current = 1; } if (digitalRead (BUTTON2_PIN) == BAIX) {button2current = 1; } if (digitalRead (BUTTON2_PIN) == HIGH && digitalRead (BUTTON1_PIN) == HIGH) {button1current = 0; botó2actual = 0; }

    // torna si el valor no ha canviat si (button1current == button1last && button2current == button2last) torna;

    // deseu l'estat actual al feed 'digital' a adafruit io Serial.print ("estat del botó d'enviament 1 ->"); Serial.println (botó1actual); ordre-> desa (botó1actual);

    // deseu l'estat actual al feed 'digital' a adafruit io Serial.print ("estat del botó d'enviament 2 ->"); Serial.println (button2current); ordre2-> desa (botó2actual);

    // emmagatzema l’estat del darrer botó button1last = button1current; button2last = botó2actual; }

    // aquesta funció es crida sempre que es rep un missatge d'ordres // d'Adafruit IO. es va adjuntar a // el canal d'ordres de la funció setup () anterior. void handleButton1 (dades AdafruitIO_Data *) {

    int command = data-> toInt ();

    if (ordre == 1) {// il·lumina el primer píxel Serial.print ("rebut de l'ordre (botó 1) <-"); Serial.println (ordre); // analogWrite (MOTOR_PIN, 200); // retard (500); // analogWrite (MOT_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Franja groga.show (); } else {Serial.print ("rebut de l'ordre (botó 1) <-"); Serial.println (ordre); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // aquesta funció s'anomena sempre que es rep un missatge de "comanda" // d'Adafruit IO. es va adjuntar a // el canal d'ordres de la funció setup () anterior. void handleButton2 (dades AdafruitIO_Data *) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// il·lumina el primer píxel Serial.print ("rebut de l'ordre2 (botó 2) <-"); Serial.println (ordre2); // analogWrite (MOTOR_PIN, 200); // retard (500); // analogWrite (MOT_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Franja groga.show (); } else {Serial.print ("rebut de l'ordre2 (botó 2) <-"); Serial.println (ordre2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Pas 3: construcció del circuit del prototip a soldat

Construcció de circuits del prototip al soldat
Construcció de circuits del prototip al soldat
Construcció de circuits del prototip al soldat
Construcció de circuits del prototip al soldat

Us animo a provar una taula de proves per provar el circuit. Com que estem construint dos dispositius, podríem provar-los en dos taulers de suport. He soldat el Neopixel i el botó on.off a un cable de prototipat, ja que és més fàcil d’utilitzar. Més endavant, podeu soldar fàcilment els cables de prototipatge.

Després de tenir èxit amb el circuit de prototipatge, és hora de construir el nostre circuit real. Estic fent servir la placa de protecció Perma-proto, ja que és més petita i la connexió del circuit serà molt millor que el circuit de prototipatge. Quan es tracta de soldar, requereix molta paciència. No et rendeixis encara! Ja hi arribeu!

Un cop hàgiu acabat el circuit i hàgiu carregat el codi al vostre ESP8266, els dos dispositius haurien de funcionar tal com hem esmentat al principi.

Pas 4: formulari i material

Forma i material
Forma i material
Forma i material
Forma i material
Forma i material
Forma i material
Forma i material
Forma i material

Ara fem la nostra Crystal House!

Talleu el pal de fusta a 6 polzades. Necessitem 18 peces en total. Com que vull algunes variacions d’aquestes dues cases de vidre, he utilitzat 7 peces en una i 9 peces en l’altra. Enganxeu les peces a una estructura de caixa. Vaig tallar dues làmines acríliques de 6 per 6 polzades i les vaig enganxar a la part inferior de les cases de vidre.

Un cop acabi l'estructura de les cases. Decorem les cases! Vaig tallar un tros de paper transparent de colors i els vaig enganxar al full acrílic. Després d’això, he utilitzat uns cristalls de plàstic transparent i els he enganxat a la base. Com que tinc un paper de color transparent a la part inferior dels cristalls, els cristalls es reflecteixen a diferents colors.

Pas 5: Ara fem servir les cases de vidre

Ara fem servir les cases de vidre
Ara fem servir les cases de vidre
Ara fem servir les cases de vidre
Ara fem servir les cases de vidre

Dóna a la teva estimada la casa de vidre que has fet. Digueu-los que són importants. Sempre podeu modificar l’estructura exterior amb diferents materials i colors. Feu-me saber com va!

Recomanat: