جدول المحتويات:

كريستال هاوس: 5 خطوات
كريستال هاوس: 5 خطوات

فيديو: كريستال هاوس: 5 خطوات

فيديو: كريستال هاوس: 5 خطوات
فيديو: مسلسل كريستال | 5 مشاهد للدكتور جواد منهار بسبب فاي! 2024, يوليو
Anonim
Image
Image
كريستال هاوس
كريستال هاوس

غالبًا ما يشعر الأزواج والعائلات المنفصلين بسبب المسافة الطويلة بالرغبة في التواصل. تم بناء Crystal House للأزواج والعائلات للتواصل مع بعضهم البعض من خلال الأضواء. كريستال البيوت متصلة بإشارات واي فاي. عندما تضغط على الزر الموجود في أحد البيوت الكريستالية ، تتلقى أضواء Crystal House الأخرى الإشارة وسيتم تشغيلها. من السهل والممتع صنعه! سوف أتناول خطوة بخطوة من المواد / الأدوات المستخدمة ، وبناء / اختبار الدائرة باستخدام Arduino وبناء هيكل Crystal House

الخطوة 1: الأجزاء والأدوات والمستلزمات

  • حوزة ريشة مجمعة ESP8266 (اثنان)
  • لوح التجارب بيرما بروتو نصف الحجم (اثنان)
  • بطارية ليثيوم -3.7 1200 مللي أمبير (اثنان)
  • مفتاح زر تشغيل / إيقاف صغير (أربعة)
  • زر NeoPixel الصغير (أربعة)
  • سلك اللوح
  • لحام الحديد واللحام
  • متجرد الأسلاك
  • أداة اليد الثالثة
  • عصا خشبية مربعة
  • الاكريليك ورقة
  • حجر الكريستال الصافي
  • ورق شفاف
  • صمغ ممتاز

الخطوة 2: مخطط الدائرة والكود

مخطط الدائرة والكود
مخطط الدائرة والكود

