This commit is contained in:
Garth Vander Houwen 2022-07-03 11:00:50 -07:00
parent 9ea1192f51
commit c015a74fcb
17 changed files with 85 additions and 241 deletions

View file

@ -1,16 +1,15 @@
Modules are included in the firmware and allow users to extend the functionality of their mesh or device.
The list of current modules is as follows:
Modules are included in the firmware and allow users to extend the functionality of their mesh or device.
| Name | Description |
|:----:|:-----------:|
| Canned Message Module | Set a number of predefined messages to send out directly from the device with the use of an input device like a rotary encoder. |
| External Notification Module | Incoming messages are able to alert you using circuits you attach to the device (LEDs, Buzzers, etc) |
| Input Broker Module | Attach and define input devices such as external keyboards and rotary encoders. |
| Range Test Module | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
| Serial Module | Send messages across the mesh by sending strings over a serial port. |
| Store and Forward Module | Set a designated node to store messages and resend them to nodes with intermittent connection to a mesh. |
| Telemetry Module | Attach sensors to the device and transmit readings on a regular interval to the mesh. |
| [Canned Message](/settings/moduleconfig/canned-message) | Set a number of predefined messages to send out directly from the device with the use of an input device like a rotary encoder. |
| [External Notification](external-notification) | Incoming messages are able to alert you using circuits you attach to the device (LEDs, Buzzers, etc) |
| [Input Broker](input-broker) | Attach and define input devices such as external keyboards and rotary encoders. |
| [Range Test](range-test) | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
| [Serial Module](serial) | Send messages across the mesh by sending strings over a serial port. |
| [Store and Forward](store-and-forward) | Set a designated node to store messages and resend them to nodes with intermittent connection to a mesh. |
| [Telemetry](telemetry) | Attach sensors to the device and transmit readings on a regular interval to the mesh. |
:::tip
Once module settings are changed, a **reset** is required for them to take effect.

View file

@ -0,0 +1,17 @@
Modules are included in the firmware and allow users to extend the functionality of their mesh or device.
The list of current modules is as follows:
| Name | Description |
|:----:|:-----------:|
| Canned Message Module | Set a number of predefined messages to send out directly from the device with the use of an input device like a rotary encoder. |
| External Notification Module | Incoming messages are able to alert you using circuits you attach to the device (LEDs, Buzzers, etc) |
| Input Broker Module | Attach and define input devices such as external keyboards and rotary encoders. |
| Range Test Module | Send messages with GPS location at an interval to test the distance your devices can communicate. Requires (at least) one device set up as a sender and one as a receiver. The receiver(s) will log all incoming messages to a CSV. |
| Serial Module | Send messages across the mesh by sending strings over a serial port. |
| Store and Forward Module | Set a designated node to store messages and resend them to nodes with intermittent connection to a mesh. |
| Telemetry Module | Attach sensors to the device and transmit readings on a regular interval to the mesh. |
:::tip
Once module settings are changed, a **reset** is required for them to take effect.
:::

View file

@ -504,3 +504,40 @@ The sensors can be wired differently, here's [one example](https://randomnerdtut
### Known Problems
- No default configuration values are currently set, so this must be done when enabling the module.
## Examples
### RAK 4631 with Environment Sensor
Setup of a RAK 4631 with Environment Sensor
[<img src="RAK4631_with_EnvSensor" src="/img/hardware/rak/RAK4631_with_EnvSensor.jpg" style={{zoom:'25%'}} />](/img/hardware/rak/RAK4631_with_EnvSensor.jpg)
Requirements:
- RAK4631
- Environment Sensor
Steps:
- configure the device:
```shell
meshtastic --set telemetry_module_measurement_enabled true --set telemetry_module_screen_enabled true --set telemetry_module_update_interval 15 --set telemetry_module_display_farenheit true --set telemetry_module_sensor_type 6
```
:::tip
You can change the values above to suit your needs. The commands can be run one at a time or in a group as show above.
:::
- reboot/reset the device (press the button or unplug/plug in the device)
- when the device boots it should say "Telemetry" and it may show the sensor data
- if still "no data", run:
```shell
meshtastic --info
```
and verify the the `telemetry_module_sensor_type`

View file

@ -1,7 +1,7 @@
---
id: device-power
title: Power Management State Machine
sidebar_label: Power Management
title: 1.2 Power Management State Machine
sidebar_label: 1.2 Power Management
---
Long battery life is one of the main goals of this project. Based on initial measurements, the current code should run for about three days between charging (assuming using a t-beam with a 3500mAh 18650 battery). This will hopefully be increased to around eight days in the future.

View file

@ -1,7 +1,7 @@
---
id: device-remote-admin
title: Remote node administration
sidebar_label: Remote node administration
title: 1.2 Remote node administration
sidebar_label: 1.2 Remote node administration
---
This feature will allow you to use the multiple channels feature to enable remote administration of Meshtastic nodes. This will let you talk through the mesh to some far away node and change that node's settings. This is an advanced feature that (currently) few users would need. Also, keep in mind it is possible (if you are not careful) to assign settings to that remote node that cause it to completely drop off of your mesh. We advise network admins have a test node to test settings with before applying changes to a remote node to prevent this.

