Giter VIP home page Giter VIP logo

iaq_board's People

Contributors

adebree avatar badn1nja avatar dinth avatar ferdymercury avatar michaelmior avatar nkitanov avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iaq_board's Issues

Replacement for TSL 2561?

Hi!

First off, thanks for a great project. Im waiting for all my parts to arrive to I can go ahead and assemble it !
However, it seems quite hard to get the TSL 2561.. Do you have any suggestion of a "drop in replacement" for this part?

/Tilly

Error in compiling firmware

I just completed building two of the iaq boards and they both are connected to wifi and work (I love them!). I can integrate them both in Home Assistant independently. However, when I want to integrate them both, it only shows one working device. Since i figured HA has no way to differentiate one from another, I wanted to change the name in the .yaml file. Unfortunately, when compiling I get the error:

Failed config

light.neopixelbus: [source /config/esphome/arjen.yaml:591]

'variant' is a required option for [light.neopixelbus].
platform: neopixelbus
num_leds: 3
pin: GPIO16
name: RGB strip
id: rgb_led
default_transition_length: 0s

Does someone have an idea how to solve this? Or an alternative approach to solve my initial problem?
Many thanks!

Firmware not compatible with Home Assistant ESPHome addon

Hi. Could you please provide a config file which would be compatible with ESPHome docker image (HA addon)?
Right now it requires: brightness.yaml include to be pasted to the main config and also is missing fonts, which im not sure how to overcome.

Turn off Wemos D1 ESP32 onboard led

I have everything set up and working. Good work on the displays and led turning off when it gets dark. The Wemos ESP32 onboard led however stays on. Is there a way to turn this off at the same time?

PMSX003 Sleep mode

Hello!
Amazing work on the sensor. I've got already all the components currently working on a protoboard.

I've got a question related the PMSX003 (I have the PMS7003). I noticed that when sleeping the fan is audible for me so I was wondering if there's a way to put it into sleep mode and wake it up each XX minutes to take a reading. That would also hopefully make the sensor life longer.

I've checked the yaml in the repo but it seems there's nothing like that included.

Thanks for any info and sharing this with us!

pm1 and pm10 missing

I am only seeing pm2.5 but not the output for pm1 or pm10. Is it supposed to do that, and if not any thoughts on what I could check? Thanks

JLC PCB does not support Gerber X2

Hi. Fantastic project, thanks for sharing.
I went to JLCPCB to order some PCBs and this was the email they sent to me after my order:

We noticed your files are in Gerber X2 format but currently JLCPCB is still not ready for Gerber X2 (We are working on to support Gerber X2, but not fully done yet).

If we use current CAM tools to convert the X2 file, there is high risk of lossing traces and get deformed pads.

Some customers already received defective boards with Gerber X2 files.

So please do not check "Use extended X2 format" when you plot the Gerber files.

Ref:

https://forum.kicad.info/t/jlcpcb-strange-issue-with-rounded-rectangle-pads-kicad-nightly/26715

When we are ready for Gerber X2, we'll announce it.

No reading from PMS7003

Hey! First of all thanks for your work on this project. I really appreciate it. It's the first time I ordered a custom PCB and I hope it will bring me to making more custom devices.

I have ordered your PCB, with the D1 mini ESP32, the MH-Z19 and PMS7003. Other sensors/components are still on their way.

Therefore I use a limited part of your config:

uart:
  - rx_pin: GPIO1
    baud_rate: 9600
    id: pms
  
  - rx_pin: GPIO18
    tx_pin: GPIO19
    baud_rate: 9600
    id: mh


sensor:
    - platform: pmsx003
      type: PMSX003
      uart_id: pms
      pm_1_0:
        name: "PM 1 Concentration"
        id: pm1
      pm_2_5:
        name: "PM 2.5 Concentration"
        id: pm2_5
      pm_10_0:
        name: "PM 10 Concentration"
        id: pm10

    - platform: mhz19
      co2:
        name: "CO2"
        id: co2
      temperature:
        name: "MH-Z19 Temperature"
      update_interval: 10s
      automatic_baseline_calibration: false
      uart_id: mh
      id: mh_sensor

