рдХрдВрдмреЛрдЯ - рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рд░реЛрдмреЛрдЯ рдлреЛрдЯреЛрдЧреНрд░рд╛рдлрд░

рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдорд┐рдиреАрдХрдВрдкреНрдпреВрдЯрд░ рдореЗрд░реЗ рд╣рд╛рдереЛрдВ рдореЗрдВ рдЧрд┐рд░ рдЧрдпрд╛ред рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХрднреА рд▓рд┐рдирдХреНрд╕ рдХрд╛ рд╕рд╛рдордирд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдпрд╣ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рджрд░рд╛рдЬ рдореЗрдВ рдЖрдВрджреЛрд▓рди рдХреЗ рдмрд┐рдирд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди, рдЕрдВрдд рдореЗрдВ, рдпрд╣ рдЭреВрда рдмреЛрд▓рд╛ ... рдореИрдВрдиреЗ рдЗрд╕рдХреА рдорджрдж рд╕реЗ рдХрд┐рдП рдЧрдП рдЕрдВрддрд┐рдо рдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдлреЛрдЯреЛрдЧреНрд░рд╛рдлрд░ рдХреЗ рд░реЛрдмреЛрдЯ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдерд╛ - рдПрдХ рд╕реНрд╡-рдЪрд╛рд▓рд┐рдд рдордВрдЪ рдХреА рдХреНрд╖рдорддрд╛ рдХреЗ рд╕рд╛рде рдПрдХ рд╡реЗрдм-рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рд╡реАрдбрд┐рдпреЛ рдФрд░ рдлреЛрдЯреЛрдЧреНрд░рд╛рдлреА
рд░реЛрдмреЛрдЯ рдХреЗ рд▓рд┐рдП рдХрд╛рд░реНрдп:




рдмреЗрд╢рдХ, рд░реЛрдмреЛрдЯ рдХреЛ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдк рдмрд╣реБрдд рдХрдо рд╡рд┐рджреЗрд╢реА рдЙрдкрдХрд░рдгреЛрдВ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдкрд░реНрджреЗ, рд░реЛрд╢рдиреА, рд╣реАрдЯрд░ ... рдпрд╛рдиреАред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рд╕реЗ, рдЖрдк рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕реНрдорд╛рд░реНрдЯ рд╣реЛрдо рдХрдВрдЯреНрд░реЛрд▓рд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред

рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рд╡реЗрдмрд┐рдпреЛрдкреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ php, apache, рдЖрджрд┐ рдХреЗ рд╢реВрдиреНрдп рдЬреНрдЮрд╛рди рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдЬрд▓реНрджреА рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╢реБрд░реВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрд╛рд░реНрдпрдХреНрд░рдоред
рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рджреЛрд╣рд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдХреНрдпрд╛ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣рд┐рдП:

рдЕрдм рд╣рдо рдЬрд╛рд░реА рд░рдЦрддреЗ рд╣реИрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╡реЗрдмрд┐рдпреЛрдкреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рд╢рдмреНрдж:

WebIOPi рдПрдХ рдкреВрд░реНрдг рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ I / O рдврд╛рдВрдЪрд╛ рд╣реИ


WebIOPi рдЖрдкрдХреЛ рд╕реНрдерд┐рддрд┐ рдХреА рдирд┐рдЧрд░рд╛рдиреА рдХрд░рдиреЗ рдФрд░ рдПрдХ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдпрд╛ рдХрд┐рд╕реА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗ рд╕реНрдерд╛рдиреАрдп рдпрд╛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рд╕рднреА GPIO рдкреЛрд░реНрдЯ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
тАв HTTP рдФрд░ CoAP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ REST API рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рд╕рдкреЛрд░реНрдЯ рдХреЗ рд╕рд╛рде
тАв рд╕рд░реНрд╡рд░ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ
тАв GPIO, рд╕реАрд░рд┐рдпрд▓, I2C, SPI, 1-рд╡рд╛рдпрд░ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ
тАв DAC, ADC, рд╕реЗрдВрд╕рд░ рд╕рд╣рд┐рдд 30 рд╕реЗ рдЕрдзрд┐рдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рдорд░реНрдерди ...
тАв рдкрд╛рдпрдерди 2 рдФрд░ 3 рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд
тАв рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдорд╣рд╛рди рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдк
тАв рдкрд╛рд╕рд╡рд░реНрдб-рд▓реЙрдЧрд┐рди рд╕реБрд░рдХреНрд╖рд╛
тАв рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг

WebIOPi рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ


рд╕реНрдерд╛рдкрдирд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдкрд░ рдкрд╛рдпрдерди, 2.7 рдпрд╛ 3.2 рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕реНрдерд╛рдкрдирд╛ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдЪрд╛рд░ рдХрдорд╛рдВрдбреЛрдВ рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдпрд╛ рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ:
$ wget http://webiopi.googlecode.com/files/WebIOPi-0.6.0.tar.gz $ tar xvzf WebIOPi-0.6.0.tar.gz $ cd WebIOPi-0.6.0 $ sudo ./setup.sh 

рдЕрдм рдЖрдк рдХрдорд╛рдВрдб рдкреНрд░реЙрдореНрдкреНрдЯ рдкрд░ рд╡реЗрдмрд┐рдпреЛрдкреА рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:
 $ sudo webiopi [-h] [-c config] [-l log] [-s script] [-d] [port] Options: -h, --help Display this help -c, --config file Load config from file -l, --log file Log to file -s, --script file Load script from file -d, --debug Enable DEBUG Arguments: port Port to bind the HTTP Server 

рд╕рдЪ рд╣реИ, рдЬреИрд╕реЗ рд╣реА рдЖрдк Ctrl-C рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реА рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЯрд░реНрдорд┐рдирд▓ рд╡рд┐рдВрдбреЛ рдмрдВрдж рдХрд░рддреЗ рд╣реИрдВ, рд╡реЗрдмрд┐рдпреЛ рд╕рд░реНрд╡рд░ рдФрд░ GPIO рдкреЛрд░реНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдЦреЛ рдЬрд╛рдПрдЧреАред рдЗрд╕рд▓рд┐рдП, рдпрд╣ рд╕реЗрд╡рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рд╡реЗрдмрд┐рдпреЛрдкреА рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ:
 $ sudo /etc/init.d/webiopi start  $ sudo /etc/init.d/webiopi stop 

рдпрджрд┐ рдЖрдк рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдЖрд░рдкреАрдЖрдИ рд▓реЛрдб рдХрд░рдиреЗ рдкрд░ рдЖрдк рд╡реЗрдмрд┐рдпреЛрдкреА рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВ, рддреЛ рдЖрдк рдирд┐рдореНрди рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $ sudo update-rc.d webiopi defaults 


рдХреЛрд╢рд┐рд╢


рдЕрдм рд╕реНрдерд╛рдиреАрдп рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдЖрдк рдХрд┐рд╕реА рднреА рдХрдВрдкреНрдпреВрдЯрд░ рдкрд░ http: // [IP]: 8000 рдбрд╛рдпрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ RPI рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рддрдХ рдкрд╣реБрдБрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред [рдЖрдИрдкреА] рдЖрдИрдкреА рд░рд╛рд╕реНрдкрдмреЗрд░реА рдкрд╛рдИ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд▓реЙрдЧрд┐рди "webiopi" рд╣реИ рдФрд░ рдкрд╛рд╕рд╡рд░реНрдб "рд░рд╛рд╕реНрдкрдмреЗрд░реА" рд╣реИред рд╕рдЪ рд╣реИ, рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓реЗрдЦрдХ рдХрд╛ рдХрд╣рдирд╛ рд╣реИ рдХрд┐ рдХреЛрдб рд╕рднреА рдмреНрд░рд╛рдЙрдЬрд╝рд░реЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдореИрдВ рдХреНрд░реЛрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рднреА I / O рдкреЛрд░реНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:

рдЖрдк рдХрд┐рд╕реА рднреА рдкреИрд░ рдХреЗ рдСрдкрд░реЗрд╢рди рдореЛрдб рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдорд╛рди рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

WebCamBot - рд░реЛрдмреЛрдЯ рдлреЛрдЯреЛрдЧреНрд░рд╛рдлрд░


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

рд░рд╛рд╕реНрдкрд┐рд░реЛрдмреЛрдЯ рдмреЛрд░реНрдб рд╕реЗ рдЬреБрдбрд╝реЗ рдЗрд▓реЗрдХреНрдЯреНрд░рд┐рдХ рдореЛрдЯрд░реНрд╕ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд╛рд░ рдЖрд░рдкреАрдЖрдИ рдЖрдЙрдЯрдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:
 # Left motor GPIOs LEFT_GO_PIN = 17 #PWM   LEFT_DIR_PIN = 4 #  # Right motor GPIOs RIGHT_GO_PIN = 10 #PWM RIGHT_DIR_PIN = 25 #  


рд╡реЗрдм рдХреИрдорд░рд╛ рджреЛ рдореЛрдб рдореЗрдВ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИ - mjpg-streamer рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреНрдпреВрдирддрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдорд┐рдВрдЧ рдФрд░ рдЕрдзрд┐рдХрддрдо рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХреЗ рд╕рд╛рде рдлрд╝реЛрдЯреЛ рд▓реЗрдирд╛ред рдХрд┐рд╕реА рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЪрд▓рд╛рдХрд░ рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: stream.sh, stream_stop.sh, photo.shред

рдЖрдк рд╢рд╛рдпрдж рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ mjpg-streamer рдФрд░ fswebcam рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╡реЗрдм-рдХреИрдорд░рд╛ рдХреЛ рдХреИрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рд╕рд╛рдордЧреНрд░реА рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рдХреАред
рдлрд╝реЛрдЯреЛрдЧреНрд░рд╛рдлрд╝рд┐рдВрдЧ рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
 #!/bin/sh fswebcam -d /dev/video0 -p MJPEG -r 640x480 --jpeg 95 --shadow --title "cambot" --subtitle "Front camera" --info "" --save /usr/share/webiopi/htdocs/app/Raspirobot/ph.jpg -q 


рд╡реЗрдм рдХреИрдорд░рд╛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ:
 #!/bin/sh STREAMER=mjpg_streamer DEVICE=/dev/video0 RESOLUTION=160x120 #320x240 FRAMERATE=25 HTTP_PORT=8001 # check for existing webcam device if [ ! -e "/dev/video0" ]; then echo "stream.sh: Error - NO /dev/video0 device" 2>&1 | logger exit 2 fi PLUGINPATH=/home/pi/mjpg-streamer-r63 "$PLUGINPATH/$STREAMER" -i "$PLUGINPATH/input_uvc.so -n -d $DEVICE -r $RESOLUTION -f $FRAMERATE" -o "$PLUGINPATH/output_http.so -n -p $HTTP_PORT" -b 


рдХреИрдорд░рд╛ рдмрдВрдж рд╕реНрдХреНрд░рд┐рдкреНрдЯ:
 #!/bin/sh kill -9 `pidof mjpg_streamer` 


рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕


WebIOPi рдХреЗ рд▓рд┐рдП рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд▓рд┐рдЦрдирд╛ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рд╕рд░рд▓ рд╣реИред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реЗрдмрд┐рдпреЛрдкреА рд╕реЗ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рдкреГрд╖реНрда рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдирд┐рдпрдВрддреНрд░рдг рдмрдирд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдореЗрдВ рд▓рд┐рдЦреЗ рдореИрдХреНрд░реЛрдЬрд╝ рдХреЛ рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЖрд░рдкреАрдЖрдИ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддреЗ рд╣реИрдВред рдлрд┐рд░ рдирд┐рдпрдВрддреНрд░рдгреЛрдВ рдХреЛ jQuery рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреЗрдЬ рдХреЗ HTML рдХреЛрдб рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
 button = webiopi().createButton("bt_up", "/\\", go_forward, stop); //    id bt_up,  /\,   go_forward $("#up").append(button); //    div  id=up 

Go_forward рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реИ:
 function go_forward() { webiopi().callMacro("go_forward"); } 

