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 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 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.