Mundarija:
- 1 -qadam: ehtiyot qismlar, asboblar, materiallar
- 2 -qadam: O'chirish diagrammasi va kodi
- 3 -qadam: prototipdan lehimgacha bo'lgan davrni qurish
- 4 -qadam: Shakl va material
- 5 -qadam: Keling, billur uylardan foydalanamiz
Video: Kristal uy: 5 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:23
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
// 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
-
#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
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
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
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:
Kristal osilator va flip -floplardan foydalanadigan raqamli soat: 3 qadam
Kristalli osilator va flip -floplardan foydalanadigan raqamli soat: Soatlar deyarli barcha turdagi elektronikalarda uchraydi, ular har qanday kompyuterning yurak urishi. Ular barcha ketma -ket elektronlarni sinxronlashtirish uchun ishlatiladi. ular vaqt va sanani kuzatish uchun hisoblagich sifatida ham ishlatiladi. Ushbu ko'rsatmada siz quyidagilarni o'rganasiz
Kristal to'p: kelajagingizga qarang !: 7 qadam
Kristal to'p: kelajagingizga qarang !: Siz koinot sirlarini bilmoqchimisiz? Xo'sh, qilolmaysiz! O'zingizning billur to'pingizni yasab, kelajakda nima bo'lishini bilib olishingiz mumkin. Aytmoqchimanki, yo'qotadigan nima bor? Agar men buni qila olsam, siz ham LCD monitor, dumba yordamida
Kristal to'p loyihasining umumiy ko'rinishi: 10 qadam
Crystal Ball loyihasi haqida umumiy ma'lumot: Bu ko'rsatma Janubiy Floridadagi universitetda (www.makecourse.com) Makecourse loyihasi talablarini bajarish uchun yaratilgan. Mening billur to'pim loyihasi 1950 yillardagi Mattel o'yinchog'ining "Sehrli sakkiz to'p" va boylik tel
Kristal kameraga axlat: 7 qadam
Kristal kameraga axlat: unchalik uzoq bo'lmagan galaktikada, uning atrofida juda ko'p axlat bo'lgan ishlab chiqaruvchi bor edi, shuning uchun u ajoyib, aql bovar qilmaydigan narsani yaratishga qaror qildi. Har bir ishlab chiqaruvchining bitta muammosi bor-uni tashlab yuborish irodasiga ega bo'lmagan juda ko'p narsalar
Kristal kubni qanday yoritish mumkin: 7 qadam
Kristall kubni qanday yoritish mumkin: Xo'sh, menda bu delfinlar o'yilgan billur kub bor, men uni yoritadigan va chiroyli ko'rinadigan qilib yaratmoqchi edim