Índice:

Crystal House: 5 etapas
Crystal House: 5 etapas

Vídeo: Crystal House: 5 etapas

Vídeo: Crystal House: 5 etapas
Vídeo: SimPure T1 5-Stage Under Sink Reverse Osmosis Water Filtration System Installation Tutorial 2024, Novembro
Anonim
Image
Image
Crystal House
Crystal House

Casais e famílias que estão separados devido à longa distância muitas vezes sentem o desejo de conexão. A Crystal House foi construída para casais e famílias se conectarem através de luzes. As Crystal Houses estão conectadas com sinais wi-fi. Quando você pressiona o botão em uma Crystal House, as outras luzes da Crystal House recebem o sinal e são ligadas. É fácil e divertido de fazer! Vou passar passo a passo dos materiais / ferramentas usados, construindo / testando o circuito usando o Arduino e construindo a estrutura da Casa de Cristal

Etapa 1: peças, ferramentas, suprimentos

  • Pena montada Huzzah ESP8266 (dois)
  • Placa de ensaio de meio tamanho Perma-Proto (dois)
  • Bateria de lítio -3,7 1200mAh (duas)
  • Mini botão liga / desliga (quatro)
  • Mini botão NeoPixel (quatro)
  • Fio de tábua de pão
  • Ferro de solda e solda
  • Descascador de fios
  • Ferramenta de terceira mão
  • Pau de madeira quadrada
  • Chapa acrílica
  • Pedra de cristal transparente
  • Papel transparente
  • Super cola

Etapa 2: Diagrama e código do circuito

Diagrama e código de circuito
Diagrama e código de circuito

