Hanya tentang "rumah pintar": cara membuat lampu latar "pintar"

Pulang ke rumah, selalu tidak nyaman: Anda membuka pintu, dan kemudian gelap, lalu muncul ide untuk membuat lampu latar di koridor, tetapi tidak mudah, tetapi apa yang bisa dihidupkan dari telepon sebelum pulang. Dikatakan dengan baik - itu artinya Anda harus memulai.
Beberapa pemikiran dari penulis sebelum membaca artikel ini.
(Sebelum membaca artikel lebih lanjut, jelas, saya harus memasukkan komentar di sini bahwa pertama-tama teks ini harus dianggap sebagai tutorial kecil tentang cara bekerja dengan gpio menggunakan java, ditunjukkan pada contoh seperti itu, tetapi bukan instruksi yang meyakinkan setiap pengguna , tentang perlunya jalan seperti ini)


Karena ekspansi sistem ini di masa depan direncanakan (atau tidak), diputuskan untuk menggunakan komputer papan tunggal sebagai basis. Dengan sedikit gerakan mouse pada Ali, yang termurah <

oranye nol nol 256mb .



Koneksi


Lalu bagian mekanisnya, tidak ada yang rumit. Dengan cara yang sama dengan papan Arduino, hanya sesuai dengan output pada pi oranye.



Kami mengambil relay biasa untuk "buatan sendiri". Di satu sisi, kami menghubungkan pin daya dan kontrol, di sisi lain, memotong kabel daya lampu kami dan memasukkannya ke relai (dalam kasus saya itu adalah pita dioda).



Skema:



Itu saja, Anda jenius.

Beberapa kode


Dengan bagian teknis ini selesai. Kami beralih ke perangkat lunak, di sini semuanya juga sederhana:

  1. Kami memasang armbian atau Linux lain di kartu sd, tetapi saya memilih yang ini. Saya merekomendasikan merekam gambar menggunakan etsa.
  2. Selanjutnya, melalui apt-get, instal java dalam 3 perintah:

    #sudo add-apt-repository ppa:webupd8team/java #sudo apt-get update #sudo apt-get install oracle-java8-installer 
  3. Dengan bantuan gita, tambahkan set wiringPi untuk board kami (ini berisi berbagai perpustakaan untuk bekerja dengan gpio dan segala macam alat untuk hal yang sama)
    Juga tidak sulit:

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

    Nah, periksa:

     #gpio -v #gpio readall 

Pada bagian ini, dengan papan selesai, buka komputer dan ide favorit.

Kami akan menggunakan server pada musim semi, jadi kunjungi situs web mereka atau dalam ide buat proyek musim semi dengan hujan es.



Untuk bekerja dengan gpio, Anda perlu menginstal perpustakaan pi4j , untuk ini Anda perlu menambahkan repositori dan dependensi.

Dan kemudian skrip akhir akan terlihat seperti ini:

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


Baiklah, mari kita beralih ke kelas kontrol 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(); } } } } 


Kode yang disajikan cukup sederhana dan tidak menyiratkan kontrol yang baik terhadap pin papan, tetapi membuka pintu untuk ini.

Nah, tahap terakhir adalah pembuatan controller di musim semi

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


Sekarang beberapa gerakan terbaru dalam bentuk membuat file jar menggunakan gradle. Setelah itu, transfer via sftp ke board (dalam banyak hal Anda dapat mengkonfigurasi penyebaran secara langsung) dan menjalankan tabung pada perangkat. Selanjutnya, buka 192.168.0 yang dihargai di browser. ***: 8080 / light
dan nikmati sambil berharap bahwa ini akan membantu menjaga jari-jari kita di malam hari atau menyalakan lampu sampai kita pulang.

Di bagian selanjutnya (jika saya pernah melakukannya) saya pasti akan menunjukkan kepada Anda berbagai cara berinteraksi dengan rumah "pintar" kami.

inilah sumbernya
dan kemudian bekerja dengan sisir (gpio)

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


All Articles