The life of the sensor is limited to 8000 hours, so it is worth taking measurements cyclically, e.g. every 15 minutes, starting the device for 30 seconds. During operation, the sensor consumes ~ 65mA, while in sleep mode ~ 2mA. The air suction turbine produces a low hum during operation.
In a closed room, the display values fluctuated around ~ 10-20ug / m3. When the air intake is blocked, the displayed values have dropped to single units. Opening the window increased the value to several dozen. I also went to the sensor area airly receiving similar indications (different by + -10). I have no other way of checking the device, but it seems to be working fine.
[movie: 27efcedd85] https://filmy.elektroda.pl/8_1541353265.mp4 [/ movie: 27efcedd85]
In the Arduino environment you will find many libraries to help you run the sensor, just search for the phrase SDS011, e.g. https://github.com/lewapek/sds-dust-sensors-arduino-library The communication protocol is quite well described in the specification on the manufacturer's website, so to first attempts, makeshift code can be used.
Below is the test code, after uploading it to the Arduino UNO, connect the appropriate pins of the module to the RX / TX. In the serial console we will see the values of the concentration of PM2.5 and PM10 in the air sucked in by the sensor.
[syntax=c]byte data_buff[10];
byte data_count=0;
byte data_rdy=0;
void setup() {
Serial.begin(9600);
}
void loop() {
byte data;
int pm25,pm10;
if(Serial.available() > 0){
data = Serial.read();
if(data_rdy==0){
if(data_count==0 && data==0xAA){
data_buff[data_count]=data;
data_count++;
}else if(data_count==1 && data==0xC0){
data_buff[data_count]=data;
data_count++;
}else if(data_count>1 && data_count 0){
data = Serial.read();
if(data_rdy==0){
if(data_count==0 && data==0xAA){
data_buff[data_count]=data;
data_count++;
}else if(data_count==1 && data==0xC0){
data_buff[data_count]=data;
data_count++;
}else if(data_count>1 && data_count
Cool? Ranking DIY