рдпрд╛рдиреА рдпрд╣ рд╕рд┐рд░реНрдл go_forward рдореИрдХреНрд░реЛ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдорд╛рдЙрд╕ рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░рдлреЗрд╕ рдкрд░ рдмрдЯрди рджрдмрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣рдореЗрд╢рд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ, рдЖрдк рдХреАрдмреЛрд░реНрдб рдирд┐рдпрдВрддреНрд░рдг рдХреА рдирдХрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
 $(document).keydown(function(e) { switch(e.which) { case 37:turn_left(); break; //key Arroy left case 38:go_forward(); break; // key Arroy up case 39:turn_right(); break; //key Arroy right case 40:go_backward(); break; //key Arroy down case 32:stop(); break; //key Space case 75:camera(); break; ..//key K case 80:photo(); break; // key P } }); 


рдореИрдХреНрд░реЛ рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рд╡реАрдбрд┐рдпреЛ рдФрд░ рдлрд╝реЛрдЯреЛ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд div рдореЗрдВ рд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
  function camera() { $("#vid").html(''); webiopi().callMacro("camera"); $("#vid").html('<img width="320" height="240" src="http://raspberrypi.local:8001/?action=stream">'); } function photo() { $("#ph").html(''); webiopi().callMacro("photo"); $("#ph").html('<img src="Raspirobot/ph.jpg">'); } 


WebIOPi рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ / etc / webiopi / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ
рдЗрд╕рдореЗрдВ рдХрдИ рдмреНрд▓реЙрдХ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдЬреИрд╕реЗ ini windows рдлрд╛рдЗрд▓реНрд╕, рдореИрдХреНрд░реЛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдмреНрд▓реЙрдХ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдмреНрдпрд╛рдЬ рдХрд╛ рд╣реИ:
 [SCRIPTS] # Load custom scripts syntax : # name = sourcefile # each sourcefile may have setup, loop and destroy functions and macros cambot =/usr/share/webiopi/htdocs/app/Raspirobot/cambot.py 


рдЗрд╕ рдмреНрд▓реЙрдХ рдореЗрдВ, macros рд╡рд╛рд▓реЗ python рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд╕рд╛рде format name = sourcefile рдореЗрдВ рдПрдХ рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВред
рдФрд░ рдмреНрдпрд╛рдЬ рдХрд╛ рджреВрд╕рд░рд╛ рдмреНрд▓реЙрдХ рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИред рдЗрд╕рдореЗрдВ, рдЖрдк рдЙрд╕ рдкреЛрд░реНрдЯ рдирдВрдмрд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕ рдкрд░ рд╕рд░реНрд╡рд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдкрд╛рд╕рд╡рд░реНрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдкрде рдФрд░ рд╕рд░реНрд╡рд░ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ред
 [HTTP] # HTTP Server configuration enabled = true port = 8000 # File containing sha256(base64("user:password")) # Use webiopi-passwd command to generate it passwd-file = /etc/webiopi/passwd # Use doc-root to change default HTML and resource files location #doc-root = /home/pi/webiopi/examples/scripts/macros # Use welcome-file to change the default "Welcome" file #welcome-file = index.html 


рдкрд╛рдЗрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯрд┐рдВрдЧ


WebIOPi рдХреЗ рд▓рд┐рдП, рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕реЗрдЯрдЕрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдирд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬрдм рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рдпреЗ рдлрд╝рдВрдХреНрд╢рди I / O рдкреЛрд░реНрдЯ рдХреЗ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рдореЛрдб рдФрд░ рд╕реНрдерд┐рддрд┐ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВред
рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХрд╛рд░реНрдп рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ @ webiopi.macro рд╕реЗ рдкрд╣рд▓реЗ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ go_forward рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рд╡рд░реНрдгрди рд╣реИ рдЬреЛ рд░реЛрдмреЛрдЯ рдХреЛ рдЖрдЧреЗ рдмрдврд╝рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ:
 @webiopi.macro def go_forward(): left_forward() right_forward() 

рд╡реЗрдмрдХреИрдо рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЙрд▓ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ:
 def camera_start(): return_code = call("/usr/share/webiopi/htdocs/app/Raspirobot/stream.sh", shell=True) 


рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рдореБрдЭреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдорд┐рд▓рд╛:


рдЖрд╡реЗрджрди рдбрд┐рдмрдЧрд┐рдВрдЧ


рдпрджрд┐ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд╛рд▓рд╛ рд╕рд░реНрд╡рд░ рдХрд╛ рдкреЗрдЬ рдирд╣реАрдВ рдЦреБрд▓рддрд╛ рд╣реИ, рддреЛ рд╕рдВрднрд╡рдд: рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдореЗрдВ рдХреЛрдИ рддреНрд░реБрдЯрд┐ рд╣реИред рдЗрд╕реЗ рд╕реНрдерд╛рдиреАрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд▓рд┐рдЦрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, sudo python ./cambot.py рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдФрд░ рдкреНрд░рд╛рдкреНрдд рд╣реЛрдиреЗ рд╡рд╛рд▓реА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдпрд╣ / var / folder / рдореЗрдВ рд╕реНрдерд┐рдд webiopi log рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рднреА рд╣реИред log / webiopi
рдпрджрд┐ рдкреЗрдЬ рд▓реЛрдб рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрддреНрд╡реЛрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд╛рдпрдХ рд╣реИред

рд╡реАрдбрд┐рдпреЛ - рд░реЛрдмреЛрдЯ рдХрд╛ рдХрд╛рдо




рд╕рдВрдкреВрд░реНрдг рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╣рд╛рдВ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред

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


All Articles