Table des matières:

Maison de cristal : 5 étapes
Maison de cristal : 5 étapes

Vidéo: Maison de cristal : 5 étapes

Vidéo: Maison de cristal : 5 étapes
Vidéo: Comment Fabriquer Des CRISTAUX ! (Tuto Expérience) 2024, Juillet
Anonim
Image
Image
Maison de cristal
Maison de cristal

Les couples et les familles qui sont séparés en raison d'une longue distance ressentent souvent le désir de connexion. Crystal House est construit pour que les couples et les familles se connectent les uns aux autres grâce à des lumières. Les Crystal Houses sont connectées avec des signaux wifi. Lorsque vous appuyez sur le bouton d'une Crystal House, les lumières de l'autre Crystal House reçoivent le signal et s'allument. C'est facile et amusant à faire! Je vais passer en revue étape par étape les matériaux/outils utilisés, la construction/le circuit de test à l'aide d'Arduino et la construction de la structure de la Crystal House

Étape 1: Pièces, outils, fournitures

  • Plume assemblée Huzzah ESP8266 (deux)
  • Planche à pain Perma-Proto Demi-taille (deux)
  • Batterie au lithium -3.7 1200mAh (deux)
  • Mini interrupteur à bouton-poussoir marche/arrêt (quatre)
  • Mini bouton NeoPixel (quatre)
  • Fil de planche à pain
  • Fer à souder et soudure
  • Pince à dénuder
  • Outil de troisième main
  • Bâton de bois carré
  • Feuille acrylique
  • Pierre de cristal clair
  • Papier transparent
  • super colle

Étape 2: Schéma de circuit et code

Schéma de circuit et code
Schéma de circuit et code