switch:
  - platform: gpio
    name: "PMS7003_SET"
    pin: 
      number: GPIO26
      mode: OUTPUT
    restore_mode: ALWAYS_ON
    id: pms_set

The readings from the CO2 sensor are just fine and roughly what I expect. However, I get no reading from the PMS7003.

Some observations:

  • The fan of the PMS7003 is running, so I assume that 5V and GND are connected correctly
  • Using a multimeter, I measured:
    • 0.4 Ohm between the two 5V pins (of PCB header)
    • 0.4 Ohm between the two GND pins (of PCB header)
    • open loop between 5V and GND pins (of PCB header)
    • open loop or >MOhm between other pin combinations (of PCB header)
    • 0.4 Ohm between GPIO1 on Wemos D1 and pin9 of PCB header
      From this I conclude that galvanically, the connections should be fine.

I've thought about my PMS7003 being faulty, but I have no way to double check as I have no 1.25 mm pitch headers/converter cables.

I read somewhere online about pulling up the set pin. Is this required for this board?

Is there something else I should check before ordering a new sensor?

Plastic spacer missing in BOM

Thank you so much for sharing all this information in enormous details. We are planning to build a couple of this for fun, learning and entertainment. I just noticed a plastic spacer in your video between on of the the displays and the PCB. Although technically not needed of course, can you add these to the BOM with the details of the size? Thanks!

SGP30 - Unkown setup error

Hi,

First of all, I would like to thank you for the cool project. Super work! 😎

Unfortunately I have a problem with the SGP30 sensor. I built and programmed everything as you described in the repository, but when starting the device I get the following message:

[22:24:58][C][sgp30:178]: SGP30:
[22:24:58][C][sgp30:179]:   Address: 0x58
[22:24:58][W][sgp30:195]: Unknown setup error!
[22:24:58][C][sgp30:209]:   Update Interval: 1.0s
[22:24:58][C][sgp30:210]:   eCO2 'eCO2'
[22:24:58][C][sgp30:210]:     Unit of Measurement: 'ppm'
[22:24:58][C][sgp30:210]:     Accuracy Decimals: 1
[22:24:58][C][sgp30:210]:     Icon: 'mdi:molecule-co2'
[22:24:58][C][sgp30:211]:   TVOC 'TVOC'
[22:24:58][C][sgp30:211]:     Unit of Measurement: 'ppb'
[22:24:58][C][sgp30:211]:     Accuracy Decimals: 1
[22:24:58][C][sgp30:211]:     Icon: 'mdi:radiator'
[22:24:58][C][sgp30:213]:   Compensation:
[22:24:58][C][sgp30:214]:     Temperature Source: 'Temperature'
[22:24:58][C][sgp30:214]:       Unit of Measurement: '°C'
[22:24:58][C][sgp30:214]:       Accuracy Decimals: 1
[22:24:58][C][sgp30:214]:       Icon: 'mdi:thermometer'
[22:24:58][C][sgp30:215]:     Humidity Source: 'Humidity'
[22:24:58][C][sgp30:215]:       Unit of Measurement: '%'
[22:24:58][C][sgp30:215]:       Accuracy Decimals: 1
[22:24:58][C][sgp30:215]:       Icon: 'mdi:water-percent'

The first thing I thought was that the sensor is broken and I tried a NodeMCU (ESP8266) and set it up in ESPHome (+ Home Assistant). There everything worked and I got legitimate values back, so the sensor can not be broken.
I also tried to connect the sensor to the PCB with the receptacle in the middle of the board, but I got the same error.

This is the relevant configuration for the SGP30:

i2c:
  scl: GPIO22
  sda: GPIO21
  frequency: 100kHz

