Mündəricat:

Kristal Ev: 5 addım
Kristal Ev: 5 addım

Video: Kristal Ev: 5 addım

Video: Kristal Ev: 5 addım
Video: Bakı metrosunda görünməmiş hadisə - qız oğlanla... 2024, Iyul
Anonim
Image
Image
Kristal Ev
Kristal Ev

Uzun məsafələrə görə ayrılan cütlüklər və ailələr tez -tez əlaqə həsrətini hiss edirlər. Crystal House, cütlər və ailələr üçün işıqlar vasitəsilə bir -biri ilə əlaqə qurmaq üçün inşa edilmişdir. Kristal Evlər wifi siqnalları ilə bağlıdır. Bir Crystal House -un düyməsini basdığınız zaman, digər Crystal House -un işıqları siqnalı alır və yandırılır. Hazırlanması asan və əyləncəlidir! İstifadə olunan materiallardan/alətlərdən, Arduino istifadə edərək dövrə qurma/sınaqdan keçirmə və Kristal Evin quruluşunu qurma mərhələlərini keçəcəyəm.

Addım 1: Parçalar, Alətlər, Təchizatlar

  • Quraşdırılmış Tüy Huzzah ESP8266 (iki)
  • Perma-Proto Yarım ölçülü çörək taxtası (iki)
  • Lityum Batareya -3.7 1200 mAh (iki)
  • Mini açma/söndürmə düyməli keçid (dörd)
  • NeoPixel Mini Düymə (dörd)
  • Çörək taxtası teli
  • Lehimləmə Dəmiri və Lehim
  • Tel çıxarıcı
  • Üçüncü Əl Aləti
  • Kvadrat taxta çubuq
  • Akril təbəqə
  • Şəffaf kristal daş
  • Şəffaf kağız
  • Super yapışqan

Addım 2: Dövrə Şeması və Kodu

Dövrə diaqramı və kodu
Dövrə diaqramı və kodu