View file

@ -1,7 +1,7 @@
---
id: remote-hardware-service
title: Remote Hardware Service
sidebar_label: Remote Hardware
title: 1.2 Remote Hardware Service
sidebar_label: 1.2 Remote Hardware
---
:::warning

View file

@ -4,4 +4,5 @@ label: 'Javascript'
collapsible: true # make the category collapsible
link:
type: generated-index
title: Javascript
title: Javascript
slug: /software/js

View file

@ -1,12 +0,0 @@
---
id: modules
title: Firmware Modules Overview
sidebar_label: Firmware Modules
---
import ModuleOverviewText from '@site/docs/_blocks/_module_overview_text.mdx';
<ModuleOverviewText/>
## Configuration
Configuration details are available on the [Device Settings](/docs/settings/modules) pages.

View file

@ -1,173 +0,0 @@
---
id: telemetry-module
title: Telemetry
sidebar_label: Telemetry
sidebar_position: 6
---
## About
The Telemetry Module will allow nodes to send a specific message with information from connected sensors. Currently supported sensors are `BME280`, `BME680`, `DHT11`, `DHT12`, `DHT21`, `DHT22`, Dallas 1-wire `DS18B20`, and `MCP9808`.
The preferred setup is using I2C, so the `telemetry_module_sensor_pin` may not be needed.
## Usage Notes
For basic usage, start with:
```shell
telemetry_module_enabled = 1
telemetry_module_screen_enabled = 1
```
Depending on which pin your sensor is connected to, set it accordingly:
```shell
telemetry_module_sensor_pin = 13
```
:::note
The device must be restarted after the settings have been changed for the module to take effect.
:::
## Hardware
The sensors can be wired differently, here's one example for sensor DS18B20 https://randomnerdtutorials.com/esp32-ds18b20-temperature-arduino-ide
## Example of T-LoraV1 with DHT22 temperature sensor
Setup of a T-LoraV1 with DHT22 temperature sensor.
[<img src="T-LoraV1 with DHT22" src="/img/hardware/lora_v1_with_DHT22.jpg" style={{zoom:'25%'}} />](/img/hardware/lora_v1_with_DHT22.jpg)
Requirements:
- T-LoraV1 (but any esp32 should work, just be sure to double check which GPIO to use)
- DHT22 sensor
- 10 Kohm resistor (optional, but recommended)
- breadboard (optional)
- two red wires (could be a different color, but 5V is typically red)
- two yellow wires for GPIO (could be a different color)
- one black wire (could be a different color, but GROUND is typically black)
Steps:
- disconnect power/battery
- connect black wire from GROUND to "-" on the DHT22
- connect yellow wire from middle PIN to a row on bread board
- connect red wire from 5V to a row on breadboard
- connect resistor between red and yellow rows
- connect red wire from row with red to "+" on DHT22
- connect yellow wire from yellow row to GPIO on device (ex: GPIO21)
- double check the cabling (if you get it wrong, you can damage the device and/or the DHT22 sensor)
- plug in device
- configure the device:
```shell
meshtastic --set telemetry_module_measurement_enabled true --set telemetry_module_screen_enabled true --set telemetry_module_update_interval 15 --set telemetry_module_display_farenheit true --set telemetry_module_sensor_type DHT22 --set telemetry_module_sensor_pin 21
```
:::tip
You can change the values above to suit your needs. The commands can be run one at a time or in a group as show above.
:::
- reboot/reset the device (press the RST button or unplug/plug in the device)
- when the device boots it should say "Telemetry" and it may show the sensor data
- if "no data", then triple check the wiring
- if still "no data", run:
```shell
meshtastic --info
```
and verify the the `telemetry_module_sensor_type and` `telemetry_module_sensor_pin`
## Example of T-LoraV1 with Dallas DS18B20 temperature sensor
Setup of a T-LoraV1 with DS18B20 temperature sensor.
[<img src="T-LoraV1 with DS18B20" src="/img/hardware/lora_v1_with_DS18B20.jpg" style={{zoom:'25%'}} />](/img/hardware/lora_v1_with_DS18B20.jpg)
Requirements:
- T-LoraV1 (but any esp32 should work, just be sure to double check which GPIO to use)
- DS18B20 sensor
- 10 Kohm resistor (optional, but recommended)
- breadboard (optional)
- two red wires (could be a different color, but 5V is typically red)
- two yellow wires for GPIO (could be a different color)
- one black wire (could be a different color, but GROUND is typically black)
Steps:
- disconnect power/battery
- connect black wire from GROUND to "-" on the DS18B20
- connect yellow wire from DAT pin to a row on bread board
- connect red wire from 5V to a row on breadboard
- connect resistor between red and yellow rows
- connect red wire from row with red to "VCC" on DS18B20
- connect yellow wire from yellow row to GPIO on device (ex: GPIO21)
- double check the cabling (if you get it wrong, you can damage the device and/or the sensor)
- plug in device
- configure the device:
```shell
meshtastic --set telemetry_module_measurement_enabled true --set telemetry_module_screen_enabled true --set telemetry_module_update_interval 15 --set telemetry_module_display_farenheit true --set telemetry_module_sensor_type DS18B20 --set telemetry_module_sensor_pin 21
```
:::tip
You can change the values above to suit your needs. The commands can be run one at a time or in a group as show above.
:::
- reboot/reset the device (press the RST button or unplug/plug in the device)
- when the device boots it should say "Telemetry" and it may show the sensor data
- if "no data", then triple check the wiring
- if still "no data", run:
```shell
meshtastic --info
```
and verify the the `telemetry_module_sensor_type` and `telemetry_module_sensor_pin`
## Example of RAK 4631 with Environment Sensor
Setup of a RAK 4631 with Environment Sensor
[<img src="RAK4631_with_EnvSensor" src="/img/hardware/rak/RAK4631_with_EnvSensor.jpg" style={{zoom:'25%'}} />](/img/hardware/rak/RAK4631_with_EnvSensor.jpg)
Requirements:
- RAK4631
- Environment Sensor
Steps:
- configure the device:
```shell
meshtastic --set telemetry_module_measurement_enabled true --set telemetry_module_screen_enabled true --set telemetry_module_update_interval 15 --set telemetry_module_display_farenheit true --set telemetry_module_sensor_type 6
```
:::tip
You can change the values above to suit your needs. The commands can be run one at a time or in a group as show above.
:::
- reboot/reset the device (press the button or unplug/plug in the device)
- when the device boots it should say "Telemetry" and it may show the sensor data
- if still "no data", run:
```shell
meshtastic --info
```
and verify the the `telemetry_module_sensor_type`
## Configuration
Configuration details are available on the [Device Settings](/docs/settings) pages. Configuring the Telemetry Module requires configuring the following modules:
- [Telemetry Module](/docs/settings/modules/telemetry-module)
## Known Problems
- No default configuration values are currently set, so this must be done when enabling the module.

