meshtastic/docs/software/modules/telemetry.mdx
2022-04-24 23:32:31 +01:00

228 lines
7.1 KiB
Plaintext

---
id: telemetry-module
title: Telemetry
sidebar_label: Telemetry
sidebar_position: 6
---
import PluginModule from '@site/docs/_blocks/_plugin_module.mdx';
<PluginModule name="telemetry_module_environment" rename="environmental_measurement_plugin" />
## 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.
## Configuration
These are the settings that can be configured.
telemetry_module_enabled
Is the module enabled?
0 = Disabled (Default)
1 = Enabled
telemetry_module_screen_enabled
Show received sensor readings on device screen.
0 = Disabled (Default)
1 = Enabled
telemetry_module_read_error_count_threshold
Error count threshold for failed sensor readings.
Default = 0
preferences.telemetry_module_update_interval
How often (in seconds) should sensor readings be broadcasted?
Default = 0
telemetry_module_recovery_interval
For how long should we wait (in seconds) before trying to read sensors again upon exceeded error threshold?
Default = 0
telemetry_module_display_fahrenheit
Should temperature readings be converted to fahrenheit?
0 = Disabled (Default)
1 = Enabled
telemetry_module_sensor_type
What sensor is connected?
0 = DHT11 (Default)
1 = Dallas 1-wire DS18B20
2 = DHT12
3 = DHT21
4 = DHT22
5 = BME280
6 = BME680
7 = MCP9808
telemetry_module_sensor_pin
Which pin is the sensor connected to?
Default = 0
## 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`
## Known Problems
- No default configuration values are currently set, so this must be done when enabling the module.