// Təlim edilə bilən Şeylər İnterneti sinif nümunə kodu // Giriş və Çıxışları birləşdirmək // İki düymə AIO yeminə əmr göndərir // LED və titrəmə motoru (və ya hər hansı bir rəqəmsal çıxış) flah/buzz yem məlumatlarına görə // // Becky tərəfindən dəyişdirilmişdir Stern 2017 // Adafruit IO Arduino Kitabxanasının nümunələrinə əsaslanaraq: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit bu açıq mənbə kodunu təmin etmək üçün vaxt və qaynaqlar yatırır. // Zəhmət olmasa Adafruit -dən // məhsulları alaraq Adafruit və açıq mənbə aparatlarına dəstək olun! // // Adafruit Industries üçün Todd Treece tərəfindən yazılmışdır // Müəlliflik hüququ (c) 2016 Adafruit Industries // MIT lisenziyası altında lisenziyalıdır. // // Yuxarıdakı bütün mətnlər hər hansı bir yenidən paylamaya daxil edilməlidir. #daxil edin

  1. #define NeoPIN1 15

    // Parametr 1 = zolaqdakı piksellərin sayı // Parametr 2 = Arduino pin nömrəsi (əksəriyyəti etibarlıdır) // Parametr 3 = piksel tipli bayraqlar, lazım olduqda əlavə edin: // NEO_KHZ800 800 KHz bit axını (ən NeoPixel məhsulları w/WS2812 ilə) LEDlər) // NEO_KHZ400 400 KHz (klassik 'v1' (v2 deyil) FLORA pikselləri, WS2811 sürücüləri) // NEO_GRB Piksellər GRB bit axını üçün bağlanmışdır (əksər NeoPixel məhsulları) // NEO_RGB Piksellər RGB bit axını üçün bağlanmışdır (v1 FLORA pikselləri, v2 deyil) // NEO_RGBW Pikselləri RGBW bit axını üçün bağlanır (NeoPixel RGBW məhsulları) Adafruit_NeoPixel şeridi = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Adafruit IO Konfiqurasiyası ********************** *********

    / Bir hesab yaratmalısınızsa və ya Adafruit IO açarınız lazımdırsa io.adafruit.com saytına daxil olun. #IO_USERNAME "istifadəçi adınızı" təyin edin #IO_KEY "Sizin IO_KEY" ni təyin edin

    /******************************* WIFI Konfiqurasiyası **************** **********************/

    #WIFI_SSID "Wi -Fi" nı təyin et #WIFI_PASS "Şifrəni" təyin et

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

    /************************ Əsas Kod Buradan Başlayır ********************* **********/

    #daxil edin #əlavə edin #daxil edin

    // #LED_PIN 15 təyin edin #BUTTON1_PIN 4 təyin edin #BUTTON2_PIN 14 təyin edin // #MOTOR_PIN 5 təyin edin // bu pin PWM qabiliyyətinə ehtiyac duyur

    // düymə vəziyyəti int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // 'rəqəmsal' yem qurun AdafruitIO_Feed *əmri = io.feed ("əmr"); AdafruitIO_Feed *command2 = io.feed ("command2");

    boş quraşdırma () {strip.setBrightness (60); strip.begin (); strip.show (); // Bütün pikselləri "söndürmək" üçün başladın // düymə pinlərini daxili açılan müqavimət pinMode (BUTTON1_PIN, INPUT_PULLUP) ilə giriş olaraq təyin edin; pinMode (BUTTON2_PIN, INPUT_PULLUP); // led pin və motor pinini rəqəmsal çıxış kimi təyin edin // pinMode (MOTOR_PIN, ÇIXIŞ); // pinMode (LED_PIN, ÇIXIŞ);

    // Serial.begin (115200) serial bağlantısına başlayın;

    // io.adafruit.com saytına qoşul Serial.print ("Adafruit IO -ya qoşulma"); io.connect (); // 'əmr' lenti üçün bir mesaj işləyicisi qurun. // handleMessage funksiyası (aşağıda müəyyən edilmişdir) // adafruit io -dan bir mesaj alındıqda // çağırılacaq. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // əlaqəni gözləyin (io.status () <AIO_CONNECTED) {Serial.print ("."); gecikmə (500); }

    // bağlıyıq Serial.println (); Serial.println (io.statusText ());

    // bütün feed-lərin cari dəyərlərini dərhal əldə etməsinə əmin olun-> get (); command2-> get (); }

    boşluq döngəsi () {

    // io.run (); bütün eskizlər üçün tələb olunur. // həmişə loop // funksiyanızın üstündə olmalıdır. müştərini // io.adafruit.com ilə əlaqəli saxlayır və gələn məlumatları emal edir. io.run ();

    // düymənin cari vəziyyətini tutun. // məntiqi çevirmək məcburiyyətindəyik, çünki INPUT_PULLUP istifadə edirik. əgər (digitalRead (BUTTON1_PIN) == LOW) {button1current = 1; } if (digitalRead (BUTTON2_PIN) == LOW) {button2current = 1; } if (digitalRead (BUTTON2_PIN) == YÜKSEK && digitalRead (BUTTON1_PIN) == YÜKSEK) {button1current = 0; button2current = 0; }

    // əgər dəyər dəyişməyibsə, qayıt (button1current == button1last && button2current == button2last) return;

    // indiki vəziyyəti adafruit io Serial.print üzərindəki 'rəqəmsal' yemdə qeyd edin ("göndərmə düyməsi 1 status ->"); Serial.println (button1cari); əmr-> saxla (düymə1 cari);

    // indiki vəziyyəti adafruit io Serial.print üzərindəki 'rəqəmsal' yemdə qeyd edin ("göndərmə düyməsi 2 statusu ->"); Serial.println (button2current); command2-> saxlamaq (button2current);

    // son düyməni saxla düymə vəziyyəti1 düyməsi = düymə1 cari; button2last = button2current; }

    // bu funksiya Adafruit IO -dan 'əmr' mesajı // alındıqda çağırılır. yuxarıdakı setup () funksiyasındakı // əmr yeminə əlavə edilmişdir. void handleButton1 (AdafruitIO_Data *data) {

    int command = data-> toInt ();

    if (command == 1) {// ilk piksel Serial.print ("əmrdən alındı (düymə 1) <-"); Serial.println (əmr); // analogWrite (MOTOR_PIN, 200); // gecikmə (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Sarı zolaq.show (); } başqa {Serial.print ("əmrdən alındı (düymə 1) <-"); Serial.println (əmr); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // bu funksiya Adafruit IO -dan 'əmr' mesajı // alındıqda çağırılır. yuxarıdakı setup () funksiyasındakı // əmr yeminə əlavə edilmişdir. void handleButton2 (AdafruitIO_Data *data) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// ilk pikselini yandır Serial.print ("command2-dən alındı (düymə 2) <-"); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // gecikmə (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Sarı zolaq.show (); } başqa {Serial.print ("command2-dən alındı (düymə 2) <-"); Serial.println (command2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

Addım 3: Prototipdən Lehimlənmiş Dövrə Tikintisi

Prototipdən Lehimlənmiş Dövrə Quruluşu
Prototipdən Lehimlənmiş Dövrə Quruluşu
Prototipdən Lehimlənmiş Dövrə Quruluşu
Prototipdən Lehimlənmiş Dövrə Quruluşu

Dövrəni sınamaq üçün bir çörək taxtası sınamağı təşviq edərdim. İki cihaz qurduğumuz üçün iki çörək taxtasında test edə bilərik. İstifadəsi daha asan olduğu üçün Neopixel və on.off düyməsini prototipləşdirmə telinə lehimlədim. Daha sonra, prototipləşdirmə tellərini asanlıqla lehimləyə bilərsiniz.

Prototipləşdirmə dövrəsi ilə uğur qazandıqdan sonra əsl dövrəmizi qurmağın vaxtı gəldi. Perma-proto çörək taxtasından istifadə edirəm, çünki daha kiçikdir və dövrə bağlantısı prototipləşdirmə sxemindən daha yaxşı olacaq. Lehimə gəldikdə, çox səbr tələb olunur. Hələ təslim olmayın! Sən ora çatırsan!

Dövrünüzü bitirdikdən və kodu ESP8266 -ya yüklədikdən sonra iki cihaz əvvəldə qeyd etdiyimiz kimi işləməlidir.

Addım 4: Forma və Material

Forma və material
Forma və material
Forma və material
Forma və material
Forma və material
Forma və material
Forma və material
Forma və material

İndi Kristal Evimizi düzəldək!

Taxta çubuğu 6 düym kəsin. Ümumilikdə 18 ədəd lazımdır. Bu iki büllur evdən bir az dəyişiklik istədiyim üçün birində 7 ədəd, digərində 9 ədəd istifadə etdim. Parçaları bir qutu quruluşuna yapışdırın. İki akril təbəqəni 6 ilə 6 düym arasında kəsdim və Kristal Evlərin altına yapışdırdım.

Evlərin quruluşunu bitirdikdən sonra. Evləri bəzəyək! Şəffaf rəngli bir kağız parçasını kəsib akril lövhəyə yapışdırdım. Bundan sonra bir neçə şəffaf plastik kristal istifadə etdim və bazaya yapışdırdım. Kristalların altındakı şəffaf rəngli kağızım olduğundan, kristallar fərqli rənglərə əks olunur.

Addım 5: İndi Kristal Evlərdən istifadə edək

İndi Kristal Evlərdən istifadə edək
İndi Kristal Evlərdən istifadə edək
İndi Kristal Evlərdən istifadə edək
İndi Kristal Evlərdən istifadə edək

Sevdiyiniz insana büllur evi bəxş edin. Onlara vacib olduqlarını söyləyin! Həmişə fərqli material və rənglərdən istifadə edərək xarici quruluşu dəyişdirə bilərsiniz. Necə getdiyini mənə bildir!

Tövsiyə: