рдмрд╕ "рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: "рд╕реНрдорд╛рд░реНрдЯ" рдмреИрдХрд▓рд╛рдЗрдЯ рдХреИрд╕реЗ рдмрдирд╛рдПрдВ

рдШрд░ рдЖ рд░рд╣рд╛ рдерд╛, рдпрд╣ рд╣рдореЗрд╢рд╛ рдЕрд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдерд╛: рдЖрдк рджрд░рд╡рд╛рдЬрд╛ рдЦреЛрд▓рддреЗ рд╣реИрдВ, рдФрд░ рдлрд┐рд░ рдЕрдВрдзреЗрд░рд╛ рд╣реЛрддрд╛ рд╣реИ, рдлрд┐рд░ рдЧрд▓рд┐рдпрд╛рд░реЗ рдореЗрдВ рд░реЛрд╢рдиреА рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдЪрд╛рд░ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдШрд░ рдЖрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдлреЛрди рд╕реЗ рдХреНрдпрд╛ рдЪрд╛рд▓реВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╣рд╛ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рд╢реБрд░реВ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред
рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд▓реЗрдЦрдХ рдХреЗ рдХреБрдЫ рд╡рд┐рдЪрд╛рд░ред
(рд▓реЗрдЦ рдХреЛ рдЖрдЧреЗ рдкрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдореБрдЭреЗ рдпрд╣рд╛рдВ рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд╢рд╛рдорд┐рд▓ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЗрд╕ рдкрд╛рда рдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдорд╛рдирд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдЬрд╛рд╡рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ gpio рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдкрд░ рдПрдХ рдЫреЛрдЯрд╛ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓, рдЗрд╕ рддрд░рд╣ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрд╢реНрд╡рд╕реНрдд рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдПрдХ рдирд┐рд░реНрджреЗрд╢ рдирд╣реАрдВ рд╣реИ рдЗрд╕ рддрд░рд╣ рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ)


рдЪреВрдВрдХрд┐ рдЗрд╕ рдкреНрд░рдгрд╛рд▓реА рдХреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рд╡рд┐рд╕реНрддрд╛рд░ рдХреА рдпреЛрдЬрдирд╛ рд╣реИ (рдпрд╛ рдирд╣реАрдВ), рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЖрдзрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХрд▓-рдмреЛрд░реНрдб рдХрдВрдкреНрдпреВрдЯрд░ рд▓реЗрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЕрд▓реА рдкрд░ рдорд╛рдЙрд╕ рдХреЗ рдПрдХ рдорд╛рдореВрд▓реА рдЖрдВрджреЛрд▓рди рдХреЗ рд╕рд╛рде, рд╕рдмрд╕реЗ рд╕рд╕реНрддрд╛ <

рдирд╛рд░рдВрдЧреА рдкрд╛рдИ рд╢реВрдиреНрдп 256mb ред



рд╕рдВрдмрдВрдз


рдлрд┐рд░ рдпрд╛рдВрддреНрд░рд┐рдХ рднрд╛рдЧ, рд╡рд╣рд╛рдБ рдХреБрдЫ рднреА рдЬрдЯрд┐рд▓ рдирд╣реАрдВ рд╣реИред рдЕрд░реБрдбрд┐рдиреЛ рдмреЛрд░реНрдб рдХреЗ рд╕рдорд╛рди рд╣реА, рдирд╛рд░рдВрдЧреА рдкреА рдкрд░ рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рдЕрдиреБрд╕рд╛рд░ред



рд╣рдо "рд╣реЛрдордореЗрдб" рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд░рд┐рд▓реЗ рд▓реЗрддреЗ рд╣реИрдВред рдПрдХ рддрд░рдл, рд╣рдо рдкрд╛рд╡рд░ рдФрд░ рдХрдВрдЯреНрд░реЛрд▓ рдкрд┐рди рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рддреЗ рд╣реИрдВ, рджреВрд╕рд░реА рддрд░рдл, рд╣рдорд╛рд░реЗ рджреАрдкрдХ рдХреА рдкрд╛рд╡рд░ рдХреЗрдмрд▓ рдХреЛ рдХрд╛рдЯрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд░рд┐рд▓реЗ рдореЗрдВ рдбрд╛рд▓рддреЗ рд╣реИрдВ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдпрд╣ рдПрдХ рдбрд╛рдпреЛрдб рдЯреЗрдк рдерд╛)ред



рдбреНрд░рд╛рдЗрд╡рд┐рдВрдЧ:



рдмрд╕ рдЗрддрдирд╛ рд╣реА, рдЖрдк рдПрдХ рдкреНрд░рддрд┐рднрд╛рд╢рд╛рд▓реА рд╡реНрдпрдХреНрддрд┐ рд╣реИрдВред

рдХреБрдЫ рдХреЛрдб


рдЗрд╕ рдкрд░ рддрдХрдиреАрдХреА рднрд╛рдЧ рд╕рдорд╛рдкреНрдд рд╣реЛ рдЧрдпрд╛ред рд╣рдо рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИ:

  1. рд╣рдо рдПрд╕рдбреА рдХрд╛рд░реНрдб рдкрд░ рдЖрд░реНрдордмрд┐рдпрди рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рд▓рд┐рдирдХреНрд╕ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕реЗ рдЪреБрдирд╛ред рдореИрдВ etcher рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЫрд╡рд┐ рд░рд┐рдХреЙрд░реНрдб рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ ред
  2. рдЕрдЧрд▓рд╛, apt-get рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЬрд╛рд╡рд╛ рдХреЛ 3 рдХрдорд╛рдВрдб рдореЗрдВ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

    #sudo add-apt-repository ppa:webupd8team/java #sudo apt-get update #sudo apt-get install oracle-java8-installer 
  3. рдЧреАрддрд╛ рдХреА рдорджрдж рд╕реЗ рд╣рдорд╛рд░реЗ рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рд╡рд╛рдпрд░рд┐рдВрдЧрдкрд╛рдЗ рд╕реЗрдЯ рдЬреЛрдбрд╝реЗрдВ (рдЗрд╕рдореЗрдВ gpio рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рдкреБрд╕реНрддрдХрд╛рд▓рдп рдФрд░ рдЙрд╕реА рдХреЗ рд▓рд┐рдП рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВ)
    рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрд╢реНрдХрд┐рд▓ рдирд╣реАрдВ рд╣реИ:

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

    рдЦреИрд░, рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

     #gpio -v #gpio readall 

рдЗрд╕ рднрд╛рдЧ рдкрд░, рдмреЛрд░реНрдб рд╕рдорд╛рдкреНрдд рд╣реЛрдиреЗ рдХреЗ рд╕рд╛рде, рдХрдВрдкреНрдпреВрдЯрд░ рдФрд░ рдкрд╕рдВрджреАрджрд╛ рд╡рд┐рдЪрд╛рд░рдзрд╛рд░рд╛ рдкрд░ рдЬрд╛рдПрдВред

рд╣рдо рд╡рд╕рдВрдд рдкрд░ рд╕рд░реНрд╡рд░ рдХреЛ рддреИрдирд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╛ рддреЛ рдЙрдирдХреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдЬрд╛рдПрдВ рдпрд╛ ide рдореЗрдВ рдЬрдп рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдкреНрд░рд┐рдВрдЧ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред



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


рдЕрдм рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдПрдХ рдЬреЛрдбрд╝реА рдХреЗ рд░реВрдк рдореЗрдВ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдЗрд╢рд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рдмреЛрд░реНрдб рдХреЗ рд▓рд┐рдП sftp рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг (рдХрдИ рдЖрдИрдбреА рдореЗрдВ рдЖрдк рд╕реАрдзреЗ рддреИрдирд╛рддреА рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ) рдФрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЬрд╛рд░ рдЪрд▓рд╛рдПрдВред рдЗрд╕рдХреЗ рдмрд╛рдж, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдореЗрдВ рдкреЛрд╖рд┐рдд 192.168.0 рдкрд░ рдЬрд╛рдПрдВред ***: 8080 / рдкреНрд░рдХрд╛рд╢
рдФрд░ рдЙрдореНрдореАрдж рдХрд░рддреЗ рд╣реБрдП рдЖрдирдВрдж рд▓реЗрдВ рдХрд┐ рдпрд╣ рд░рд╛рдд рдХреЛ рд╣рдорд╛рд░реА рдЙрдВрдЧрд▓рд┐рдпреЛрдВ рдХреЛ рд░рдЦрдиреЗ рдпрд╛ рдШрд░ рдкрд╣реБрдВрдЪрдиреЗ рддрдХ рдкреНрд░рдХрд╛рд╢ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдЕрдЧрд▓реЗ рднрд╛рдЧ рдореЗрдВ (рдпрджрд┐ рдореБрдЭреЗ рдХрднреА рднреА рдпрд╣ рдорд┐рд▓рддрд╛ рд╣реИ) рддреЛ рдореИрдВ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдкрдХреЛ рд╣рдорд╛рд░реЗ "рд╕реНрдорд╛рд░реНрдЯ" рдШрд░ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд╡рд┐рднрд┐рдиреНрди рддрд░реАрдХреЗ рджрд┐рдЦрд╛рдКрдВрдЧрд╛ред

рдпрд╣рд╛рдБ рд╕реНрд░реЛрдд рд╣реИрдВ
рдФрд░ рдлрд┐рд░ рдХрдВрдШреА (gpio) рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

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


All Articles