I apologize in advance for errors in the text, because I translated from Russian into Google translator.
I propose adding the following simple but very useful functions in Meshtastic
- On any of the free GPIOs, anyone can solder a button. The device code processes the click of a button and as a result sends a distress signal (SOS) in the form of a text message. In addition, in the Android application, you can program an audio response to receive a text distress signal. Together with the distress signal, you can also update the current GPS coordinates of the position of the device.
Why is it important to introduce this function? Many use the Meshtastic network in hard-to-reach places, in the wild. When a person gets into trouble, he often does not have the opportunity and time to get a bluetooth-enabled smartphone, turn it on, unlock it, and then type a message. But if directly in the LoRa module you will have a button. It is very convenient and efficient.
Adding this feature can be done easily. A couple of lines of code are enough.
- It would be nice to add the ability to process control text commands… I will give an example.
From an android device, you send text such as “GpXOn” to node Meshtastic. Node Meshtastic having received this text, turn ON Gpio X. Turning on or off one or two Gpio is quite enough.
What can be turned on or off through the network Meshtastic?
- security camera
- alarm system
- watering plants
- Feeding troughs or drinking bowls for animals
These two functions could seriously expand the functionality and scope of the network Meshtastic
Some time after the publication of this message, I found that this function was previously discussed here:
omg - I like this idea so much. For a few reasons:
- I’ve been wanting to clean up the internal structure of the device code with a very clear delineation between the mesh vs the other system code vs the GUI app that understands text/GPS messages.
- That cleanup would make it easier to have the concept 'it is easy to link in your own small code as an app on the mesh node and you can do what you want with hardware and send/receive messages (using the regular ‘arduino’ api)
- Your idea would be an ideal first other ‘co-resident app’. And it is pretty clean and easy to do
@Anelito’s comment about remote settings makes me think we should generalize this into “every node can have a set of named attributes that can be read/written by other nodes”. Initial usage of this named attribute concept would be for remote settings management, and this new remote-gpio module.
Slight restatement for the idea (for the github bug I’m about to make):
- Make a ‘remote-gpio-module’ (and it will use the new ‘remote attribute API’)
- Let the android/python clients have a mechanism to list, view and change named attributes
- The gpio-module would publish all of the free GPIOs on a board as named attributes available for setting, reading and direction control
- This new module could be a great small example for how others could write/add new modules of their own
Alas - I’m trying to stay super focused on getting 1.0 finished (and stable ) with the original planned set of features. So I don’t think I’ll have time to work on this until 1.0 ‘ships’ (a few weeks?). But I’m super eager to make this happen (and it sounds fun). If no one does it before then, I’ll happily do so.
I find this concept very usable!
I think GPIOs could be used for interaction with “real world”. It can turn some device on/off, or get status of the devices, maybe get some sensor readings, etc…
It would be nice, if SW can be upgraded with basic settings for reading / writing into these GPIOs, and maybe later with some basic logic (IFTTT).
Imagine use case:
skier is wearing this device when skiing outside ski area and fells. A simple to use switch, easily accessible (or even embedded in a glove) can be triggered to send an alarm message to rescuers or partners with location etc…
Or a buzzer is mounted onto the device, for audio alarm purposes… based on a messge it receives.
Messages could be pre defined, or somehow logically defined, like ALL PIN 5 ON to turn on GPIO pin number 5 on ALL devices in mesh network …
I totally agree! I’m merging this with an existing thread & github issue so we can make sure to do this.
I really like the potential for this added functionality. I would like to use nodes in a wide area sensor network. The nodes would have a pre-configured bunch of individual and push data on % change or at a regular timed interval. The firmware I loaded yesterday was 0.9.1
Looking forward to 1.0 and if and when some gpio functionality will be added.
It will be super interesting to capture data from sensors and trigger action (farming). Excited to follow this development =)