I tried the following code on ESP8266MOD for the ZPHS01B sensor module.
#include <Wire.h>
// ZPHS01B sensor address
#define ZPHS01B_ADDR 0xFF
void setup() {
Serial.begin(9600);
Wire.begin();
}
void loop() {
// Request 5 bytes of data from the ZPHS01B sensor
Wire.beginTransmission(ZPHS01B_ADDR);
Wire.write(0x01);
Wire.write(0x86);
Wire.write(0x00);
Wire.write(0x00);
Wire.write(0x00);
Wire.write(0x00);
Wire.write(0x00);
Wire.write(0x79);
Wire.endTransmission();
// Wait for sensor to complete measurement
delay(100);
// Read data from sensor
Wire.requestFrom(ZPHS01B_ADDR, 9);
byte data[26];
for (int i = 0; i < 26; i++) {
data[i] = Wire.read();
}
// Convert raw sensor data to meaningful values
float temperature = ((data[11] * 256 + data[12]) - 435) / 100.0;
float humidity = data[13] * 256 + data[14];
float pm25 = (data[4] * 256 + data[5]) / 10.0;
// Print sensor data to serial monitor
Serial.print("Temperature: ");
Serial.print(temperature);
Serial.println(" C");
Serial.print("Humidity: ");
Serial.print(humidity);
Serial.println();
Serial.print("PM2.5: ");
Serial.print(pm25);
Serial.println(" ug/m3");
// Wait before taking next measurement
delay(5000);
}
And getting the below-mentioned output seems to be a garbage value or something I can't interpret. Kindly help me out here
�k�d@�O@������Temperature: 655.35 C
Humidity: 655.35 %
PM2.5: 6553.50 ug/m3
Temperature: 655.35 C
Humidity: 655.35 %
PM2.5: 6553.50 ug/m3