Mundarija:

Kristal uy: 5 qadam
Kristal uy: 5 qadam

Video: Kristal uy: 5 qadam

Video: Kristal uy: 5 qadam
Video: BU G'AYRIODDIY JUFTLIKLAR BUTUN DUNYONI SHOKKA SOLDI 2024, Iyul
Anonim
Image
Image
Kristal uy
Kristal uy

Uzoq masofa tufayli ajrashgan juftliklar va oilalar ko'pincha ulanish istagini his qilishadi. Crystal House er -xotinlar va oilalar uchun chiroqlar orqali bir -biri bilan bog'lanish uchun qurilgan. Kristal uylar Wi -Fi signallari bilan bog'langan. Bir Crystal House tugmachasini bosganingizda, boshqa Crystal House chiroqlari signal oladi va yonadi. Buni qilish oson va qiziqarli! Men bosqichma -bosqich ishlatilgan materiallar/asboblar, Arduino yordamida sxemani qurish/sinovdan o'tkazish va Kristal uyining tuzilishini o'taman.

1 -qadam: ehtiyot qismlar, asboblar, materiallar

  • O'rnatilgan tuklar Huzzah ESP8266 (ikkita)
  • Perma-Proto Yarim o'lchamli non paneli (ikkita)
  • Lityum batareya -3,7 1200 mA / soat (ikkita)
  • Mini yoqish/o'chirish tugmachasi (to'rtta)
  • NeoPixel mini tugmasi (to'rtta)
  • Breadboard simlari
  • Lehimlash temir va lehim
  • Tel -striptizchi
  • Uchinchi qo'l vositasi
  • Kvadrat yog'och tayoq
  • Akril varaq
  • Shaffof kristall tosh
  • Shaffof qog'oz
  • Super elim

2 -qadam: O'chirish diagrammasi va kodi

O'chirish diagrammasi va kodi
O'chirish diagrammasi va kodi

// Instructables Internet of Things sinf namunaviy kodi // Kirish va chiqishlarni birlashtirish // Ikki tugma AIO tasmasiga buyruq yuboradi // LED va tebranuvchi dvigatel (yoki har qanday raqamli chiqish) flah/buzz ma'lumot ma'lumotlariga muvofiq // // Bekki tomonidan o'zgartirilgan Stern 2017 // Adafruit IO Arduino kutubxonasi misollari asosida: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit vaqt va resurslarni ushbu ochiq kodli kod bilan ta'minlaydi. // Iltimos, Adafruit -dan // mahsulotlarini sotib olish orqali Adafruit va ochiq manbali uskunalarni qo'llab -quvvatlang! // // Adafruit Industries uchun Todd Treece tomonidan yozilgan // Mualliflik huquqi (c) 2016 Adafruit Industries // MIT litsenziyasi bo'yicha litsenziyalangan. // // Yuqoridagi barcha matnlar har qanday qayta taqsimotga kiritilishi kerak. #qo'shing

  1. #aniqlang NeoPIN1 15

    // Parametr 1 = chiziqdagi piksellar soni // Parametr 2 = Arduino pin raqami (ko'pchiligi to'g'ri) // Parametr 3 = pikselli bayroqlar, kerak bo'lganda qo'shing: // NEO_KHZ800 800 KHz bit oqimi (NeoPixel mahsulotlarining ko'pchiligi w/WS2812 bilan) LEDlar) // NEO_KHZ400 400 KHz (klassik 'v1' (v2 emas) FLORA piksellari, WS2811 drayverlari) // NEO_GRB piksellari GRB bitstream uchun ulanadi (ko'pchilik NeoPixel mahsulotlari) // NEO_RGB piksellari RGB bit oqimi uchun ulangan (v1 FLORA piksel, v2 emas) // NEO_RGBW piksellari RGBW oqim oqimi uchun ulanadi (NeoPixel RGBW mahsulotlari) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Adafruit IO konfiguratsiyasi ********************** *********

    / agar siz hisob yaratishingiz kerak bo'lsa io.adafruit.com saytiga tashrif buyuring // yoki sizga Adafruit IO kaliti kerak bo'lsa. #IO_USERNAME "foydalanuvchi nomingiz" ni belgilang #IO_KEY "Sizning IO_KEY"

    /******************************* WIFI konfiguratsiyasi **************** **********************/

    #"Wi -Fi" ni "Wi -Fi_SSID" ni belgilang, "parolingizni" WIFI_PASS -ni aniqlang.

    #"AdafruitIO_WiFi.h" ni qo'shing AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

    /************************ Asosiy kod shu erda boshlanadi ********************* **********/

    #qo'shish #qo'shish #qo'shish #qo'shish

    // #LED_PIN 15 ni belgilang #BUTTON1_PIN 4ni belgilang #BUTTON2_PIN 14ni aniqlang // #MOTOR_PIN 5 ni aniqlang // bu pin PWM qobiliyatiga muhtoj

    // tugma holati int button1current = 0; int tugmasi1last = 0; int tugmasi2current = 0; int tugmasi2last = 0;

    // "raqamli" tasmani o'rnatish AdafruitIO_Feed *buyrug'i = io.feed ("buyruq"); AdafruitIO_Feed *buyruq2 = io.feed ("buyruq2");

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Barcha piksellarni "o'chirilgan" holatga keltiring // tugmachalarni ichki tortish qarshiligi pinMode (BUTTON1_PIN, INPUT_PULLUP) bilan kirishlar sifatida o'rnating; pinMod (BUTTON2_PIN, INPUT_PULLUP); // raqamli chiqish sifatida LED va motor pinini o'rnatish // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // ketma -ket ulanishni boshlash Serial.begin (115200);

    // io.adafruit.com saytiga ulanish Serial.print ("Adafruit IO ga ulanish"); io.connect (); // "buyruqlar" tasmasi uchun xabar ishlovchilarini o'rnating. // handleMessage funktsiyasi (quyida tavsiflangan) // adafruit io dan xabar kelganida // chaqiriladi. buyruq-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // ulanishni kuting (io.status () <AIO_CONNECTED) {Serial.print ("."); kechikish (500); }

    // biz bog'langanmiz Serial.println (); Serial.println (io.statusText ());

    // barcha kanallar joriy qiymatlarini darhol olishiga ishonch hosil qiling-> get (); buyruq2-> olish (); }

    void loop () {

    // io.run (); barcha eskizlar uchun talab qilinadi. // u har doim loop // funktsiyasining yuqori qismida bo'lishi kerak. u mijozni // io.adafruit.com ga bog'lab turadi va kiruvchi ma'lumotlarni qayta ishlaydi. io.run ();

    // tugmachaning hozirgi holatini oling. // biz mantiqni ag'darishimiz kerak, chunki biz // INPUT_PULLUP dan foydalanamiz. agar (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; }

    // qaytish, agar qiymat o'zgarmagan bo'lsa (button1current == button1last && button2current == button2last) return;

    // joriy holatni adafruit io Serial.print "raqamli" tasmasiga saqlang ("1 -tugmani yuborish holati ->"); Serial.println (tugma1 joriy); buyruq-> saqlash (tugma1 joriy);

    // hozirgi holatini adafruit io Serial.print "raqamli" tasmasiga saqlang ("2 -tugmani yuborish holati ->"); Serial.println (button2current); command2-> saqlash (button2current);

    // oxirgi tugma holatini saqlang button1last = button1current; button2last = button2current; }

    // bu funksiya Adafruit IOdan "buyruq" xabari // kelganida chaqiriladi. yuqoridagi setup () funktsiyasida // buyruq tasmasi biriktirilgan. void handleButton1 (AdafruitIO_Data *ma'lumotlari) {

    int buyrug'i = ma'lumotlar-> toInt ();

    if (buyruq == 1) {// birinchi pikselni yoqing Serial.print ("buyruqdan olingan (1 tugma) <-"); Serial.println (buyruq); // analogWrite (MOTOR_PIN, 200); // kechikish (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Sariq chiziq.shou (); } else {Serial.print ("buyruqdan olingan (1 tugma) <-"); Serial.println (buyruq); strip.setPixelColor (0, strip. Color (0, 0, 0)); // off strip.show (); }} // bu funksiya Adafruit IO dan "buyruq" xabari // kelganida chaqiriladi. yuqoridagi setup () funktsiyasida // buyruq tasmasi biriktirilgan. void handleButton2 (AdafruitIO_Data *ma'lumotlari) {

    int buyrug'i2 = ma'lumotlar-> toInt ();

    if (command2 == 1) {// birinchi pikselni yoqing Serial.print ("buyruq2dan olingan (2-tugma) <-"); Serial.println (buyruq2); // analogWrite (MOTOR_PIN, 200); // kechikish (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // sariq chiziq.shou (); } else {Serial.print ("buyruq2dan olingan (2-tugma) <-"); Serial.println (buyruq2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // off strip.show (); }}

3 -qadam: prototipdan lehimgacha bo'lgan davrni qurish

Elektron konstruktsiya prototipdan lehimgacha
Elektron konstruktsiya prototipdan lehimgacha
Elektron konstruktsiya prototipdan lehimgacha
Elektron konstruktsiya prototipdan lehimgacha

Men sizni sxemani sinab ko'rish uchun taxtani sinab ko'rishingizni maslahat beraman. Biz ikkita qurilma qurayotganimiz uchun, biz ikkita non panelida sinovdan o'tishimiz mumkin edi. Men Neopixel va on.off tugmachasini prototiplash simiga lehimladim, chunki undan foydalanish osonroq. Keyinchalik siz prototip simlarini osongina lehimlashingiz mumkin.

Biz prototiplash sxemasida muvaffaqiyat qozonganimizdan so'ng, haqiqiy sxemani yaratish vaqti keldi. Men Perma-proto non panelidan foydalanayapman, chunki u kichikroq va sxemaning ulanishi prototiplash sxemasiga qaraganda ancha yaxshi bo'ladi. Lehim haqida gap ketganda, u juda sabrli bo'lishni talab qiladi. Hali ham taslim bo'lmang! Siz u erga ketyapsiz!

Tarmoqni tugatib, ESP8266 -ga kodni yuklaganingizdan so'ng, ikkita qurilma boshida aytib o'tganimizdek ishlashi kerak.

4 -qadam: Shakl va material

Shakl va material
Shakl va material
Shakl va material
Shakl va material
Shakl va material
Shakl va material
Shakl va material
Shakl va material

Keling, billur uyimizni yasaymiz!

Yog'och tayoqchasini 6 dyuymga kesib oling. Bizga jami 18 dona kerak bo'ladi. Men bu ikkita billur uyning o'zgarishini xohlaganim uchun, men birida 7 ta, ikkinchisida 9 ta bo'lakni ishlatganman. Parchalarni qutining tuzilishiga yopishtiring. Men ikkita akril varaqni 6 dyuymdan 6 dyuymgacha kesib tashladim va ularni Kristal uylarning pastki qismiga yopishtirdim.

Uylarning tuzilishini tugatgandan so'ng. Keling, uylarni bezatamiz! Men shaffof rangli qog'ozni kesib, akril varaqqa yopishtirdim. Shundan so'ng, men shaffof plastik kristallardan foydalandim va ularni taglikka yopishtirdim. Menda kristallarning pastki qismida shaffof rangli qog'oz borligi sababli, kristallar turli ranglarda aks etadi.

5 -qadam: Keling, billur uylardan foydalanamiz

Endi billur uylardan foydalanamiz
Endi billur uylardan foydalanamiz
Endi billur uylardan foydalanamiz
Endi billur uylardan foydalanamiz

Sevganingizga o'zingiz yasagan billur uyni bering. Ularga muhimligini ayting! Siz har doim turli xil materiallar va ranglar yordamida tashqi tuzilmani o'zgartirishingiz mumkin. Bu qanday ketayotganini menga ayting!

Tavsiya: