Мазмұны:

Кристалл үй: 5 қадам
Кристалл үй: 5 қадам

Бейне: Кристалл үй: 5 қадам

Бейне: Кристалл үй: 5 қадам
Бейне: Дана найманбаева 2024, Қараша
Anonim
Image
Image
Кристалл үй
Кристалл үй

Қашықтықтан ажырасқан ерлі -зайыптылар мен отбасылар жиі қосылуға деген құштарлықты сезінеді. Crystal House ерлі -зайыптылар мен отбасыларға бір -бірімен шамдар арқылы қосылу үшін салынған. Кристалл үйлері Wi -Fi сигналдарымен қосылған. Бір Crystal House түймесін басқанда, басқа Crystal House шамдары сигнал қабылдайды және қосылады. Жасалуы оңай әрі қызықты! Мен біртіндеп қолданылатын материалдардан/құралдардан, Arduino көмегімен схеманы құрудан/сынаудан және Кристалл үйінің құрылымын құрудан өтемін.

1 -қадам: Бөлшектер, құралдар, жабдықтар

  • Жиналған қауырсын Huzzah ESP8266 (екі)
  • Perma-Proto жартылай өлшемді нан тақтасы (екі)
  • Литий батареясы -3,7 1200 мАч (екі)
  • Шағын қосу/өшіру батырмасы (төрт)
  • NeoPixel шағын түймесі (төрт)
  • Нан тақтасы сымы
  • Дәнекерлеуіш пен дәнекер
  • Сымды тазартқыш
  • Үшінші қол құралы
  • Ағаштан жасалған төртбұрышты таяқша
  • Акрил парағы
  • Мөлдір хрусталь тас
  • Мөлдір қағаз
  • Супер желім

2 -қадам: схема мен код

Схема мен код
Схема мен код

// Нұсқауға болатын Интернет заттары сыныбының үлгі коды // Кіріс пен шығуды біріктіру // Екі түйме AIO арнасына пәрмен жібереді // Жарық диодты және виброқозғалтқыш (немесе кез келген цифрлық шығыс) flah/buzz беру деректеріне сәйкес // // Бекки өңдеген Stern 2017 // Adafruit IO Arduino кітапханасының мысалдарына негізделген: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit осы бастапқы кодты қамтамасыз ететін уақыт пен ресурстарды жұмсайды. // Adafruit өнімдерін сатып алу арқылы Adafruit және ашық бастапқы жабдықты қолдауды сұраймыз! // // Adafruit Industries үшін Todd Treece жазған // Авторлық құқық (c) 2016 Adafruit Industries // MIT лицензиясы бойынша лицензияланған. // // Жоғарыдағы барлық мәтін кез келген қайта бөлуге қосылуы керек. #қосу

  1. #анықтаңыз NeoPIN1 15

    // Параметр 1 = жолақтағы пиксель саны // Параметр 2 = Arduino түйреуішінің нөмірі (көпшілігі жарамды) // Параметр 3 = пиксель түріндегі жалаушалар, қажет болғанда бірге қосыңыз: // NEO_KHZ800 800 КГц бит ағыны (NeoPixel өнімдерінің көпшілігі w/WS2812 Жарықдиодты шамдар) // NEO_KHZ400 400 КГц (классикалық 'v1' (v2 емес) FLORA пиксельдері, WS2811 драйверлері) // NEO_GRB пиксельдері GRB бит ағыны үшін сымды (NeoPixel өнімдерінің көпшілігі) // NEO_RGB пикселдері RGB бит ағыны үшін сымды (v1 FLORA пикселдері, v2 емес) // NEO_RGBW пиксельдері RGBW ағыны үшін сымды (NeoPixel RGBW өнімдері) Adafruit_NeoPixel жолағы = Adafruit_NeoPixel (2, NeoPIN1, NEO_GRB + NEO_KHZ800);

    /************************ Adafruit IO конфигурациясы ********************** *********

    / егер тіркелгі жасау қажет болса, io.adafruit.com сайтына кіріңіз // немесе сізге Adafruit IO кілті қажет болса. #IO_USERNAME «пайдаланушы атыңызды» анықтаңыз #IO_KEY «сіздің IO_KEY» анықтаңыз

    /******************************* WIFI конфигурациясы **************** **********************/

    #WIFI_SSID «Сіздің wifi» анықтаңыз #WIFI_PASS «Сіздің құпия сөзіңізді» анықтаңыз

    #«AdafruitIO_WiFi.h» қосу AdafruitIO_WiFi io (IO_USERNAME, IO_KEY, WIFI_SSID, WIFI_PASS);

    /************************ Негізгі код осы жерден басталады ********************* **********/

    #қосу #қосу #қосу #қосу

    // #LED_PIN 15 анықтау

    // түйме күйі int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // «сандық» арнаны орнату AdafruitIO_Feed *командасы = io.feed («пәрмен»); AdafruitIO_Feed *command2 = io.feed («command2»);

    void setup () {strip.setBrightness (60); strip.begin (); strip.show (); // Барлық пикселдерді «өшіру» күйіне келтіріңіз // түйме түйреуіштерін pinMode (BUTTON1_PIN, INPUT_PULLUP) тартылатын резисторы бар кіріс ретінде орнатыңыз; pinMode (BUTTON2_PIN, INPUT_PULLUP); // жетекші істікшені және қозғалтқыш штырын сандық шығыс ретінде орнату // pinMode (MOTOR_PIN, OUTPUT); // pinMode (LED_PIN, OUTPUT);

    // Serial.begin (115200) сериялық қосылымын бастаңыз;

    // қосылыңыз io.adafruit.com Serial.print («Adafruit IO -ға қосылу»); io.connect (); // «пәрмен» арнасы үшін хабар өңдегішті орнатыңыз. // handleMessage функциясы (төменде анықталған) // хабарлама // adafruit io -дан алынған сайын шақырылады. command-> onMessage (handleButton1); command2-> onMessage (handleButton2);

    // қосылымды күтіңіз (io.status () <AIO_CONNECTED) {Serial.print («.»); кешіктіру (500); }

    // біз қосылдық Serial.println (); Serial.println (io.statusText ());

    // барлық арналар ағымдағы мәндерді бірден алатынына көз жеткізіңіз-> get (); command2-> get (); }

    void loop () {

    // io.run (); барлық эскиздер үшін қажет. // ол әрқашан цикл // функциясының жоғарғы жағында болуы керек. ол клиентті // io.adafruit.com сайтына қосады және кез келген кіріс деректерді өңдейді. io.run ();

    // батырманың ағымдағы күйін алыңыз. // біз логиканы аударуымыз керек, себебі біз 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; }

    // егер мән өзгермеген болса қайтару (button1current == button1last && button2current == button2last) return;

    // ағымдағы күйді adafruit io Serial.print «цифрлық» арнасына сақтау («1 түймешігінің күйін жіберу ->»); Serial.println (button1current); команда-> сақтау (1-ағымдағы түйме);

    // ағымдағы күйді adafruit io Serial.print «цифрлық» арнасына сақтау («жіберу түймесі 2 күйі ->»); Serial.println (button2current); command2-> save (button2current);

    // соңғы түймені сақтау күйі button1last = button1current; button2last = button2current; }

    // бұл функция Adafruit IO -ден 'командалық' хабарлама // келген сайын шақырылады. ол // жоғарыдағы setup () функциясындағы пәрмен арнасына қосылды. void handleButton1 (AdafruitIO_Data *деректері) {

    int command = data-> toInt ();

    if (пәрмен == 1) {// бірінші пикселді Serial.print («командасынан алынды (1-түйме) <-»); Serial.println (пәрмен); // analogWrite (MOTOR_PIN, 200); // кешіктіру (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Сары жолақ.show (); } else {Serial.print («командадан алынды (1-түйме) <-»); Serial.println (пәрмен); strip.setPixelColor (0, strip. Color (0, 0, 0)); // өшіру жолағы.show (); }} // бұл функция Adafruit IO -ден 'командалық' хабарлама // келген сайын шақырылады. ол // жоғарыдағы setup () функциясындағы пәрмен арнасына қосылды. void handleButton2 (AdafruitIO_Data *деректері) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// бірінші пикселді жарықтандырады Serial.print («командадан алынды 2 (2-түйме) <-»); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // кешіктіру (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Сары жолақ.show (); } else {Serial.print («командадан алынды 2 (2-түйме) <-»); Serial.println (command2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // өшіру жолағы.show (); }}

3 -қадам: прототиптен дәнекерленгенге дейінгі тізбек құрылысы

Прототиптен дәнекерленгенге дейінгі тізбек құрылысы
Прототиптен дәнекерленгенге дейінгі тізбек құрылысы
Прототиптен дәнекерленгенге дейінгі тізбек құрылысы
Прототиптен дәнекерленгенге дейінгі тізбек құрылысы

Мен сізге тізбекті тексеру үшін тақтаны қолдануға кеңес берер едім. Біз екі құрылғы жасап жатқандықтан, біз екі нан тақтасында сынақ жүргізе аламыз. Мен Neopixel мен on.off түймесін прототиптік сымға дәнекерледім, себебі оны қолдану оңай. Кейінірек сіз прототиптік сымдарды оңай дәнекерлей аласыз.

Біз прототиптік схемамен сәтті болғаннан кейін, біздің нақты схеманы құратын уақыт келді. Мен Perma-proto нан тақтасын қолданамын, себебі ол кішірек және схеманың қосылуы прототиптік схемаға қарағанда әлдеқайда жақсы болады. Дәнекерлеуге келетін болсақ, ол көп шыдамдылықты қажет етеді. Әлі де берілме! Сіз сонда жетесіз!

Сіз тізбекті аяқтап, кодты ESP8266 -ға жүктегеннен кейін, екі құрылғы біз айтқандай жұмыс істеуі керек.

4 -қадам: пішін мен материал

Пішін мен материал
Пішін мен материал
Пішін мен материал
Пішін мен материал
Пішін мен материал
Пішін мен материал
Пішін мен материал
Пішін мен материал

Енді біздің Хрусталь үйімізді жасайық!

Ағаш таяқшаны 6 дюймге кесіңіз. Бізге барлығы 18 дана қажет. Мен бұл екі кристалды үйдің өзгеруін қалайтындықтан, мен бірінде 7 бөлікті, екіншісінде 9 бөлікті қолдандым. Бөлшектерді қораптың құрылымына жабыстырыңыз. Мен екі акрилді 6 -дан 6 дюймге дейін кесіп, оларды Кристалл үйлерінің түбіне жапсырдым.

Сіз үйлердің құрылымын аяқтағаннан кейін. Үйлерді безендірейік! Мен мөлдір түсті қағазды кесіп, акрил парағына жапсырдым. Осыдан кейін мен мөлдір пластикалық кристалдар қолдандым және оларды негізге жапсырдым. Менде кристалдардың төменгі жағында мөлдір түсті қағаз болғандықтан, кристалдар әртүрлі түстерге шағылысады.

5 -қадам: Енді кристалды үйлерді қолданайық

Енді кристалды үйлерді қолданайық
Енді кристалды үйлерді қолданайық
Енді кристалды үйлерді қолданайық
Енді кристалды үйлерді қолданайық

Сүйіктіңізге өзіңіз жасаған хрусталь үйді беріңіз. Олар маңызды екенін айтыңыз! Сіз әрқашан сыртқы құрылымды әртүрлі материалдар мен түстерді қолдана отырып өзгерте аласыз. Маған бұл қалай болатынын айтыңыз!

Ұсынылған: