Мазмуну:

Crystal House: 5 кадам
Crystal House: 5 кадам

Video: Crystal House: 5 кадам

Video: Crystal House: 5 кадам
Video: Как подключить люстру. Как соединить провода. Установка в Киеве 0974288408 2024, Июль
Anonim
Image
Image
Crystal House
Crystal House

Узак аралыктан улам бөлүнгөн жубайлар жана үй -бүлөлөр көбүнчө байланышты эңсешет. Crystal House жубайлар жана үй -бүлөлөр үчүн жарык аркылуу бири -бири менен байланышуу үчүн курулган. Crystal Houses wifi сигналдары менен байланышкан. Бир Crystal House баскычын басканыңызда, башка Crystal House чырактары сигналды алат жана күйгүзүлөт. Жасоо оңой жана кызыктуу! Мен этап -этабы менен материалдардан/шаймандардан өтөм, Arduino аркылуу схеманы курам/сынайм жана Crystal Houseдун структурасын курам.

1 -кадам: Бөлүктөр, Куралдар, Берилиштер

  • Чогулган мамык Huzzah ESP8266 (эки)
  • Perma-Proto Жарым өлчөмдөгү нан (эки)
  • Литий Батареясы -3.7 1200mAh (эки)
  • Mini On/Off баскыч баскычы (төрт)
  • NeoPixel Mini баскычы (төрт)
  • Breadboard Wire
  • Soldering Iron & Solder
  • Зым чечүүчү
  • Үчүнчү кол куралы
  • Квадрат жыгач таяк
  • Акрил барагы
  • Тунук кристалл таш
  • Ачык кагаз
  • Супер клей

2 -кадам: Райондук диаграмма жана код

Райондук диаграмма жана код
Райондук диаграмма жана код

// Instructables Internet of Things классынын үлгү коду // Киргизүүлөрдү жана Чыгууларды бириктирүү // Эки баскыч баскычтары AIO каналына буйруктарды жөнөтөт // LED жана вибрацияланган мотор (же кандайдыр бир санариптик чыгуулар) flah/buzz feed маалыматына ылайык // // Бекки тарабынан өзгөртүлгөн 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. #define NeoPIN1 15

    // Параметр 1 = тилкедеги пикселдердин саны // Параметр 2 = Arduino пин номери (көбү жарактуу) // Параметр 3 = пикселдин түрүндөгү желектер, керектүү учурда бирге кошуңуз: // NEO_KHZ800 800 КГц бит агымы (NeoPixel продуктуларынын көбү w/WS2812 LED) // NEO_KHZ400 400 КГц (классикалык 'v1' (v2 эмес) FLORA пикселдери, WS2811 драйверлери) // NEO_GRB Пикселдери GRB бит агымы үчүн зымдалат (көпчүлүк NeoPixel продуктылары) // NEO_RGB Пикселдери RGB бит агымы үчүн зымдуу (v1 FLORA пикселдери, v2 эмес) // NEO_RGBW Пикселдери RGBW бит агымы үчүн зымдалат (NeoPixel RGBW продуктылары) Adafruit_NeoPixel strip = 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ти аныктоо #BUTTON1_PIN 4ти аныктоо #BUTTON2_PIN 14 аныктоо // #MOTOR_PIN 5ти аныктоо // бул пин PWM мүмкүнчүлүгүнө муктаж

    // баскыч абалы int button1current = 0; int button1last = 0; int button2current = 0; int button2last = 0;

    // "санарип" түрмөгүн орнотуу AdafruitIO_Feed *буйругу = io.feed ("буйрук"); AdafruitIO_Feed *command2 = io.feed ("command2");

    жараксыз орнотуу () {strip.setBrightness (60); strip.begin (); strip.show (); // Бардык пикселдерди "өчүрүү" үчүн баштапкы абалга келтирүү // pinMode (BUTTON1_PIN, INPUT_PULLUP) ички тартма каршылыгы бар баскычтын казыктарын киргизүү катары коюу; pinMode (BUTTON2_PIN, INPUT_PULLUP); // санариптик жыйынтык катары LED пин жана мотор пин орнотуу // 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 ());

    // бардык түрмөктөр учурдагы баалуулуктарын дароо алышын текшергиле command-> 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); command-> сактоо (button1current);

    // учурдагы абалды adafruit io Serial.print "санарип" түрмөгүнө сактоо ("2 статусун жөнөтүү абалы ->"); Serial.println (button2current); command2-> сактоо (button2current);

    // акыркы баскычтын абалын сактоо button1last = button1current; button2last = button2current; }

    // бул функция Adafruit IOдон 'command' билдирүүсү // алынган сайын чакырылат. ал жогорудагы setup () функциясындагы // буйрук каналына тиркелген. void handleButton1 (AdafruitIO_Data *маалыматы) {

    int command = data-> toInt ();

    if (command == 1) {// биринчи пикселди күйгүзүү Serial.print ("командадан алынды (1-баскыч) <-"); Serial.println (буйрук); // analogWrite (MOTOR_PIN, 200); // кечиктирүү (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (0, strip. Color (200, 100, 0)); // Yellow strip.show (); } else {Serial.print ("командадан алынды (1-баскыч) <-"); Serial.println (буйрук); strip.setPixelColor (0, strip. Color (0, 0, 0)); // өчүрүү strip.show (); }} // бул функция Adafruit IOдон 'command' билдирүүсү // келген сайын чакырылат. ал жогорудагы setup () функциясындагы // буйрук каналына тиркелген. void handleButton2 (AdafruitIO_Data *маалыматы) {

    int command2 = data-> toInt ();

    if (command2 == 1) {// биринчи пикселди күйгүзүү Serial.print ("command2ден алынган (2-баскыч) <-"); Serial.println (command2); // analogWrite (MOTOR_PIN, 200); // кечиктирүү (500); // analogWrite (MOTOR_PIN, 0); strip.setPixelColor (1, strip. Color (255, 128, 128)); // Yellow strip.show (); } else {Serial.print ("command2ден алынды (2-баскыч) <-"); Serial.println (command2); strip.setPixelColor (1, strip. Color (0, 0, 0)); // өчүрүү strip.show (); }}

3 -кадам: Прототиптен Лагерге чейин Райондук Курулуш

Райондук курулуш прототиптен лейкапка чейин
Райондук курулуш прототиптен лейкапка чейин
Райондук курулуш прототиптен лейкапка чейин
Райондук курулуш прототиптен лейкапка чейин

Мен сизди схеманы текшерүү үчүн нан тактасын колдонууга үндөйт элем. Биз эки түзмөк куруп жаткандыктан, биз эки нан тактасында сынай алмакпыз. Мен Neopixel менен on.off баскычын прототиптелген зымга коштум, анткени аны колдонуу оңой. Кийинчерээк, сиз прототиптөөчү зымдарды оңой эле ширете аласыз.

Прототиптөө схемасы менен ийгиликке жеткенден кийин, биздин чыныгы схеманы курууга убакыт келди. Мен Perma-proto нан тактасын колдонуп жатам, анткени ал кичине жана схеманын туташуусу прототиптөө схемасына караганда алда канча жакшы болот. Бул ширетүүгө келгенде, бул өтө чыдамкайлыкты талап кылат. Азырынча багынба! Сиз ал жакка жетесиз!

Сиз схемаңызды бүтүрүп, ESP8266га кодду жүктөгөндөн кийин, эки түзмөк башында айтылгандай иштеши керек.

4 -кадам: Форма жана материал

Форма жана материал
Форма жана материал
Форма жана материал
Форма жана материал
Форма жана материал
Форма жана материал
Форма жана материал
Форма жана материал

Эми Кристалл үйүбүздү жасайлы!

Жыгач таякчаны 6 дюймга кесип алыңыз. Бизге жалпысынан 18 даана керек. Мен бул эки кристалл үйдүн бир аз өзгөрүшүн каалагандыктан, мен биринде 7 даана, экинчисинде 9 даана колдондум. Бөлүктөрдү коробка структурасына чаптаңыз. Мен эки акрил баракты 6 дюймдан 6 дюймга чейин кесип, Кристалл үйлөрдүн түбүнө чаптадым.

Сиз үйлөрдүн түзүлүшүн бүтүргөндөн кийин. Үйлөрдү кооздоп көрөлү! Мен тунук түстүү кагазды кесип, акрил баракка чаптадым. Андан кийин, мен тунук пластикалык кристаллдарды колдонуп, базага жабыштырдым. Менде кристаллдардын түбүндө тунук түстүү кагаз болгондуктан, кристаллдар ар кандай түстөргө чагылдырылган.

5 -кадам: Эми Кристалл үйлөрдү колдонолу

Эми Кристалл үйлөрдү колдонолу
Эми Кристалл үйлөрдү колдонолу
Эми Кристалл үйлөрдү колдонолу
Эми Кристалл үйлөрдү колдонолу

Сүйүктүүңүзгө өзүңүз жасаган кристалл үйдү бериңиз. Алар маанилүү экенин айт! Сиз ар дайым ар кандай материалдарды жана түстөрдү колдонуу менен тышкы түзүлүштү өзгөртө аласыз. Мага анын кандай болуп жатканын айт!

Сунушталууда: