Difference between revisions of "GPIO"
Line 14: | Line 14: | ||
== ESP Easy == | == ESP Easy == | ||
− | + | You dont need a Device definition (task) to control basic GPIO output. You can always control all the pins by HTTP. | |
=== Basic on/off === | === Basic on/off === | ||
− | We can control | + | We can control a pin with simple http url commands. To change the pin to high or low steady output: |
'''<nowiki>http://<ESP IP address>/control?cmd=GPIO,<pin>,0</nowiki>''' | '''<nowiki>http://<ESP IP address>/control?cmd=GPIO,<pin>,0</nowiki>''' | ||
Line 51: | Line 51: | ||
'''<nowiki>http://<ESP IP address>/control?cmd=Servo,1,0,90</nowiki>''' | '''<nowiki>http://<ESP IP address>/control?cmd=Servo,1,0,90</nowiki>''' | ||
'''<nowiki>http://<ESP IP address>/control?cmd=Servo,2,2,45</nowiki>''' | '''<nowiki>http://<ESP IP address>/control?cmd=Servo,2,2,45</nowiki>''' | ||
+ | |||
+ | |||
+ | === Tones === | ||
+ | |||
+ | From ESPEasy v2.0.0-dev6 its also possible to play a tone on a pin, via a speaker or piezo element: | ||
+ | |||
+ | '''<nowiki>http://<ESP IP address>/control?cmd=tone,14,1300,200</nowiki>''' | ||
+ | |||
+ | Plays a 1300 hz tone for 200 ms on gpio-14h | ||
+ | |||
+ | === Melodies and ringtones === | ||
+ | |||
+ | From ESPEasy v2.0.0-dev6 its also possible to play melodies via [[https://en.wikipedia.org/wiki/Ring_Tone_Transfer_Language#Technical_specification RTTTL]] | ||
+ | |||
+ | (dont forget to remove the spaces) | ||
+ | |||
+ | '''<nowiki>http://<ESP IP address>/control?cmd=rtttl,14:d=8,o=5,b=180,c6,b,c6,p,g,g-,p,f,b,c6,p,d6,p,g,p,c6,b,c6,p,d6,p,f,g,g-,4p,g,f,4d-</nowiki>''' | ||
+ | |||
+ | |||
+ | This plays a melody on pin 14. | ||
+ | |||
+ | You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker. | ||
== ESP Connexio == | == ESP Connexio == |
Revision as of 00:55, 14 March 2017
Contents
Introduction
The ESP module can control things with it's build-in GPIO output pins. We can turn these on or off or we can set these pins to a special Pulse modulated value (PWM output). And it's also possible to send short pulses (single puls) to one of these pins to control specific devices that are switched with a single short high or low signal.
Hardware
It's best to connect a LED to the GPIO to test your setup. You could dim this LED with the PWM mode commands.
Software
Custom Sketch
ESP Easy
You dont need a Device definition (task) to control basic GPIO output. You can always control all the pins by HTTP.
Basic on/off
We can control a pin with simple http url commands. To change the pin to high or low steady output:
http://<ESP IP address>/control?cmd=GPIO,<pin>,0
http://<ESP IP address>/control?cmd=GPIO,<pin>,1
PWM control
To set a certain PWM level:
http://<ESP IP address>/control?cmd=PWM,<pin>,<level>
Short pulses
To send a pulse to a certain pin:
http://<ESP IP address>/control?cmd=Pulse,<pin>,<state>,<duration>
Example to send an active high pulse on GPIO 2 for 500 mSeconds:
http://<ESP IP address>/control?cmd=Pulse,2,1,500
Servo motor control
To control a Servo Motor:
http://<ESP IP address>/control?cmd=Servo,<servo nr>,<pin>,<position>
We currently support a maximum of two servo motors so you can build a pan & tilt device if you like.
Example to set servo 1 on gpio-0 to a 90 degree position and servo 2 on gpio-2 to a 45 degree position:
http://<ESP IP address>/control?cmd=Servo,1,0,90 http://<ESP IP address>/control?cmd=Servo,2,2,45
Tones
From ESPEasy v2.0.0-dev6 its also possible to play a tone on a pin, via a speaker or piezo element:
http://<ESP IP address>/control?cmd=tone,14,1300,200
Plays a 1300 hz tone for 200 ms on gpio-14h
Melodies and ringtones
From ESPEasy v2.0.0-dev6 its also possible to play melodies via [RTTTL]
(dont forget to remove the spaces)
http://<ESP IP address>/control?cmd=rtttl,14:d=8,o=5,b=180,c6,b,c6,p,g,g-,p,f,b,c6,p,d6,p,g,p,c6,b,c6,p,d6,p,f,g,g-,4p,g,f,4d-
This plays a melody on pin 14.
You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker.