Compare commits
17 commits
main
...
offline-mo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dc7f57cb16 | ||
|
|
92227a2405 | ||
|
|
8bcce192da | ||
|
|
624d42bd75 | ||
|
|
ef8708649b | ||
|
|
e52fd562f3 | ||
|
|
b6b3e221b6 | ||
|
|
54b79bed86 | ||
|
|
a8e3f274ad | ||
|
|
92df3590c4 | ||
|
|
449422560d | ||
|
|
7b9bf067d3 | ||
|
|
c0877842f4 | ||
|
|
00e17a468a | ||
|
|
02bb47a524 | ||
|
|
952296010f | ||
|
|
0a45ee8372 |
13 changed files with 297 additions and 23 deletions
9
components/i2c/gps_pa1010d/definition.json
Normal file
9
components/i2c/gps_pa1010d/definition.json
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
{
|
||||
"displayName": "Mini GPS PA1010D",
|
||||
"vendor": "Adafruit",
|
||||
"productURL": "https://www.adafruit.com/product/4415",
|
||||
"documentationURL": "https://learn.adafruit.com/adafruit-mini-gps-pa1010d-module",
|
||||
"published": true,
|
||||
"i2cAddresses": [ "0x10" ],
|
||||
"isGps": true
|
||||
}
|
||||
BIN
components/i2c/gps_pa1010d/image.png
Normal file
BIN
components/i2c/gps_pa1010d/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 84 KiB |
13
components/i2c/gps_sfe_ubx/definition.json
Normal file
13
components/i2c/gps_sfe_ubx/definition.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"displayName": "MAX-M10S GPS/GNSS",
|
||||
"vendor": "SparkFun",
|
||||
"productURL": "https://www.sparkfun.com/sparkfun-gnss-receiver-breakout-max-m10s-qwiic.html",
|
||||
"documentationURL": "https://learn.sparkfun.com/tutorials/gnss-receiver-breakout---max-m10s-qwiic-hookup-guide",
|
||||
"description": "High-precision GNSS receiver with multi-constellation support and I2C interface",
|
||||
"published": true,
|
||||
"i2cAddresses": [ "0x42" ],
|
||||
"isGps": true,
|
||||
"gps": {
|
||||
"period": 1000
|
||||
}
|
||||
}
|
||||
BIN
components/i2c/gps_sfe_ubx/image.png
Normal file
BIN
components/i2c/gps_sfe_ubx/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 58 KiB |
|
|
@ -35,7 +35,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"required": [ "displayName", "vendor", "i2cAddresses", "subcomponents" ],
|
||||
"required": [ "displayName", "vendor", "i2cAddresses"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"displayName": {
|
||||
|
|
@ -81,6 +81,41 @@
|
|||
"description": "List of sensors on this I2C component.",
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/subcomponent" }
|
||||
},
|
||||
"isGps": {
|
||||
"description": "If true, this component is a GPS module.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"gps": {
|
||||
"type": "object",
|
||||
"description": "Configuration for GPS devices.",
|
||||
"required": [
|
||||
"period"
|
||||
],
|
||||
"properties": {
|
||||
"commands_pmtks": {
|
||||
"type": "array",
|
||||
"description": "List of PMTK commands (MediaTek) in string format",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"commands_ubxes": {
|
||||
"type": "array",
|
||||
"description": "List of UBX commands (U-Blox) in bytes format",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"contentEncoding": "base64"
|
||||
}
|
||||
},
|
||||
"period": {
|
||||
"type": "integer",
|
||||
"description": "Desired period to poll the GPS module, in milliseconds",
|
||||
"minimum": 0,
|
||||
"maximum": 65535
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,10 +1,15 @@
|
|||
{
|
||||
"displayName": "VINDRIKTNING (PM1006)",
|
||||
"vendor": "IKEA",
|
||||
"deviceId": "pm1006",
|
||||
"productURL": "https://www.ikea.com/us/en/p/vindriktning-air-quality-sensor-60515911/",
|
||||
"documentationURL": "https://learn.adafruit.com/ikea-vindriktning-hack-with-qt-py-esp32-s3-and-adafruit-io",
|
||||
"published": true,
|
||||
"subcomponents": ["pm25-env"],
|
||||
"baudRate": 9600,
|
||||
"inverted": false
|
||||
"deviceType": "pm25aqi",
|
||||
"pm25aqi": {
|
||||
"is_pm1006": true,
|
||||
"period": 30000,
|
||||
"sensor_types": ["pm25-env"]
|
||||
}
|
||||
}
|
||||
|
|
@ -1,10 +1,14 @@
|
|||
{
|
||||
"displayName": "pms5003",
|
||||
"vendor": "PLANTOWER",
|
||||
"deviceId": "pms5003",
|
||||
"productURL": "https://www.adafruit.com/product/3686",
|
||||
"documentationURL": "https://learn.adafruit.com/pm25-air-quality-sensor",
|
||||
"published": true,
|
||||
"subcomponents": ["pm10-std", "pm25-std", "pm100-std", "pm10-env", "pm25-env", "pm100-env"],
|
||||
"baudRate": 9600,
|
||||
"inverted": false
|
||||
"deviceType": "pm25aqi",
|
||||
"pm25aqi": {
|
||||
"period": 30000,
|
||||
"sensor_types": ["pm10-std", "pm25-std", "pm100-std", "pm10-env", "pm25-env", "pm100-env"]
|
||||
}
|
||||
}
|
||||
BIN
components/uart/pms5003/image.png
Normal file
BIN
components/uart/pms5003/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 68 KiB |
|
|
@ -4,9 +4,15 @@
|
|||
"type": "object",
|
||||
"$defs": {
|
||||
"subcomponent": {
|
||||
"type": ["string", "object"],
|
||||
"type": [
|
||||
"string",
|
||||
"object"
|
||||
],
|
||||
"pattern": "^(unspecified|accelerometer|magnetic-field|orientation|gyroscope|light|pressure|proximity|gravity|acceleration|rotation|humidity|ambient-temp|object-temp|voltage|current|color|raw|pm10-std|pm25-std|pm100-std|pm10-env|pm25-env|pm100-env|co2|gas-resistance|altitude|lux|eco2|unitless-percent|ambient-temp-fahrenheit|object-temp-fahrenheit|voc-index|nox-index|tvoc)$",
|
||||
"required": [ "displayName", "sensorType" ],
|
||||
"required": [
|
||||
"displayName",
|
||||
"sensorType"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"displayName": {
|
||||
|
|
@ -22,20 +28,20 @@
|
|||
"maxLength": 24
|
||||
},
|
||||
"sensorType": {
|
||||
"description": "One of the supported I2C sensor type strings (found in README).",
|
||||
"description": "One of the supported sensor-type strings (found in README).",
|
||||
"type": "string",
|
||||
"pattern": "^(unspecified|accelerometer|magnetic-field|orientation|gyroscope|light|pressure|proximity|gravity|acceleration|rotation|humidity|ambient-temp|object-temp|voltage|current|color|raw|pm10-std|pm25-std|pm100-std|pm10-env|pm25-env|pm100-env|co2|gas-resistance|altitude|lux|eco2|unitless-percent|ambient-temp-fahrenheit|object-temp-fahrenheit|voc-index|nox-index|tvoc)$"
|
||||
},
|
||||
"defaultPeriod": {
|
||||
"description": "What period to the form should default to for this sensor.",
|
||||
"type": "number",
|
||||
"minimum": 30,
|
||||
"maximum": 86400
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"required": [ "displayName", "vendor", "subcomponents", "baudRate"],
|
||||
"required": [
|
||||
"displayName",
|
||||
"vendor",
|
||||
"deviceId",
|
||||
"baudRate",
|
||||
"deviceType"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"displayName": {
|
||||
|
|
@ -70,10 +76,23 @@
|
|||
"minLength": 3,
|
||||
"maxLength": 24
|
||||
},
|
||||
"subcomponents": {
|
||||
"description": "List of sensor subcomponents comprising the primary UART component.",
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/$defs/subcomponent" }
|
||||
"pinTx": {
|
||||
"description": "The desired UART TX pin",
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 16
|
||||
},
|
||||
"pinRx": {
|
||||
"description": "The desired UART RX pin",
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"maxLength": 16
|
||||
},
|
||||
"portNumber": {
|
||||
"description": "The desired UART bus port number",
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 3
|
||||
},
|
||||
"baudRate": {
|
||||
"description": "The desired UART bus baud rate, in bps.",
|
||||
|
|
@ -81,9 +100,166 @@
|
|||
"minimum": 1200,
|
||||
"maximum": 256000
|
||||
},
|
||||
"inverted": {
|
||||
"description": "When True, this component will invert TX/RX signals on the UART bus.",
|
||||
"format": {
|
||||
"description": "The data, parity, and stop bits configuration for the serial port. Defaults to 8N1 (8 data bits, no parity, 1 stop bit).",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"unspecified",
|
||||
"8n1",
|
||||
"5n1",
|
||||
"6n1",
|
||||
"7n1",
|
||||
"5n2",
|
||||
"6n2",
|
||||
"7n2",
|
||||
"8n2",
|
||||
"5e1",
|
||||
"6e1",
|
||||
"7e1",
|
||||
"8e1",
|
||||
"5e2",
|
||||
"6e2",
|
||||
"7e2",
|
||||
"8e2",
|
||||
"5o1",
|
||||
"6o1",
|
||||
"7o1",
|
||||
"8o1",
|
||||
"5o2",
|
||||
"6o2",
|
||||
"7o2",
|
||||
"8o2"
|
||||
],
|
||||
"default": "8n1"
|
||||
},
|
||||
"timeout": {
|
||||
"description": "Maximum milliseconds to wait for serial data. Defaults to 1000 ms.",
|
||||
"type": "number",
|
||||
"minimum": 0,
|
||||
"maximum": 65535
|
||||
},
|
||||
"use_sw_serial": {
|
||||
"description": "If True, uses software serial instead of hardware serial. Defaults to False.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"invert_sw_serial": {
|
||||
"description": "If True, inverts the UART signal on RX and TX pins. Defaults to False.",
|
||||
"type": "boolean"
|
||||
},
|
||||
"deviceId": {
|
||||
"description": "The unique identifier string for the UART device.",
|
||||
"type": "string",
|
||||
"minLength": 3,
|
||||
"maxLength": 30
|
||||
},
|
||||
"deviceType": {
|
||||
"description": "The data, parity, and stop bits configuration for the serial port. Defaults to 8N1 (8 data bits, no parity, 1 stop bit).",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"unspecified",
|
||||
"generic_input",
|
||||
"generic_output",
|
||||
"gps",
|
||||
"pm25aqi",
|
||||
"tmc22xx"
|
||||
],
|
||||
"default": "unspecified"
|
||||
},
|
||||
"pm25aqi": {
|
||||
"type": "object",
|
||||
"description": "Configuration for PM2.5 AQI sensors",
|
||||
"required": [
|
||||
"period",
|
||||
"sensor_types"
|
||||
],
|
||||
"properties": {
|
||||
"is_pm1006": {
|
||||
"type": "boolean",
|
||||
"description": "True if the device is a PM1006 AQ sensor",
|
||||
"default": false
|
||||
},
|
||||
"period": {
|
||||
"type": "integer",
|
||||
"description": "The period to poll the device, in milliseconds",
|
||||
"minimum": 0,
|
||||
"maximum": 65535
|
||||
},
|
||||
"sensor_types": {
|
||||
"type": "array",
|
||||
"description": "SI Types for each sensor on the I2c device",
|
||||
"items": {
|
||||
"$ref": "#/$defs/subcomponent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"generic_input": {
|
||||
"type": "object",
|
||||
"description": "Configuration for generic UART input devices.",
|
||||
"required": [
|
||||
"period",
|
||||
"sensor_types"
|
||||
],
|
||||
"properties": {
|
||||
"line_ending": {
|
||||
"description": "The line ending format for incoming data.",
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"unspecified",
|
||||
"lf",
|
||||
"crlf",
|
||||
"timeout_100ms",
|
||||
"timeout_1000ms"
|
||||
],
|
||||
"default": "unspecified"
|
||||
},
|
||||
"period": {
|
||||
"type": "integer",
|
||||
"description": "The period to poll the device, in milliseconds",
|
||||
"minimum": 0,
|
||||
"maximum": 65535
|
||||
},
|
||||
"sensor_types": {
|
||||
"type": "array",
|
||||
"description": "SI Types for each sensor on the I2c device",
|
||||
"items": {
|
||||
"$ref": "#/$defs/subcomponent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
},
|
||||
"gps": {
|
||||
"type": "object",
|
||||
"description": "Configuration for GPS devices.",
|
||||
"required": [
|
||||
"period"
|
||||
],
|
||||
"properties": {
|
||||
"commands_pmtks": {
|
||||
"type": "array",
|
||||
"description": "List of PMTK commands (MediaTek) in string format",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"commands_ubxes": {
|
||||
"type": "array",
|
||||
"description": "List of UBX commands (U-Blox) in bytes format",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"contentEncoding": "base64"
|
||||
}
|
||||
},
|
||||
"period": {
|
||||
"type": "integer",
|
||||
"description": "Desired period to poll the GPS module, in milliseconds",
|
||||
"minimum": 0,
|
||||
"maximum": 65535
|
||||
}
|
||||
},
|
||||
"additionalProperties": false
|
||||
}
|
||||
}
|
||||
}
|
||||
18
components/uart/ultimate_gps/definition.json
Normal file
18
components/uart/ultimate_gps/definition.json
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
"displayName": "Adafruit Ultimate GPS Breakout",
|
||||
"vendor": "Adafruit",
|
||||
"deviceId": "adaultimategps",
|
||||
"productURL": "https://www.adafruit.com/product/5440",
|
||||
"documentationURL": "https://learn.adafruit.com/adafruit-ultimate-gps/",
|
||||
"description": "High-performance GPS module with 10Hz updates and external antenna support",
|
||||
"published": true,
|
||||
"baudRate": 9600,
|
||||
"format": "8n1",
|
||||
"timeout": 1000,
|
||||
"use_sw_serial": false,
|
||||
"invert_sw_serial": false,
|
||||
"deviceType": "gps",
|
||||
"gps": {
|
||||
"period": 1000
|
||||
}
|
||||
}
|
||||
BIN
components/uart/ultimate_gps/image.png
Normal file
BIN
components/uart/ultimate_gps/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 69 KiB |
14
components/uart/us100/definition.json
Normal file
14
components/uart/us100/definition.json
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{
|
||||
"displayName": "US-100 Distance Sensor",
|
||||
"vendor": "e-Gizmo",
|
||||
"deviceId": "us100",
|
||||
"productURL": "https://www.adafruit.com/product/4019",
|
||||
"documentationURL": "https://learn.adafruit.com/ultrasonic-sonar-distance-sensors",
|
||||
"published": true,
|
||||
"baudRate": 9600,
|
||||
"deviceType": "generic_input",
|
||||
"generic_input": {
|
||||
"sensor_types": ["raw", "ambient-temp"],
|
||||
"period": 30
|
||||
}
|
||||
}
|
||||
BIN
components/uart/us100/image.png
Normal file
BIN
components/uart/us100/image.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 94 KiB |
Loading…
Reference in a new issue