View file

@ -4,4 +4,5 @@ label: Other
collapsible: true # make the category collapsible
link:
type: generated-index
title: Other
title: Other
slug: /software/other

View file

@ -1,27 +0,0 @@
---
id: remote-hardware-service
title: Remote Hardware Service
sidebar_label: 1.2 Remote Hardware
---
FIXME - the following are a collection of notes moved from elsewhere. We need to refactor these notes into actual documentation on the remote-hardware/GPIO service.
### 1.7.2. New 'no-code-IOT' mini-app
Add a new 'remote GPIO/serial port/SPI/I2C access' mini-app. This new standard app would use the MQTT messaging layer to let users (developers that don't need to write device code) do basic (potentially dangerous) operations remotely.
#### 1.7.2.1. Supported operations in the initial release
Initially supported features for no-code-IOT.
- Set any GPIO
- Read any GPIO
#### 1.7.2.2. Supported operations eventually
General ideas for no-code IOT.
- Subscribe for notification of GPIO input status change (i.e. when pin goes low, send my app a message)
- Write/read N bytes over I2C/SPI bus Y (as one atomic I2C/SPI transaction)
- Send N bytes out serial port Z
- Subscribe for notification for when regex X matches the bytes that were received on serial port Z

View file

@ -1,7 +1,8 @@
position: 5 # float position is supported
label: Firmware Modules
label: 1.2 Firmware Plugins
collapsible: true # make the category collapsible
link:
type: generated-index
title: Firmware Modules
title: Firmware Modules
slug: /software/plugins

View file

@ -1,7 +1,7 @@
---
id: canned-message-module
title: Canned messages
sidebar_label: Canned messages
sidebar_label: 1.2 Canned messages
sidebar_position: 3
---
## About

View file

@ -1,7 +1,7 @@
---
id: ext-notif-module
title: External notifications
sidebar_label: External notifications
title: 1.2 External notifications
sidebar_label: 1.2 External notifications
sidebar_position: 2
---
## About

View file

@ -1,7 +1,7 @@
---
id: range-test-module
title: Range Test Module
sidebar_label: Range Test
title: 1.2 Range Test Plugin
sidebar_label: 1.2 Range Test
sidebar_position: 1
---
## About

View file

@ -1,7 +1,7 @@
---
id: serial-module
title: Serial communication module
sidebar_label: Serial communication
id: serial-plugin
title: Serial communication plugin
sidebar_label: 1.2 Serial communication
sidebar_position: 4
---
## About

View file

@ -1,7 +1,7 @@
---
id: store-forward-module
title: Store and Forward Module
sidebar_label: Store and Forward
title: 1.2 Store and Forward Plugin
sidebar_label: 1.2 Store and Forward
sidebar_position: 5
---
## About