// Instructables Internet of Things Class code sample // الجمع بين المدخلات والمخرجات // يرسل زران ضغطان أوامر إلى موجز AIO // LED ومحرك الاهتزاز (أو أي إخراج رقمي) flah / buzz وفقًا لبيانات التغذية // // تم التعديل بواسطة Becky Stern 2017 // استنادًا إلى أمثلة من مكتبة Adafruit IO Arduino: // https://github.com/adafruit/Adafruit_IO_Arduino // // يستثمر Adafruit الوقت والموارد في توفير هذا الكود مفتوح المصدر. // الرجاء دعم Adafruit والأجهزة مفتوحة المصدر عن طريق شراء // منتجات من Adafruit! // // كتبه Todd Treece for Adafruit Industries // حقوق الطبع والنشر (c) 2016 Adafruit Industries // مرخصة بموجب ترخيص MIT. // // يجب تضمين كل النص أعلاه في أي إعادة توزيع. #يشمل

  1. #define NeoPIN1 15

    // المعلمة 1 = عدد البكسل في الشريط // المعلمة 2 = رقم دبوس Arduino (معظمها صالح) // المعلمة 3 = أعلام نوع البكسل ، أضف معًا حسب الحاجة: // NEO_KHZ800 800 KHz bitstream (معظم منتجات NeoPixel w / WS2812 LEDs) // NEO_KHZ400 400 كيلو هرتز (كلاسيكي 'v1' (ليس v2) بكسل FLORA ، برامج تشغيل WS2811) // NEO_GRB Pixels موصلة لتيار GRB bitstream (معظم منتجات NeoPixel) // NEO_RGB Pixels سلكية لـ RGB bitstream (v1 FLORA pixels ، ليس v2) // NEO_RGBW Pixels سلكية لـ RGBW bitstream (منتجات NeoPixel RGBW) Adafruit_NeoPixel strip = Adafruit_NeoPixel (2، NeoPIN1، NEO_GRB + NEO_KHZ800) ؛

    / ************************ تكوين Adafruit IO ********************** *********

    / قم بزيارة io.adafruit.com إذا كنت بحاجة إلى إنشاء حساب ، // أو إذا كنت بحاجة إلى مفتاح Adafruit IO. #define IO_USERNAME "اسم المستخدم" #define IO_KEY "IO_KEY"

    / ******************************* تكوين WIFI **************** ********************** /

    #define WIFI_SSID "wifi الخاص بك" #define WIFI_PASS "كلمة مرورك"

    # تضمين "AdafruitIO_WiFi.h" AdafruitIO_WiFi io (IO_USERNAME، IO_KEY، WIFI_SSID، WIFI_PASS) ؛

    / ************************ يبدأ الرمز الرئيسي هنا *********************** ********** /

    # تضمين # تضمين # تضمين # تضمين

    // # حدد LED_PIN 15 #define BUTTON1_PIN 4 #define BUTTON2_PIN 14 // # حدد MOTOR_PIN 5 // يحتاج هذا الدبوس إلى قدرة PWM

    // حالة الزر int button1current = 0 ؛ int button1last = 0 ؛ int button2current = 0 ؛ int button2last = 0 ؛

    // إعداد التغذية "الرقمية" AdafruitIO_Feed * command = io.feed ("الأمر") ؛ AdafruitIO_Feed * command2 = io.feed ("command2") ؛

    إعداد باطل () {strip.setBrightness (60) ؛ strip.begin () ، عرض الشريط()؛ // تهيئة جميع وحدات البكسل إلى "إيقاف التشغيل" // تعيين دبابيس الزر كمدخلات باستخدام pinMode المقاوم للسحب الداخلي (BUTTON1_PIN ، INPUT_PULLUP) ؛ pinMode (BUTTON2_PIN ، INPUT_PULLUP) ، // ضبط دبوس الصمام ودبوس المحرك كمخرجات رقمية // pinMode (MOTOR_PIN ، الإخراج) ؛ // pinMode (LED_PIN ، الإخراج) ؛

    // بدء الاتصال التسلسلي 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 () ؛ }

    حلقة فارغة() {

    // io.run () ؛ مطلوب لجميع الرسومات. // يجب أن يكون موجودًا دائمًا في الجزء العلوي من وظيفة loop // function. يحافظ على اتصال العميل بـ // io.adafruit.com ، ويعالج أي بيانات واردة. io.run () ،

    // الاستيلاء على الحالة الحالية للزر. // علينا قلب المنطق لأننا // نستخدم INPUT_PULLUP. إذا (digitalRead (BUTTON1_PIN) == منخفض) {button1current = 1 ؛ } إذا (digitalRead (BUTTON2_PIN) == منخفض) {button2current = 1 ؛ } إذا (digitalRead (BUTTON2_PIN) == HIGH && digitalRead (BUTTON1_PIN) == HIGH) {button1current = 0 ؛ button2current = 0 ؛ }

    // إرجاع إذا لم تتغير القيمة إذا كان (button1current == button1last && button2current == button2last) إرجاع ؛

    // احفظ الحالة الحالية في الخلاصة "الرقمية" على adafruit io Serial.print ("إرسال حالة الزر 1 ->") ؛ Serial.println (button1current) ؛ الأمر-> حفظ (button1current) ؛

    // احفظ الحالة الحالية في الخلاصة "الرقمية" على adafruit io Serial.print ("إرسال حالة الزر 2 ->") ؛ Serial.println (button2current) ؛ command2-> حفظ (button2current) ؛

    // تخزين حالة الزر الأخير button1last = button1current ؛ button2last = button2current ؛ }

    // يتم استدعاء هذه الوظيفة كلما تم تلقي رسالة "أمر" // من Adafruit IO. تم إرفاقه بـ // موجز الأوامر في وظيفة setup () أعلاه. مقبض voidButton1 (AdafruitIO_Data * data) {

    الأمر int = data-> toInt () ؛

    إذا (الأمر == 1) {// تضيء أول بكسل Serial.print ("مستلم من الأمر (زر 1) <-") ؛ Serial.println (الأمر) ؛ // analogWrite (MOTOR_PIN ، 200) ؛ // تأخير (500) ؛ // analogWrite (MOTOR_PIN ، 0) ؛ strip.setPixelColor (0 ، شريط ، اللون (200 ، 100 ، 0)) ؛ // شريط أصفر () ؛ } else {Serial.print ("مستلم من الأمر (زر 1) <-")؛ Serial.println (الأمر) ؛ strip.setPixelColor (0 ، شريط.اللون (0 ، 0 ، 0)) ؛ // off strip.show () ؛ }} // يتم استدعاء هذه الوظيفة كلما تم تلقي رسالة "أمر" // من Adafruit IO. تم إرفاقه بـ // موجز الأوامر في وظيفة setup () أعلاه. مقبض voidButton2 (AdafruitIO_Data * 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)) ؛ // شريط أصفر () ؛ } else {Serial.print ("مستلم من command2 (زر 2) <-")؛ Serial.println (command2) ؛ strip.setPixelColor (1 ، strip. Color (0 ، 0 ، 0)) ؛ // off strip.show () ؛ }}

الخطوة 3: بناء الدائرة من النموذج الأولي إلى الملحوم

بناء الدائرة من النموذج الأولي إلى الملحوم
بناء الدائرة من النموذج الأولي إلى الملحوم
بناء الدائرة من النموذج الأولي إلى الملحوم
بناء الدائرة من النموذج الأولي إلى الملحوم

أود أن أشجعك على تجربة لوحة توصيل لاختبار الدائرة. نظرًا لأننا نبني جهازين ، يمكننا الاختبار على لوحين. لقد قمت بلحام Neopixel وزر on.off بسلك نموذجي لأنه أسهل في الاستخدام. في وقت لاحق ، يمكنك بسهولة لحام أسلاك النماذج الأولية.

بعد أن ننجح في دارة النماذج الأولية ، حان الوقت لبناء دائرتنا الحقيقية. أنا أستخدم لوح التجارب Perma-proto لأنه أصغر وسيكون اتصال الدائرة أفضل بكثير من دائرة النماذج الأولية. عندما يتعلق الأمر باللحام ، فإنه يتطلب الكثير من الصبر. لا تستسلم بعد! أنت تصل إلى هناك!

بمجرد الانتهاء من دائرتك وتحميل الرمز في ESP8266 ، يجب أن يعمل الجهازان كما ذكرنا في البداية.

الخطوة 4: الشكل والمواد

الشكل والمواد
الشكل والمواد
الشكل والمواد
الشكل والمواد
الشكل والمواد
الشكل والمواد
الشكل والمواد
الشكل والمواد

الآن دعونا نصنع بيتنا البلوري!

قطع عصا الخشب إلى 6 بوصات. نحتاج إلى 18 قطعة في المجموع. نظرًا لأنني أريد بعض الاختلاف من هذين المنزلين البلوريين ، فقد استخدمت 7 قطع في قطعة واحدة و 9 قطع في الأخرى. ألصق القطع في هيكل صندوقي. لقد قطعت صفيحتين من الأكريليك إلى 6 × 6 بوصات وألصقتهما في قاع البيوت الكريستالية.

بمجرد الانتهاء من بناء المنازل. دعونا تزيين المنازل! لقد قطعت قطعة من الورق الملون الشفاف وألصقها على ورقة الأكريليك. بعد ذلك ، استخدمت بعض البلورات البلاستيكية الشفافة وألصقتها على القاعدة. نظرًا لوجود ورق ملون شفاف أسفل البلورات ، تنعكس البلورات على ألوان مختلفة.

الخطوة 5: الآن دعنا نستخدم البيوت الكريستالية

الآن دعونا نستخدم البيوت البلورية
الآن دعونا نستخدم البيوت البلورية
الآن دعونا نستخدم البيوت البلورية
الآن دعونا نستخدم البيوت البلورية

امنح حبيبك المنزل البلوري الذي صنعته. أخبرهم أنهم مهمون! يمكنك دائمًا تعديل الهيكل الخارجي باستخدام مواد وألوان مختلفة. أعلمني كيف سيسير الامر!

موصى به: