This is an old revision of the document!
Hands-On MQTT Usage
Background
Although the heartbeat system used in MESHdesk / APdesk allows for remote command execution there might be situations where you need the immediate command execution.
Security is a big thing where I stay and with this hands on lab we will see how to make use of the MQTT implementation to switch outdoor lights remotely on and off.
For this lab we have:
1x 4 Channel Arduino Relay Module connected to one of the Dragino units.
3x outdoor lights connected to the 4 Channel Arduino Relay Module.
One will be installed at the garage.
One will be installed at the driveway.
One will be installed at the backyard.
!!!Insert Photo of setup here!!!
GPIO Pins of Dragino MS14
Dragino | Arduino | Comment |
GPIO19 | In1 | Driving the relay to the garage light |
GPIO21 | In2 | Driving the relay to the backyard light |
GPIO18 | In3 | Driving the relay to the driveway light |
GPIO24 | In4 | Extra for future expansion |
3.3v | Vcc | Use the 3.3V since the 5V is to high for the GPIO pin output to trigger a low / high |
GND | Gnd | |
GPIO Helper Scripts
The latest version of the MESHdesk firmware includes the following folder /etc/MESHdesk/gpio_utils.
There we will keep handy scripts for GPIO management.
The following is currently there:
If we want to set GPIO 18 on the Dragino we can issue the following /etc/MEHdesk/gpio_utils/gpio_set_clear.sh 18 1.
To clear it /etc/MEHdesk/gpio_utils/gpio_set_clear.sh 18 0.
If we want to flash (on-off) GPIO 18 a couple of times. /etc/MEHdesk/gpio_utils/gpio_flash.sh 18 15
The default on-off transition is with one second intervals. There is an optional parameter where you can set the interval in seconds.
/etc/MEHdesk/gpio_utils/gpio_flash.sh 18 15 30 will increase the transition interval to 30 seconds.
Now that we have our mapping and know about our helper scripts we can bring it together in RADIUSdesk to create predefined commands which we can use on our Dragino.
Predefined Commands