Difference between revisions of "GPIO"
Line 73: | Line 73: | ||
You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker. | You can also use these from rules. We use it to let our alarm system give feedback to the user via a piezo speaker. | ||
+ | |||
+ | To make a boot-sound on startup, create a rule like this: | ||
+ | On System#Boot do | ||
+ | rtttl,14:d=10,o=6,b=180,c,e,g | ||
+ | endon | ||
== ESP Connexio == | == ESP Connexio == |
Revision as of 01:51, 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 (in the testing plugin set) 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 (in the testing plugin set) 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.
To make a boot-sound on startup, create a rule like this:
On System#Boot do rtttl,14:d=10,o=6,b=180,c,e,g endon