// Exemple de code Instructables Internet of Things Class // Combinaison d'entrées et de sorties // Deux boutons-poussoirs envoient des commandes à l'alimentation AIO // LED et moteur vibrant (ou toute sortie numérique) flah/buzz selon les données d'alimentation // // Modifié par Becky Stern 2017 // basé sur des exemples de la bibliothèque Adafruit IO Arduino: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit investit du temps et des ressources pour fournir ce code open source. // Veuillez soutenir Adafruit et le matériel open source en achetant // des produits Adafruit ! // // Écrit par Todd Treece pour Adafruit Industries // Copyright (c) 2016 Adafruit Industries // Sous licence MIT. // // Tout le texte ci-dessus doit être inclus dans toute redistribution. #comprendre

  1. #définir NeoPIN1 15

    // Paramètre 1 = nombre de pixels dans la bande // Paramètre 2 = numéro de broche Arduino (la plupart sont valides) // Paramètre 3 = drapeaux de type de pixel, additionnez au besoin: // NEO_KHZ800 800 KHz bitstream (la plupart des produits NeoPixel avec WS2812 LED) // NEO_KHZ400 400 KHz (pixels FLORA classiques 'v1' (pas v2), drivers WS2811) // Les pixels NEO_GRB sont câblés pour le flux binaire GRB (la plupart des produits NeoPixel) // Les pixels NEO_RGB sont câblés pour le flux binaire RVB (pixels FLORA v1, pas v2) // Les pixels NEO_RGBW sont câblés pour le flux binaire RGBW (produits NeoPixel RGBW) Bande Adafruit_NeoPixel = Adafruit_NeoPixel(2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Configuration d'E/S d'Adafruit ************************ *********

    / visitez io.adafruit.com si vous devez créer un compte, // ou si vous avez besoin de votre clé IO Adafruit. #define IO_USERNAME "Votre nom d'utilisateur" #define IO_KEY "Votre IO_KEY"

    /************************************ Configuration WIFI ******************** *************************/

    #define WIFI_SSID "Votre wifi" #define WIFI_PASS "Votre mot de passe"

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

    /************************ Le code principal commence ici ********************* **********/

    #include #include #include #include

    //#define LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 //#define MOTOR_PIN 5 // cette broche nécessite une capacité PWM

    // état du bouton int button1current = 0; int button1last = 0; int bouton2courant = 0; int button2last = 0;

    // configurer le flux 'numérique' AdafruitIO_Feed *command = io.feed("command"); AdafruitIO_Feed *commande2 = io.feed("commande2");

    void setup() { strip.setBrightness(60); strip.begin(); strip.show(); // Initialiser tous les pixels sur "off" // définir les broches du bouton comme entrées avec la résistance de rappel interne pinMode (BUTTON1_PIN, INPUT_PULLUP); pinMode(BUTTON2_PIN, INPUT_PULLUP); // définir la broche led et la broche du moteur comme sorties numériques // pinMode(MOTOR_PIN, OUTPUT); // pinMode(LED_PIN, SORTIE);

    // démarre la connexion série Serial.begin(115200);

    // se connecte à io.adafruit.com Serial.print("Connexion à Adafruit IO"); io.connect(); // configure un gestionnaire de messages pour le flux 'commande'. // la fonction handleMessage (définie ci-dessous) // sera appelée chaque fois qu'un message est // reçu d'adafruit io. command->onMessage(handleButton1); command2->onMessage(handleButton2);

    // attend une connexion while(io.status() < AIO_CONNECTED) { Serial.print("."); retard (500); }

    // nous sommes connectés Serial.println(); Serial.println(io.statusText());

    // assurez-vous que tous les flux obtiennent immédiatement leurs valeurs actuelles command->get(); command2->get(); }

    boucle vide() {

    // io.run(); est requis pour tous les croquis. // il doit toujours être présent en haut de votre fonction // boucle. il maintient le client connecté à // io.adafruit.com et traite toutes les données entrantes. io.run();

    // récupère l'état actuel du bouton. // nous devons inverser la logique car nous // utilisons 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; bouton2courant = 0; }

    // retourne si la valeur n'a pas changé if(button1current == button1last && button2current == button2last) return;

    // enregistre l'état actuel dans le flux 'numérique' sur adafruit io Serial.print("sending button 1 status -> "); Serial.println(button1current); command->save(button1current);

    // enregistre l'état actuel dans le flux 'numérique' sur adafruit io Serial.print("sending button 2 status -> "); Serial.println(button2current); command2->save(button2current);

    // stocke le dernier état du bouton button1last = button1current; dernier bouton2 = bouton2courant; }

    // cette fonction est appelée chaque fois qu'un message de "commande" // est reçu d'Adafruit IO. il a été attaché // au flux de commandes dans la fonction setup() ci-dessus. void handleButton1(AdafruitIO_Data *données) {

    commande int = data->toInt();

    if (commande == 1){ // allume le premier pixel Serial.print ("reçu de la commande (bouton 1) <- "); Serial.println(commande); // analogWrite(MOTOR_PIN, 200); // retard (500); // analogWrite(MOTOR_PIN, 0); strip.setPixelColor(0, strip. Color(200, 100, 0)); // Bande jaune.show(); } else { Serial.print("reçu de la commande (bouton 1) <- "); Serial.println(commande); strip.setPixelColor(0, strip. Color(0, 0, 0)); // off strip.show(); } } // cette fonction est appelée chaque fois qu'un message de 'commande' // est reçu d'Adafruit IO. il a été attaché // au flux de commandes dans la fonction setup() ci-dessus. void handleButton2(AdafruitIO_Data *données) {

    int command2 = data->toInt();

    if (command2 == 1){ // allume le premier pixel Serial.print ("reçu de command2 (bouton 2) <- "); Serial.println(commande2); // analogWrite(MOTOR_PIN, 200); // retard (500); // analogWrite(MOTOR_PIN, 0); strip.setPixelColor(1, strip. Color(255, 128, 128)); // Bande jaune.show(); } else { Serial.print("reçu de command2 (bouton 2) <- "); Serial.println(commande2); strip.setPixelColor(1, strip. Color(0, 0, 0)); // off strip.show(); } }

Étape 3: Construction du circuit du prototype au soudage

Construction de circuits du prototype au soudé
Construction de circuits du prototype au soudé
Construction de circuits du prototype au soudé
Construction de circuits du prototype au soudé

Je vous encourage à essayer une maquette pour tester le circuit. Puisque nous construisons deux appareils, nous pourrions tester sur deux maquettes. J'ai soudé le Neopixel et le bouton on.off à un fil de prototypage car il est plus facile à utiliser. Plus tard, vous pouvez facilement souder les fils de prototypage.

Après avoir réussi avec le circuit de prototypage, il est temps de construire notre vrai circuit. J'utilise la maquette Perma-proto car elle est plus petite et la connexion du circuit sera bien meilleure que le circuit de prototypage. Quand il s'agit de souder, cela demande beaucoup de patience. N'abandonnez pas encore ! Vous y arrivez !

Une fois que vous avez terminé votre circuit et téléchargé le code dans votre ESP8266, les deux appareils devraient fonctionner comme nous l'avons mentionné au début.

Étape 4: Forme et matériel

Forme et matériel
Forme et matériel
Forme et matériel
Forme et matériel
Forme et matériel
Forme et matériel
Forme et matériel
Forme et matériel

Faisons maintenant notre Crystal House !

Coupez le bâton de bois en 6 pouces. Nous avons besoin de 18 pièces au total. Comme je veux une variation de ces deux maisons de cristal, j'ai utilisé 7 pièces dans l'une et 9 pièces dans l'autre. Collez les pièces dans une structure de boîte. J'ai coupé deux feuilles d'acrylique à 6 par 6 pouces et les ai collées dans le fond des Crystal Houses.

Une fois que vous avez terminé la structure des maisons. Décorons les maisons ! J'ai découpé un morceau de papier de couleur transparent et je les ai collés sur la feuille acrylique. Après cela, j'ai utilisé des cristaux de plastique transparent et les ai collés sur la base. Comme j'ai un papier de couleur transparent au bas des cristaux, les cristaux se reflètent en différentes couleurs.

Étape 5: Maintenant, utilisons les maisons de cristal

Utilisons maintenant les maisons de cristal
Utilisons maintenant les maisons de cristal
Utilisons maintenant les maisons de cristal
Utilisons maintenant les maisons de cristal

Offrez à votre bien-aimé la maison de cristal que vous avez faite. Dites-leur qu'ils sont importants ! Vous pouvez toujours modifier la structure extérieure en utilisant différents matériaux et couleurs. Faites-moi savoir comment ça se passe!

Conseillé: