فقط حول "المنزل الذكي": كيفية جعل الإضاءة الخلفية "الذكية"

عند عودتك إلى المنزل ، كان الأمر دائمًا غير مريح: تفتح الباب ، ومن ثم يكون الظلام ، ثم جاءت الفكرة لجعل الإضاءة الخلفية في الممر ، ولكن ليس سهلاً ، ولكن ما يمكن تشغيله من الهاتف قبل العودة إلى المنزل. قال حسنا - هذا يعني أن عليك أن تبدأ.
بعض الأفكار من المؤلف قبل قراءة هذه المقالة.
(قبل قراءة المقالة ، من الواضح ، يجب أن أدرج تعليقًا هنا يجب اعتبار هذا النص أولاً وقبل كل شيء ، كبرنامج تعليمي صغير حول العمل مع gpio باستخدام جافا ، يظهر في مثل هذا المثال ، ولكن ليس تعليمات تقنع كل مستخدم حول الحاجة إلى السير بهذه الطريقة)


نظرًا لأنه تم التخطيط للتوسع المستقبلي لهذا النظام (أو لا) ، فقد تقرر أخذ جهاز كمبيوتر واحد كأساس. مع حركة طفيفة للماوس علي علي <

برتقالي بي صفر 256 ميجابايت .



اتصال


ثم الجزء الميكانيكي ، لا يوجد شيء معقد. بنفس الطريقة مثل لوحة Arduino ، فقط وفقًا للمخرجات على البرتقالي pi.



نأخذ التتابع المعتاد لـ "محلية الصنع". من ناحية ، نقوم بتوصيل دبوس الطاقة والتحكم ، من ناحية أخرى ، قطع كابل الطاقة لمصباحنا وإدخاله في التتابع (في حالتي كان شريط ديود).



مخطط:



هذا كل شيء ، أنت عبقري.

بعض التعليمات البرمجية


مع الانتهاء من الجزء الفني على هذا. ننتقل إلى البرنامج ، هنا كل شيء بسيط أيضًا:

  1. نقوم بتثبيت armbian أو أي Linux آخر على بطاقة sd ، لكنني اخترت هذا. أوصي بتسجيل الصورة باستخدام ether.
  2. بعد ذلك ، من خلال apt-get ، قم بتثبيت java في 3 أوامر:

    #sudo add-apt-repository ppa:webupd8team/java #sudo apt-get update #sudo apt-get install oracle-java8-installer 
  3. بمساعدة gita ، أضف مجموعة wiringPi للوحة لدينا (تحتوي على مكتبات مختلفة للعمل مع gpio وجميع أنواع الأدوات لنفسها)
    ليس صعبًا أيضًا:

     #git clone https://github.com/vladikoms/WiringOP-Zero.git #cd WiringOP-Zero #chmod +x ./build #sudo ./build 

    حسنًا ، تحقق من:

     #gpio -v #gpio readall 

في هذا الجزء ، مع الانتهاء من اللوحة ، انتقل إلى الكمبيوتر والمفكرة المفضلة.

سنقوم بنشر الخادم في فصل الربيع ، لذلك إما أن تذهب إلى موقعهم أو في إنشاء مشروع الربيع مع البرد.



للعمل مع gpio ، تحتاج إلى تثبيت مكتبة pi4j ، لهذا تحتاج إلى إضافة المستودع والتبعية.

ومن ثم يجب أن يبدو النص النهائي كما يلي:

build.gradle
 buildscript { ext { springBootVersion = '2.1.0.RELEASE' } repositories { mavenCentral() } dependencies { classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}") } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'org.springframework.boot' apply plugin: 'io.spring.dependency-management' group = 'com.lary.sh' version = '0.0.1-SNAPSHOT' sourceCompatibility = 1.8 jar{ baseName = 'SH' version = '0.0.1-SNAPSHOT' } repositories { mavenCentral() maven{ url "https://oss.sonatype.org/content/groups/public" //  } } dependencies { implementation('org.springframework.boot:spring-boot-starter-data-rest') implementation('org.springframework.boot:spring-boot-starter-web') runtimeOnly('org.springframework.boot:spring-boot-devtools') testImplementation('org.springframework.boot:spring-boot-starter-test') compile 'com.pi4j:pi4j-core:1.2-SNAPSHOT' //   } 


حسنًا ، دعنا ننتقل إلى فئة التحكم في gpio:

Gpio.java
 public class MyGpio{ private GpioController gpio ; private GpioPinDigitalOutput myLed; public Gpio() { try { //          ( ) PlatformManager.setPlatform(Platform.ORANGEPI);//  ,    OrangePI } catch (PlatformAlreadyAssignedException e) { e.printStackTrace(); } gpio= GpioFactory.getInstance(); myLed = gpio.provisionDigitalOutputPin(OrangePiPin.GPIO_08); //  8    //       } public void light(){ //     if(myLed.isHigh()) myLed.low(); //             else myLed.high();//        (8) } public void blink(){ //       for (int i =0;i<10;i++) { try { light(); Thread.sleep(500); } catch (Exception e){ e.printStackTrace(); } } } } 


الكود المعروض بسيط للغاية ولا ينطوي على تحكم جيد في مسامير اللوحة ، ولكنه يفتح الباب لذلك.

حسنًا ، المرحلة الأخيرة هي إنشاء وحدة تحكم في الربيع

Gpiocontroller.java
 @Controller public class GpioController { @RequestMapping("/blink") @ResponseBody public String blink(HttpServletResponse response, HttpServletRequest request ) { Gpio gpio =new Gpio(); gpio.blink(); return "blink"; } @RequestMapping("/light") @ResponseBody public void light(){ Gpio gpio =new Gpio(); gpio.light(); } } 


الآن زوج من الإيماءات الأخيرة في شكل إنشاء ملف جرة باستخدام gradle. بعد ذلك ، قم بالتحويل عبر sftp إلى اللوحة (في العديد من العناصر الإلكترونية يمكنك تكوين النشر مباشرة) وتشغيل الجرة على الجهاز. بعد ذلك ، انتقل إلى 192.168.0 العزيزة في المتصفح. ***: 8080 / light
واستمتع بينما تأمل أن يساعد ذلك على إبقاء أصابعنا في الليل أو تشغيل الضوء حتى نصل إلى المنزل.

في الجزء التالي (إذا وصلت إليه) ، سأوضح لك بالتأكيد طرقًا مختلفة للتفاعل مع منزلنا "الذكي".

هنا المصدر
ثم العمل بالمشط (gpio)

Source: https://habr.com/ru/post/ar430928/


All Articles