فهرست مطالب:

خانه کریستالی: 5 قدم
خانه کریستالی: 5 قدم

تصویری: خانه کریستالی: 5 قدم

تصویری: خانه کریستالی: 5 قدم
تصویری: گوز زدن پریانکا چوپرا هنرپیشه بالیوود در یکی از برنامه های لایف تلویزیونی |C&C 2024, جولای
Anonim
Image
Image
خانه کریستالی
خانه کریستالی

زوج ها و خانواده هایی که به دلیل فاصله زیاد از هم جدا شده اند ، اغلب اشتیاق برای ارتباط را احساس می کنند. خانه کریستال برای زوج ها و خانواده ها ساخته شده است تا از طریق چراغ با یکدیگر ارتباط برقرار کنند. خانه های کریستالی با سیگنال های وای فای متصل هستند. وقتی دکمه یکی از خانه های کریستالی را فشار می دهید ، چراغ های دیگر کریستال ها سیگنال را دریافت می کنند و روشن می شوند. تهیه آن آسان و سرگرم کننده است! من مرحله به مرحله از مواد/ابزارهای مورد استفاده ، ساخت/آزمایش مدار با استفاده از آردوینو و ساختن ساختار خانه کریستالی استفاده خواهم کرد.

مرحله 1: قطعات ، ابزارها ، لوازم

  • پر مونتاژ Huzzah ESP8266 (دو)
  • نان برد نصف Perma-Proto (دو عدد)
  • باتری لیتیوم -3.7 1200mAh (دو)
  • کلید روشن/خاموش دکمه فشار (چهار)
  • دکمه مینی NeoPixel (چهار)
  • سیم Breadboard
  • لحیم کاری و لحیم کاری
  • استریپر سیمی
  • ابزار دست سوم
  • چوب چوبی مربع شکل
  • ورق اکریلیک
  • سنگ کریستال شفاف
  • کاغذ شفاف
  • چسب فوق العاده

مرحله 2: نمودار و کد مدار

نمودار و کد مدار
نمودار و کد مدار

// دستورالعمل کد نمونه اینترنت کلاس اشیا // ترکیب ورودی و خروجی // دو دکمه فشاری دستورات را به AIO feed // LED و موتور ارتعاشی (یا خروجی دیجیتالی) flah/buzz با توجه به داده های خوراک ارسال می کند // // اصلاح شده توسط Becky Stern 2017 // بر اساس نمونه هایی از Adafruit IO Arduino Library: // https://github.com/adafruit/Adafruit_IO_Arduino // // Adafruit زمان و منابع خود را برای ارائه این کد منبع باز سرمایه گذاری می کند. // لطفاً با خرید // محصولات از Adafruit ، از Adafruit و سخت افزار منبع باز پشتیبانی کنید! // // نوشته شده توسط Todd Treece برای صنایع Adafruit // حق چاپ (c) 2016 صنایع Adafruit // دارای مجوز تحت مجوز MIT. // // تمام متن بالا باید در هر توزیع مجدد گنجانده شود. #عبارتند از

  1. #تعریف NeoPIN1 15

    // پارامتر 1 = تعداد پیکسل در نوار // پارامتر 2 = شماره پین آردوینو (اکثر آنها معتبر هستند) LED ها) // NEO_KHZ400 400 کیلوهرتز (کلاسیک 'v1' (نه v2) پیکسل های FLORA ، درایورهای WS2811) // پیکسل های NEO_GRB برای جریان بیت GRB (اکثر محصولات NeoPixel) // NEO_RGB پیکسل ها برای RGB bitstream (v1 پیکسل FLORA ، نه v2) // پیکسل های NEO_RGBW برای جریان بیت RGBW (محصولات RGBW NeoPixel) Adafruit_NeoPixel = Adafruit_NeoPixel (2 ، NeoPIN1 ، NEO_GRB + NEO_KHZ800) ؛

    /*********************** Adafruit IO Configuration ********************* *********

    / در صورت نیاز به ایجاد حساب ، و یا اگر به کلید IO Adafruit نیاز دارید ، از io.adafruit.com دیدن کنید. #تعریف IO_USERNAME "نام کاربری شما" #تعریف IO_KEY "IO_KEY شما"

    /***************************** پیکربندی WIFI **************** **********************/

    #تعریف WIFI_SSID "فای شما" #تعریف 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 *command = io.feed ("command") ؛ AdafruitIO_Feed *command2 = io.feed ("command2") ؛

    void setup () {strip.setBrightness (60)؛ strip.begin ()؛ strip.show ()؛ // همه پیکسل ها را برای "خاموش" اولیه کنید // پین های دکمه را به عنوان ورودی با پین مقاومت داخلی کششی (تنظیم 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 ()؛ // تنظیم کننده پیام برای فید "command". // تابع 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 ()؛ }

    حلقه خالی () {

    // 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؛ }

    // بازگشت اگر مقدار تغییر نکرد (if (button1current == button1last && button2current == button2last) return؛

    // وضعیت فعلی را در خوراک "دیجیتال" adafruit io Serial.print ذخیره کنید ("ارسال دکمه 1 وضعیت ->") ؛ Serial.println (button1current) ؛ command-> save (button1current) ؛

    // وضعیت فعلی را در خوراک "دیجیتال" adafruit io Serial.print ذخیره کنید ("ارسال دکمه 2 وضعیت ->") ؛ Serial.println (button2current) ؛ command2-> save (button2current) ؛

    // آخرین وضعیت دکمه را ذخیره کنید button1last = button1current؛ button2last = button2current؛ }

    // این تابع هر زمان که پیام "فرمان" // از Adafruit IO دریافت می شود فراخوانی می شود. به دستور feed در تابع setup () بالا متصل شد. void handleButton1 (AdafruitIO_Data *data) {

    دستور int = 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)) ؛ // نوار زرد. نمایش ()؛ } else {Serial.print ("دریافت شده از دستور (دکمه 1) <-")؛ Serial.println (فرمان) ؛ strip.setPixelColor (0 ، strip. Color (0 ، 0 ، 0)) ؛ // خاموش strip.show ()؛ }} // این تابع هر زمان که پیام "فرمان" // از Adafruit IO دریافت می شود فراخوانی می شود. به دستور feed در تابع () 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 ، نوار. رنگ (255 ، 128 ، 128)) ؛ // نوار زرد. نمایش ()؛ } 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: حالا بیایید از خانه های کریستالی استفاده کنیم

حالا بیایید از خانه های کریستالی استفاده کنیم
حالا بیایید از خانه های کریستالی استفاده کنیم
حالا بیایید از خانه های کریستالی استفاده کنیم
حالا بیایید از خانه های کریستالی استفاده کنیم

خانه ای کریستالی که ساخته اید را به محبوب خود هدیه دهید. به آنها بگویید که آنها مهم هستند! شما همیشه می توانید ساختار بیرونی را با استفاده از مواد و رنگ های مختلف تغییر دهید. بهم بگو چطور پیش می رود!

توصیه شده: