Hi @w00dr457, welcome to our community. Sounds like a fun project!
For me, I’d go with the separate unit path as it seems to be easier for me (since I have never worked with the CAN bus, it looks interesting to study and try though).
With a separate unit (like a Raspberry Pi), I think it could give you more flexibility in the project (but also more expensive). The local API of the AirGradient Open Air is easy to work with. You can also set the monitor’s configurations via the local API.
This is what it’s like to GET from the local API endpoints from my AirGradient ONE (the Open Air and the ONE share the same firmware, so the approach is identical):
GET http://airgradient_SERIALNUMBER.local/measures/current
{
"pm01": 2.83,
"pm02": 7.5,
"pm10": 7.67,
"pm01Standard": 2.83,
"pm02Standard": 7.5,
"pm10Standard": 7.67,
"pm003Count": 453,
"pm005Count": 382.67,
"pm01Count": 72,
"pm02Count": 5.67,
"pm50Count": 0.83,
"pm10Count": 0.83,
"pm02Compensated": 6.39,
"atmp": 28.43,
"atmpCompensated": 28.43,
"rhum": 58.92,
"rhumCompensated": 58.92,
"rco2": 784.33,
"tvocIndex": 42.58,
"tvocRaw": 30376.67,
"noxIndex": 1,
"noxRaw": 15052.83,
"boot": 2,
"bootCount": 2,
"wifi": -54,
"ledMode": "co2",
"serialno": "xxxxxxxxxx",
"firmware": "3.7.0",
"model": "I-9PSL"
}
GET http://airgradient_SERIALNUMBER.local/config
{
"country": "TH",
"pmStandard": "ugm3",
"ledBarMode": "iaqs",
"abcDays": 8,
"tvocLearningOffset": 12,
"noxLearningOffset": 12,
"mqttBrokerUrl": "",
"httpDomain": "",
"temperatureUnit": "c",
"disableCloudConnection": false,
"extendedPmMeasures": false,
"configurationControl": "local",
"postDataToAirGradient": true,
"ledBarBrightness": 100,
"displayBrightness": 100,
"offlineMode": false,
"monitorDisplayCompensatedValues": false,
"cellOperators": "",
"cellOperatorId": 0,
"cellOperatorFailCount": 0,
"model": "I-9PSL-DE",
"corrections": {
"pm02": {
"correctionAlgorithm": "custom",
"slr": {
"intercept": 0,
"scalingFactor": 0.016522,
"useEpa2021": true
}
}
}
}
Here’s the local API documentation for AirGradient ONE and Open Air: firmware-one-openair/docs/local-server.md at master · Open-Air-Foundation/firmware-one-openair · GitHub