sensor:
  - platform: sgp30
    address: 0x58
    eco2:
      name: "eCO2"
      accuracy_decimals: 1
      id: eco2
    tvoc:
      name: "TVOC"
      accuracy_decimals: 1
      id: tvoc
    update_interval: 1s
    baseline:
      eco2_baseline: 0x92B7
      tvoc_baseline: 0x935A
    compensation:
      temperature_source: temp
      humidity_source: hum

Do you guys have any idea what the problem could be?

[IDEA] Closed box

Hi,

This is a great project. It would be great to have a closed box for it (maybe for a slimmed version, without LEDs, and displays).

Questions about this device

Hello,
I am building a device for room presence detection and I was wondering if this type of device might be what I need for the job.
From asking around I found out that humans produce lots of carbon dioxide when breathing so it can become a viable metric for presence detection.
So can you or someone who built this device can tell me the carbon levels when there is a human present and when there is no one. I am mainly interested in how big the difference is.
Also how much time does it take for the carbon levels to be normal/stable.

And about the carbon dioxide sensors you said that the sgp30 is more or less inaccurate compared to the dedicated sensor so I was wondering how inaccurate is it?
Thank you!

Share F360 design files

Yesterday I tried opening the f360 design linked on this github page. However, the design is not viewable or downloadable. Could you please share the f360 design files so that I can build my own enclosure?

Thanks!

Firmware doesnt compile on 2022.12.X ESPHome - linking problem

Hi. After the update to 2022.12 the firmware stopped compiling.

Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/esp32-hal-uart.c.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/firmware_msc_fat.c.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/libb64/cdecode.c.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/libb64/cencode.c.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/main.cpp.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/stdlib_noniso.c.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/wiring_pulse.c.o
Compiling /data/iaq-kitchen/.pioenvs/iaq-kitchen/FrameworkArduino/wiring_shift.c.o
Archiving /data/iaq-kitchen/.pioenvs/iaq-kitchen/libFrameworkArduino.a
Linking /data/iaq-kitchen/.pioenvs/iaq-kitchen/firmware.elf
/data/cache/platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/ld: /data/cache/platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/lib/libvfs.a(vfs.c.obj): in function `esp_vfs_utime':
/Users/ficeto/Desktop/ESP32/ESP32S2/esp-idf-public/components/vfs/vfs.c:585: multiple definition of `utime'; /data/iaq-kitchen/.pioenvs/iaq-kitchen/src/main.cpp.o:/config/esphome/.esphome/build/iaq-kitchen/src/main.cpp:68: first defined here
collect2: error: ld returned 1 exit status
*** [/data/iaq-kitchen/.pioenvs/iaq-kitchen/firmware.elf] Error 1
========================= [FAILED] Took 59.34 seconds ==================

fatal error: ArduinoJson.h: No such file or directory

Here's the result of esphome iaq_board.yaml run.

Tried with:

  • ESPHome v1.15.3
  • ESPHome v1.17.0-dev
$ esphome iaq_board.yaml run
INFO Reading configuration iaq_board.yaml...
INFO Generating C++ source...
INFO Compiling app...
INFO Running:  platformio run -d iaq_board
Processing iaq_board (board: wemos_d1_mini32; framework: arduino; platform: [email protected])
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
PACKAGES:
 - framework-arduinoespressif32 3.10004.200129 (1.0.4)
 - tool-esptoolpy 1.20600.0 (2.6.0)
 - toolchain-xtensa32 2.50200.80 (5.2.0)
Dependency Graph
|-- <NeoPixelBus> 2.6.0
|   |-- <SPI> 1.0
|-- <DNSServer> 1.1.0
|   |-- <WiFi> 1.0
|-- <Wire> 1.0.1
|-- <Update> 1.0
|-- <WiFi> 1.0
|-- <ESPmDNS> 1.0
|   |-- <WiFi> 1.0
Compiling .pioenvs/iaq_board/src/esphome/components/api/api_connection.cpp.o
Compiling .pioenvs/iaq_board/src/esphome/components/api/api_server.cpp.o
Compiling .pioenvs/iaq_board/src/esphome/components/api/list_entities.cpp.o
Compiling .pioenvs/iaq_board/src/esphome/components/api/proto.cpp.o
In file included from src/esphome/components/light/light_color_values.h:8:0,
                 from src/esphome/components/light/light_effect.h:4,
                 from src/esphome/components/light/light_state.h:6,
                 from src/esphome/core/controller.h:11,
                 from src/esphome/components/api/util.h:5,
                 from src/esphome/components/api/list_entities.h:5,
                 from src/esphome/components/api/list_entities.cpp:1:
