diy甲醛检测仪失败,紧急求助,在线等大师-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1887|回复: 7

[已解答] diy甲醛检测仪失败,紧急求助,在线等大师

[复制链接]
发表于 2021-6-30 12:55 | 显示全部楼层 |阅读模式
本人大大的小白一个,只能依样画瓢,根据坛中帖子,准备了ssd1306、nodemcu、pms5003s,照着代码写入,但是点不亮,数据接收不到。。。。我哭死了。

有没大神啊,帮看看是啥问题啊。是接线没对吗
代码如下:

/*
* Blinker AQI Detector
*/

#define BLINKER_PRINT        Serial
#define BLINKER_WIFI

#include <Blinker.h>

char ssid[] = "<Your WiFi network SSID or name>";
char pswd[] = "<Your WiFi network WPA password or WEP key>";

// U8g2lib, https://github.com/olikraus/U8g2_Arduino
#include <U8g2lib.h>

#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif

U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0, /*reset Pin*/ 13);

// BLINKER_PMSX003ST, https://github.com/i3water/Blinker_PMSX003ST
#include <BLINKER_PMSX003ST.h>

#if defined(ESP32)
HardwareSerial pmsSerial(2);// Pins 16(RX),17(TX)
#else
#include <SoftwareSerial.h>
SoftwareSerial pmsSerial(14, 15);
#endif

BLINKER_PMSX003ST pms;

uint32_t os_time_ms;

void drawAQI()
{
    u8g2.setFont(u8g2_font_helvR10_te);
    u8g2.setCursor(0, 13);
    u8g2.print("PM1.0:" + String(pms.getPmAto(1.0)));
    u8g2.setCursor(0, 27);
    u8g2.print("PM2.5:" + String(pms.getPmAto(2.5)));
    u8g2.setCursor(0, 41);
    u8g2.print("PM10:" + String(pms.getPmAto(10)));

    u8g2.setCursor(75, 13);
    u8g2.print("FA:" + String(pms.getForm()));
    u8g2.setCursor(75, 27);
    u8g2.print("RH:" + String((int)pms.getHumi()) + "%");
    u8g2.setCursor(75, 41);
    u8g2.print("TP:" + String((int)pms.getTemp()) + "°");

    u8g2.drawLine(0, 46, 128, 46);

    u8g2.setFont(u8g2_font_helvR10_te);
    u8g2.setCursor(0, 63);
    u8g2.print("Blinker AQI detector");
}

void getPMS()
{
    if (millis() - os_time_ms > 1000UL) {
#ifndef ESP32
        if (!pmsSerial.isListening()) {
            pmsSerial.listen();
            delay(100);
        }
#endif

        pms.request();
        if(!pms.read()){
            return;
        }

        os_time_ms = millis();
    }
}

void detectorDisplay()
{
    getPMS();

    u8g2.firstPage();
    do {
        drawAQI();
    } while ( u8g2.nextPage() );
}

void u8g2Init()
{
    u8g2.begin();
    u8g2.setFlipMode(0);
    u8g2.clearBuffer();
    u8g2.enableUTF8Print();
}

void pmsInit()
{
    pmsSerial.begin(9600);
    pms.begin(pmsSerial);
    pms.setMode(PASSIVE);
}

void setup()
{
    Serial.begin(115200);

    u8g2Init();
    pmsInit();

    Blinker.begin(ssid, pswd);
}

void loop()
{
    Blinker.run();

    if (Blinker.available()) {
        BLINKER_LOG2("Blinker.readString(): ", Blinker.readString());

        Blinker.vibrate();

        uint32_t BlinkerTime = millis();
        Blinker.print(BlinkerTime);
        Blinker.print("millis", BlinkerTime);
    }

    detectorDisplay();

    Blinker.print("PM1.0", pms.getPmAto(1.0), "ug/m3");
    Blinker.print("PM2.5", pms.getPmAto(2.5), "ug/m3");
    Blinker.print("PM10", pms.getPmAto(10), "ug/m3");
    Blinker.print("FA", (int)pms.getForm(), "ug/m3");
    Blinker.print("RH", (int)pms.getHumi(), "%");
    Blinker.print("TP", (int)pms.getTemp(), "°C");

    Blinker.delay(1000);
}





我的ssd1306的sda接的d2,scl接d1,传感器接的rx,目前点不亮屏幕,求助求助。。
发表于 2021-7-1 09:06 | 显示全部楼层
确保接线正确,至少你写的接rx是不正确的,程序里写的软串口。建议看懂源码再操作。
 楼主| 发表于 2021-7-1 09:38 | 显示全部楼层
coloz 发表于 2021-7-1 09:06
确保接线正确,至少你写的接rx是不正确的,程序里写的软串口。建议看懂源码再操作。 ...

你好,我意思传感器只需要把tx接到mcu的rx就行,这个有什么错误吗?望赐教。因为是小白一枚,搞不懂
发表于 2021-7-1 18:26 | 显示全部楼层
xxwalker 发表于 2021-7-1 09:38
你好,我意思传感器只需要把tx接到mcu的rx就行,这个有什么错误吗?望赐教。因为是小白一枚,搞不懂 ...

#if defined(ESP32)
HardwareSerial pmsSerial(2);// Pins 16(RX),17(TX)
#else
#include <SoftwareSerial.h>
SoftwareSerial pmsSerial(14, 15);
#endif

按程序所示链接,如果看不懂的话,可以先过一遍社区的入门教程
 楼主| 发表于 2021-7-2 09:39 | 显示全部楼层
都是神仙啊,有没谁直接指点一下,怎么接引脚啊。。。。哭死了
发表于 2022-1-20 09:37 | 显示全部楼层
当你想一步到位时,肯定会摔大马趴。建议:先弄明白显示器的运用,简单程序点亮屏幕并显示数字或文字,再就是弄懂软串口的运用,接下来就是传感器的简易显示程序,下一步是掌握blinker 的运用,从简到繁,最后才是整合前面提到的若干项,每一步出现的错误,都会导致整个程序无法正常显示。电子爱好者都是从兴趣出发,由简到繁,从失败走向成功的。
发表于 2022-1-20 09:37 | 显示全部楼层
bird_144 发表于 2022-1-20 09:37
当你想一步到位时,肯定会摔大马趴。建议:先弄明白显示器的运用,简单程序点亮屏幕并显示数字或文字,再就 ...

祝你好运
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 10:46 , Processed in 0.189485 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表