À propos de la "maison intelligente": comment créer un rétro-éclairage "intelligent"

En rentrant à la maison, c'était toujours gênant: on ouvre la porte, et puis il fait sombre, puis l'idée est venue de faire des lumières dans le couloir, mais pas facile, mais ce qui pouvait être allumé depuis le téléphone avant de rentrer à la maison. Bien dit - cela signifie que vous devez commencer.
Quelques réflexions de l'auteur avant de lire cet article.
(Avant de poursuivre la lecture de l'article, je dois évidemment inclure ici un commentaire selon lequel ce texte doit être considéré tout d'abord, comme un petit didacticiel sur l'utilisation de gpio à l'aide de java, illustré sur un tel exemple, mais pas une instruction convaincant chaque utilisateur , sur la nécessité de suivre cette voie)


Etant donné que l'expansion future de ce système est prévue (ou non), il a été décidé de prendre comme base un ordinateur monocarte. Avec un léger mouvement de la souris sur Ali, le moins cher <

orange pi zero 256mb .



Connexion


Ensuite, la partie mécanique, rien de compliqué. De la même manière que pour la carte Arduino, uniquement en conformité avec les sorties sur orange pi.



Nous prenons le relais habituel pour "fait maison". D'une part, nous connectons la broche d'alimentation et de contrôle, d'autre part, coupons le câble d'alimentation de notre lampe et l'insérons dans le relais (dans mon cas, c'était une bande de diode).



Schéma:



C'est tout, tu es un génie.

Du code


Avec la partie technique terminée. Nous nous tournons vers le logiciel, ici tout est aussi simple:

  1. Nous installons Armbian ou tout autre Linux sur la carte SD, mais j'ai choisi celui-ci. Je recommande d'enregistrer l'image à l'aide de Etcher.
  2. Ensuite, via apt-get, installez java en 3 commandes:

    #sudo add-apt-repository ppa:webupd8team/java #sudo apt-get update #sudo apt-get install oracle-java8-installer 
  3. Avec l'aide du géo, ajoutez le jeu de câblagePi pour notre carte (il contient diverses bibliothèques pour travailler avec gpio et toutes sortes d'outils pour le même)
    Pas difficile non plus:

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

    Eh bien, vérifiez:

     #gpio -v #gpio readall 

Sur cette partie, avec le tableau terminé, allez à l'ordinateur et à l'ide préféré.

Nous déploierons le serveur au printemps, alors allez sur leur site Web ou créez un projet de printemps avec une grêle.



Pour travailler avec gpio, vous devez installer la bibliothèque pi4j , pour cela vous devez ajouter le référentiel et la dépendance.

Et puis le script final devrait ressembler à ceci:

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


Eh bien, passons à la classe de contrôle 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(); } } } } 


Le code présenté est assez simple et n'implique pas un bon contrôle des broches de la carte, mais il ouvre la porte à cela.

Eh bien, la dernière étape est la création du contrôleur au printemps

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(); } } 


Maintenant, quelques gestes récents sous la forme de création d'un fichier jar à l'aide de gradle. Après cela, transférez via sftp vers la carte (dans de nombreux ides, vous pouvez configurer le déploiement directement) et exécutez le bocal sur l'appareil. Ensuite, allez dans le cher 192.168.0 dans le navigateur. ***: 8080 / light
et profitez en espérant que cela vous aidera à garder nos doigts la nuit ou à allumer la lumière jusqu'à notre retour à la maison.

Dans la partie suivante (si j'y arrive), je vais certainement vous montrer différentes façons d'interagir avec notre maison «intelligente».

voici la source
puis travailler avec le peigne (gpio)

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


All Articles