// Código de amostra Instructables Internet of Things Class // Combinando entradas e saídas // Dois botões enviam comandos para a alimentação AIO // LED e motor vibratório (ou qualquer saída digital) flah / buzz de acordo com os dados de alimentação // // Modificado por Becky Stern 2017 // baseado em exemplos da Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit investe tempo e recursos fornecendo este código-fonte aberto. // Por favor, suporte Adafruit e hardware de código aberto comprando // produtos da Adafruit! // // Escrito por Todd Treece para Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Licenciado sob a licença MIT. // // Todo o texto acima deve ser incluído em qualquer redistribuição. #incluir

  1. # define NeoPIN1 15

    // Parâmetro 1 = número de pixels na faixa // Parâmetro 2 = número do pino Arduino (a maioria são válidos) // Parâmetro 3 = sinalizadores de tipo de pixel, somados conforme necessário: // NEO_KHZ800 800 KHz bitstream (a maioria dos produtos NeoPixel com WS2812 LEDs) // NEO_KHZ400 400 KHz (clássico 'v1' (não v2) pixels FLORA, drivers WS2811) // NEO_GRB Pixels são conectados para GRB bitstream (a maioria dos produtos NeoPixel) // NEO_RGB Pixels são conectados para RGB bitstream (v1 FLORA pixels, não v2) // NEO_RGBW Pixels são conectados para bitstream RGBW (produtos NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    / ************************** Configuração Adafruit IO ********************** *********

    / visite io.adafruit.com se precisar criar uma conta, // ou se precisar de sua chave Adafruit IO. #define IO_USERNAME "Seu nome de usuário" #define IO_KEY "Seu IO_KEY"

    / ********************************* Configuração WIFI **************** *********************** /

    #define WIFI_SSID "Seu wi-fi" #define WIFI_PASS "Sua senha"

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

    / ************************* O código principal começa aqui ********************** ********** /

    #include #include #include #include

    // # define LED_PIN 15 # define BUTTON1_PIN 4 # define BUTTON2_PIN 14 // # define MOTOR_PIN 5 // este pino precisa de capacidade PWM

    // estado do botão int button1current = 0; botão interno1último = 0; botão interno2 atual = 0; botão interno2último = 0;

    // configura o feed 'digital' AdafruitIO_Feed * command = io.feed ("command"); AdafruitIO_Feed * command2 = io.feed ("command2");

    configuração vazia () {strip.setBrightness (60); strip.begin (); strip.show (); // Inicializa todos os pixels para 'off' // define os pinos do botão como entradas com o resistor pull-up interno pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode (BUTTON2_PIN, INPUT_PULLUP); // define o pino do led e o pino do motor como saídas digitais // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // inicia a conexão serial Serial.begin (115200);

    // conecte-se a io.adafruit.com Serial.print ("Conectando-se a Adafruit IO"); io.connect (); // configure um manipulador de mensagens para o feed de 'comando'. // a função handleMessage (definida abaixo) // será chamada sempre que uma mensagem for // recebida de adafruit io. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // espera por uma conexão enquanto (io.status () <AIO_CONNECTED) {Serial.print ("."); atraso (500); }

    // estamos conectados Serial.println (); Serial.println (io.statusText ());

    // certifique-se de que todos os feeds obtenham seus valores atuais imediatamente command-> get (); command2-> get (); }

    void loop () {

    // io.run (); é necessário para todos os esboços. // deve sempre estar presente no topo de sua // função de loop. ele mantém o cliente conectado a // io.adafruit.com e processa todos os dados recebidos. io.run ();

    // captura o estado atual do botão. // temos que inverter a lógica porque estamos // usando 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; }

    // retorna se o valor não mudou if (button1current == button1last && button2current == button2last) return;

    // salva o estado atual para o feed 'digital' em adafruit io Serial.print ("send button 1 status ->"); Serial.println (button1current); comando-> salvar (button1current);

    // salva o estado atual para o feed 'digital' em adafruit io Serial.print ("send button 2 status ->"); Serial.println (button2current); command2-> save (button2current);

    // armazena o último estado do botão button1last = button1current; button2last = button2current; }

    // esta função é chamada sempre que uma mensagem de 'comando' // é recebida de Adafruit IO. ele foi anexado ao // feed de comando na função setup () acima. void handleButton1 (dados AdafruitIO_Data *) {

    comando int = dados-> toInt ();

    if (command == 1) {// acende o primeiro pixel Serial.print ("recebido do comando (botão 1) <-"); Serial.println (comando); // analogWrite (MOTOR_PIN, 200); // atraso (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Yellow strip.show (); } else {Serial.print ("recebido do comando (botão 1) <-"); Serial.println (comando); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // esta função é chamada sempre que uma mensagem de 'comando' // é recebida de Adafruit IO. ele foi anexado ao // feed de comando na função setup () acima. void handleButton2 (dados AdafruitIO_Data *) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// acende o primeiro pixel Serial.print ("recebido do command2 (botão 2) <-"); Serial.println (comando2); // analogWrite (MOTOR_PIN, 200); // atraso (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Yellow strip.show (); } else {Serial.print ("recebido do command2 (botão 2) <-"); Serial.println (comando2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Etapa 3: construção do circuito do protótipo à soldagem

Construção de circuito de protótipo a soldado
Construção de circuito de protótipo a soldado
Construção de circuito de protótipo a soldado
Construção de circuito de protótipo a soldado

Gostaria de encorajá-lo a experimentar uma placa de ensaio para testar o circuito. Como estamos construindo dois dispositivos, poderíamos testar em duas placas de ensaio. Soldei o Neopixel e o botão on.off a um fio de prototipagem, pois é mais fácil de usar. Mais tarde, você pode facilmente soldar os fios de prototipagem.

Depois de termos sucesso com o circuito de prototipagem, é hora de construir nosso circuito real. Estou usando a placa de ensaio Perma-proto porque ela é menor e a conexão do circuito será muito melhor do que o circuito de prototipagem. Quando se trata de solda, requer muito paciente. Não desista ainda! Você está chegando lá!

Depois de terminar o circuito e fazer o upload do código em seu ESP8266, os dois dispositivos devem funcionar como mencionamos no início.

Etapa 4: Formulário e Material

Formulário e Material
Formulário e Material
Formulário e Material
Formulário e Material
Formulário e Material
Formulário e Material
Formulário e Material
Formulário e Material

Agora vamos fazer nossa Casa de Cristal!

Corte o palito de madeira em 6 polegadas. Precisamos de 18 peças no total. Como quero alguma variação dessas duas casas de cristal, usei 7 peças em uma e 9 na outra. Cole as peças em uma estrutura de caixa. Cortei duas folhas de acrílico em 6 por 6 polegadas e colei-as na parte inferior das Casas de Cristal.

Assim que terminar a estrutura das casas. Vamos decorar as casas! Cortei um pedaço de papel colorido transparente e colei na folha de acrílico. Depois disso, usei alguns cristais de plástico transparente e colei na base. Como tenho um papel colorido transparente na parte inferior dos cristais, os cristais são refletidos em cores diferentes.

Etapa 5: agora vamos usar as casas de cristal

Agora vamos usar as casas de cristal
Agora vamos usar as casas de cristal
Agora vamos usar as casas de cristal
Agora vamos usar as casas de cristal

Dê ao seu amado a casa de cristal que você fez. Diga a eles que eles são importantes! Você sempre pode modificar a estrutura externa usando diferentes materiais e cores. Me diga como foi!

Recomendado: