Skip to content

Commit

Permalink
Hardware pins added
Browse files Browse the repository at this point in the history
  • Loading branch information
jbanaszczyk committed Apr 22, 2018
1 parent 765d935 commit 972ae06
Show file tree
Hide file tree
Showing 3 changed files with 299 additions and 98 deletions.
37 changes: 30 additions & 7 deletions examples/Dynamic02/Dynamic02.ino
Original file line number Diff line number Diff line change
Expand Up @@ -16,10 +16,14 @@ Pms* pms_ = nullptr;
pmsx::Pms pms(&pmsSerial);
#endif

// Brown GND
// Black VCC +5V
// All signal pins: 3.3 V logic
// Green 8
// Blue 9
// Brown GND
// Black VCC
// optional
// white 7
// fiolet 6

////////////////////////////////////////

Expand All @@ -32,16 +36,35 @@ void setup(void) {
#if defined PMS_DYNAMIC
pms_ = new Pms(&pmsSerial);
#else
// ReSharper disable once CppExpressionWithoutSideEffects
if (! pms.begin() ) {
if (! pms.begin()) {
Serial.println("Serial communication with PMS sensor failed");
return;
}
#endif

pms.write(pmsx::PmsCmd::CMD_WAKEUP);
pms.setPinReset(6);
pms.setPinSleepMode(7);

if (!pms.write(pmsx::PmsCmd::CMD_RESET)) {
pms.write(pmsx::PmsCmd::CMD_SLEEP);
pms.write(pmsx::PmsCmd::CMD_WAKEUP);
}
pms.write(pmsx::PmsCmd::CMD_MODE_PASSIVE);
pms.write(pmsx::PmsCmd::CMD_READ_DATA);
pms.waitForData(pmsx::Pms::TIMEOUT_PASSIVE, pmsx::PmsData::FRAME_SIZE);
pmsx::PmsData data;
auto status = pms.read(data);
if (status != pmsx::PmsStatus::OK) {
Serial.print("PMS sensor: ");
Serial.println(status.getErrorMsg());
}
pms.write(pmsx::PmsCmd::CMD_MODE_ACTIVE);
pms.waitForData(pmsx::Pms::WAKEUP_TIME);
if (!pms.isWorking()) {
Serial.println("PMS sensor failed");
}

Serial.print("Time of setup(): ");
Serial.println(millis());
}

////////////////////////////////////////
Expand All @@ -61,7 +84,7 @@ void loop(void) {
Serial.println(newRead - lastRead);
lastRead = newRead;

auto view = data.particles;
auto view = data.particles;
for (auto i = 0; i < view.SIZE; ++i) {
Serial.print(view[i]);
Serial.print("\t");
Expand Down
91 changes: 52 additions & 39 deletions examples/Simple01/Simple01.ino
Original file line number Diff line number Diff line change
Expand Up @@ -7,36 +7,49 @@ pmsx::Pms pms(&pmsSerial);

////////////////////////////////////////

// Brown GND
// Black VCC +5V
// All signal pins: 3.3 V logic
// Green 8
// Blue 9
// Brown GND
// Black VCC
// optional
// white 7
// fiolet 6

// ReSharper disable once CppInconsistentNaming
void setup(void) {
Serial.begin(115200);
while (!Serial) {}
Serial.println("PMS5003");

if (!pms.begin() ) {
Serial.println("Serial communication with PMS sensor failed");
if (!pms.begin()) {
Serial.println("PMS sensor: communication failed");
return;
}

pms.write(pmsx::PmsCmd::CMD_WAKEUP);
pms.write(pmsx::PmsCmd::CMD_MODE_ACTIVE);
pms.waitForData(pmsx::Pms::WAKEUP_TIME);
}

pms.write(pmsx::PmsCmd::CMD_MODE_PASSIVE);
pms.setPinReset(6);
pms.setPinSleepMode(7);

for ( auto i = 0; i < 100; ++i ) {
if (!pms.write(pmsx::PmsCmd::CMD_RESET)) {
pms.write(pmsx::PmsCmd::CMD_SLEEP);
delay(50);
pms.write(pmsx::PmsCmd::CMD_WAKEUP);
delay(50);

}
pms.write(pmsx::PmsCmd::CMD_MODE_PASSIVE);
pms.write(pmsx::PmsCmd::CMD_READ_DATA);
pms.waitForData(pmsx::Pms::TIMEOUT_PASSIVE, pmsx::PmsData::FRAME_SIZE);
pmsx::PmsData data;
auto status = pms.read(data);
if (status != pmsx::PmsStatus::OK) {
Serial.print("PMS sensor: ");
Serial.println(status.getErrorMsg());
}
pms.write(pmsx::PmsCmd::CMD_MODE_ACTIVE);
if (!pms.isWorking()) {
Serial.println("PMS sensor failed");
}

Serial.print("Time of setup(): ");
Serial.println(millis());
}

////////////////////////////////////////
Expand All @@ -50,31 +63,31 @@ void loop(void) {
auto status = pms.read(data);

switch (status) {
case pmsx::PmsStatus::OK: {
Serial.println("_________________");
const auto newRead = millis();
Serial.print("Wait time ");
Serial.println(newRead - lastRead);
lastRead = newRead;

auto view = data.particles;
for (auto i = 0; i < view.getSize(); ++i) {
Serial.print(view[i]);
Serial.print("\t");
Serial.print(view.getName(i));

Serial.print(" [");
Serial.print(view.getMetric(i));
Serial.print("] ");
Serial.print(view.getLevel(i));
Serial.println();
}
break;
case pmsx::PmsStatus::OK: {
Serial.println("_________________");
const auto newRead = millis();
Serial.print("Wait time ");
Serial.println(newRead - lastRead);
lastRead = newRead;

auto view = data.particles;
for (auto i = 0; i < view.getSize(); ++i) {
Serial.print(view[i]);
Serial.print("\t");
Serial.print(view.getName(i));

Serial.print(" [");
Serial.print(view.getMetric(i));
Serial.print("] ");
Serial.print(view.getLevel(i));
Serial.println();
}
case pmsx::PmsStatus::NO_DATA:
break;
default:
Serial.print("!!! Pms error: ");
Serial.println(status.getErrorMsg());
break;
}
case pmsx::PmsStatus::NO_DATA:
break;
default:
Serial.print("!!! Pms error: ");
Serial.println(status.getErrorMsg());
}
}
Loading

0 comments on commit 972ae06

Please sign in to comment.