src/esphome/components/json/json_util.h:4:25: fatal error: ArduinoJson.h: No such file or directory

*********************************************************************
* Looking for ArduinoJson.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ArduinoJson.h"
* Web  > https://platformio.org/lib/search?query=header:ArduinoJson.h
*
*********************************************************************

compilation terminated.
In file included from src/esphome/components/light/light_color_values.h:8:0,
                 from src/esphome/components/light/light_effect.h:4,
                 from src/esphome/components/light/light_state.h:6,
                 from src/esphome/core/controller.h:11,
                 from src/esphome/components/api/util.h:5,
                 from src/esphome/components/api/proto.cpp:2:
src/esphome/components/json/json_util.h:4:25: fatal error: ArduinoJson.h: No such file or directory

*********************************************************************
* Looking for ArduinoJson.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ArduinoJson.h"
* Web  > https://platformio.org/lib/search?query=header:ArduinoJson.h
*
*********************************************************************

compilation terminated.
In file included from src/esphome/components/light/light_color_values.h:8:0,
                 from src/esphome/components/light/light_effect.h:4,
                 from src/esphome/components/light/light_state.h:6,
                 from src/esphome/core/controller.h:11,
                 from src/esphome/components/api/api_server.h:4,
                 from src/esphome/components/api/api_server.cpp:1:
src/esphome/components/json/json_util.h:4:25: fatal error: ArduinoJson.h: No such file or directory

*********************************************************************
* Looking for ArduinoJson.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ArduinoJson.h"
* Web  > https://platformio.org/lib/search?query=header:ArduinoJson.h
*
*********************************************************************

compilation terminated.
*** [.pioenvs/iaq_board/src/esphome/components/api/api_server.cpp.o] Error 1
*** [.pioenvs/iaq_board/src/esphome/components/api/list_entities.cpp.o] Error 1
*** [.pioenvs/iaq_board/src/esphome/components/api/proto.cpp.o] Error 1
In file included from src/esphome/components/light/light_color_values.h:8:0,
                 from src/esphome/components/light/light_effect.h:4,
                 from src/esphome/components/light/light_state.h:6,
                 from src/esphome/core/application.h:30,
                 from src/esphome/components/api/api_connection.h:4,
                 from src/esphome/components/api/api_connection.cpp:1:
src/esphome/components/json/json_util.h:4:25: fatal error: ArduinoJson.h: No such file or directory

*********************************************************************
* Looking for ArduinoJson.h dependency? Check our library registry!
*
* CLI  > platformio lib search "header:ArduinoJson.h"
* Web  > https://platformio.org/lib/search?query=header:ArduinoJson.h
*
*********************************************************************

compilation terminated.
*** [.pioenvs/iaq_board/src/esphome/components/api/api_connection.cpp.o] Error 1
============================================================================== [FAILED] Took 2.86 seconds ==============================================================================

Troubleshooting, all of the I2C devices give 'communication failed'

Thanks for your awesome project, soldering it was really fun. Unfortunately I am now facing the issue none of the I2C devices can be found. I did a fully assembled board, so with the TSL2561, the BME280, both the SSD1306 OLEDs and the SGP30. In the ESPHome Debug log I get:

[E][bme280.sensor:146]: Communication with BME280 failed!�
[E][tsl2561:044]: Communication with TSL2561 failed!�
[E][ssd1306_i2c:031]: Communication with SSD1306 failed!�
[E][ssd1306_i2c:031]: Communication with SSD1306 failed!�

All the soldering looks good, have you any suggestion on how to approach this problem?

PCB pin socket for MH-Z19 CO2 sensor

Hi!

Saw your installation video - considering the CO2 sensor is the most expensive part and the B version seems more difficult to get, along with several different versions (and bad clones)-

  • MH-Z19B
  • MH-Z19C
  • MH-Z19D
  • MH-Z1311A

Was thinking of revisiting the ability to make this piece removable (in case I need to swap sensors due to fake or something else - even some Z19C versions are being rebadged as Z19B). Making it removable will most likely alter the overall thickness and height of the device from the pcb. I've also been looking into PCB pin socket/receptacles to see if it's possible to minimize the height difference.

Thanks for this project!

YAML doesnt compile on new ESPHome - Neopixel variant not defined

Hi. I cannot compile it using the latest ESPHome, because im getting Neopixel error:

INFO Reading configuration /config/esphome/iaq-privateoffice.yaml...
WARNING 'iaq_privateoffice': Using the '_' (underscore) character in the hostname is discouraged as it can cause problems with some DHCP and local name services. For more information, see https://esphome.io/guides/faq.html#why-shouldn-t-i-use-underscores-in-my-device-name
Failed config

light.neopixelbus: [source /config/esphome/iaq-privateoffice.yaml:587]
  
  'variant' is a required option for [light.neopixelbus].
  platform: neopixelbus
  num_leds: 3
  pin: GPIO16
  name: RGB strip
  id: rgb_led
  default_transition_length: 0s

Redesign board for QuinLED-ESP32 Ethernet

Hello,
Thank you for the great project! I built an IAQ-Board and it works well. The only issues experienced are the typical WiFi issues. To help with these WiFi issues I am interested in designing a new PCB to work with the QuinLED-ESP32 boards. Specifically, the ethernet model but it should work for the other QuinLED boards too. Also, since the QuinLED boards share the same pinout, it will work with the WeMos D1 Mini ESP32 as well.

Unfortunately, the Ethernet module of the QuinLED board requires many of the same pins as your PCB layout, and the serial ports, i2c, and the button will need to be moved.

I2C: GPIO21 -> GPIO13 and GPIO22 -> GPIO14
PMS7003 Serial: GPIO1 -> GPIO15
MH-Z19 Serial: GPIO18 -> GPIO1 and GPIO19 -> GPIO3
Button: GPIO23 -> GPIO32
PMS7003_SET: GPIO26 -> GPIO33

Questions

  • Do you see an issue with using the pins above? I've tried to avoid input only as well as bootstrap pins.
  • In the readme, you also mention changing the pin of one of the dust sensors. Can you provide more info?

can a MH-Z19C be used as a drop in for the MH-Z19B?

The supplier in the BOM for the MH-Z19B is out of stock. It is much easier to get an MH-Z19C here in Germany from a trustier supplier then a MH-Z19B.
From the Datesheet the MH-Z19C seems to be pin compatible, but i have seen reports that say that it is more fickle with its voltage supply.
Do you have any Idea if it should work on this PCB?

Import files into EasyEDA

Hi!
I'm trying to import the Kicad files into EasyEDA but I'm getting an error. I'm not sure if it's the way Kicad export the files or the other way around. Is there any other options for exporting on kicad. Looks like EasyEDA supports these
Screenshot 2021-07-19 at 17 38 36

Second Display linked in BOM does not work correctly

I bought the exact linked display. But i took the v2 Version with the Buttons on the Ali Express site.
The Problem is that it displays the same contents as the first display, regardless which address is configured.

Which looks like this:

The Display looks like this:

I even tried removing the first display completely from the code which just had the effect that none of the displays showed anything.
My current assumption is that those displays are simply bad, but maybe somebody has an input.

Funny thing about the first display is that mine is configurable on the back between 0x78 and 0x7A but it still works with the default addresses.

Ordering

Hi all. Is there any chance to order an assembeled board?

Through board instead of smd

I was wondering how hard it would be to change the design to have through board holes for the D1 Mini, instead of SMD pads? I have not played with trying to design a PCB before.

Thanks

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.