sensirion / arduino-i2c-sen5x Goto Github PK
View Code? Open in Web Editor NEWArduino library to work with Sensirion's SEN5x environmental sensor modules via I2C
License: BSD 3-Clause "New" or "Revised" License
Arduino library to work with Sensirion's SEN5x environmental sensor modules via I2C
License: BSD 3-Clause "New" or "Revised" License
Hello, I am new to working with the Sensirion devices and am unsure if this is the right place to ask but I currently have a Sen55 connected to an ESP32 Dev Kit and I am trying to change the auto clean of the fan by using the sen5x.setFanAutoCleaning() function. Everything compiles fine but when I upload the code I get some kind of guru error. Its not the biggest issue since I know the fan is automatically set to auto clean every week but as someone new to this I am just curious what could be causing this. I even tried to use sen5x.StartFanCleaning(); to force it to clean but I get the same error. Thank you for your help!
I'd like to use the SEN55 with a 3.3v microcontroller. I see that the I2C interface supports 3.3v but I'm wondering if/how to explicitly set it. I want to make sure the sensor doesn't send 5v to my controller. Can you please help explain?
Thanks.
(sorry for posting a question and not an actual issue. Is there a better place to post than here?)
Look towards the end of this comment and you'll see that one of the particle values is correctly shown as scaled by 10, but the rest are not, and I've highlighted the first incorrect line in the comment.
arduino-i2c-sen5x/src/SensirionI2CSen5x.h
Line 337 in d7a73c8
The code documentation for startMeasurementWithoutPm() states:
* This command is only available in idle mode. If the device is already * in any measure mode, this command has no effect.
The application note "Reduced Power Operation for SEN5x - Application note describing SEN5x reduced power mode" v1.0 shows a state diagram with transitions DIRECTLY between the gas-only and PM-inclusive modes.
Could you please advise which is correct (and fix the incorrect!)
Hello, I am an Application Engineer in Seeed Studio.
I used the code from exampleUsage.
I have this problem in Arduino Uno.
Not enough space in buffer.
I made a usage list.
Board | Not enough space |
---|---|
Arduino Uno | Yes |
Genuino Uno | Yes |
Genuino 101 | Yes |
Arduino Mega 2560 | Yes |
Arduino Due | Yes |
Wio Terminal(Atmel SAMD51) | Yes |
ESP32 | No |
Hi,
I'm just wrapping my head around how setVocTuningParameters and setVocAlgorithmState work and differ.
Does the algorithm state store historical data such as 12hour history, and so it differs from just storing setting parameters for VocTuningParameters - such as offsets?
Is there a reason there is a setNoxTuningParameters but no setNoxAlgoirthmState, whilst VOC has this? I'm looking at the SGP41 repo, and it seems this can exist and can be made available? I'm trying to understand if this is possible on the SEN51. Is there more documentation on this?
Thanks!!
Hello,
I'm using a SEN54 and SEN55 with an ESP32 C3 board in deep sleep mode. I run the code and I let SEN54 run for 20 seconds before stop measuring and enter the board into sleep. I left the board running for days but I always get the same value of PM10 PM2.5 PM4, it's pretty weired.
what I'm missing? I used the code example available in this rep.
best
I am trying to get the voc algorithm state and set it upon startup.
For getting the algorithm array
byte statesize = 12;
byte state[statesize];
int error = sen5x.getVocAlgorithmState(state,statesize);
Output : { 49, 229, 238, 62, 0, 49, 202, 99, 185, 252, 63, 123 }
After that when saving the state, "Not enough space in buffer" error triggers for the following code:
byte statesize = 12;
byte state[statesize] = { 49, 229, 238, 62, 0, 49, 202, 99, 185, 252, 63, 123 };
char errorMessage[256];
int error = sen5x.setVocAlgorithmState(state,statesize);
if(error)
{
errorToString(error, errorMessage, 256);
Serial.println(errorMessage);
}
The error occurs from the Sensirion Arduino Core --> SensirionI2CTxFrame.cpp --> uint16_t SensirionI2CTxFrame::_addByte(uint8_t data)
function.
SEN5x datasheet says in section 6.1.11 that there is Checksum returned when reading. Do I not send the checksum when using the setVocAlgorithmState ? An example of how to set the state would be really appreciated. Thank you
Getting 65535 repeatedly as raw value, while I am getting voc index value. But I actually need voc raw value in ppb. Please help.
not able to understand what is voc value in ticks. ticks in my knowledge is timing/ clock cycle of mcu. how can we relate this to a physical value like temperature, voc, etc?
Hey, I've got all three models, and using the measureValues as floats works nicely for the 55+54, but the 50 returns failed temp+humidity values (NAN) and valid particle counts (and expected NANs for nox/voc).
I do know that there's a separate method for the sen50, but could the other method be made to not fail, as that would make most peoples lives easier. Don't drop the method for the 50, but make the other methods work as far as possible for the 50.
Thanks ❤️
Also on the curiosities front, I just got 3 new (one of each) sensors, and previously just had a single SEN55 from the same supplier. I've found the new lot to be vibrating more than expected (fan vibrations). Particularly when held by both sides between thumb and forefinger, from next to cable to edge of QRcode. Is this expected to be quite a lot, and how would one even measure such a thing?
Is there a batch number or anything in the QRcode that tells me which fan I've got if you've used more than one?
The header file for the library notes that 'typicalParticleSize' as returned by 'readMeasuredPmValuesAsIntegers' needs to be scaled, by dividing by 1000, to produce the floating point size in microns as returned by 'readMeasuredPmValues'. The code only divides by 10. Boulders!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.