Module support GPS (NEO 6M)

Hi,

I use version : , I have 2 sensors SDS011+ BME280 connected, everything works fine, data is sent…

I have an LCD 2004 connected to it, the sensors display well, in the settings of more sensors I saw the option to connect a GPS module (NEO 6M) communication via serial TX RX, when I activate it instead of SDS011, the LCD displays GPS but without any data values…

Does this module “GPS NEO 6M” actually support the firmware? or is it my fault?

thanks for the info,

r

The GPS module must be connected to two other pins than the SDS011. The plan was to build a mobile sensor with SDS011 and GPS, but it seemd not possible to use two serial interfaces at the same time…
The pins for GPS are defined as following:
#define GPS_SERIAL_RX D5
#define GPS_SERIAL_TX D6

Yes, it makes sense, I’m glad it’s separate from the pins for SDS011, I’ll try to connect it and send a message…
Thanks,
r

Hi,

I connected the NEO6M and it works… but the connection on my module is reversed: RX D6 / TX-D7 /maybe another version/ :grinning_face:

Do you think the newer version of the GPS NEO-M8M would work on the given FW?

We haven’t tested the Neo-M8 modules with our firmware. But the chances are good that ublox hasn’t changed the serial commands.

ok, when I have the NEO-M8M module I will connect it and write how…

another question, is it possible to connect the SDS011 + SPS30 sensors to one ESP8266 module at the same time? I guess they use the same RX/TX pin
I would like to compare measurements…

in general, is there a list of connected pins somewhere and all supported sensors in the FW? I don’t have the code from which I would read it…

thanks,

r

@ricki-z SPS30 is I2C, isn’t it?

SDS011 (serial)

Note: Serial connections are always crossed (RX on one side is connected with TX on other side)

  • Pin 1 (TX) → (RX) Pin D1 (GPIO5)
  • Pin 2 (RX) → (TX) Pin D2 (GPIO4)
  • Pin 3 (GND) → GND
  • Pin 4 (2.5m) → unused
  • Pin 5 (5V) → VU
  • Pin 6 (1m) → unused

DHT22

  • Pin 1 => 3V3
  • Pin 2 => Pin D7 (GPIO13)
  • Pin 3 => unused
  • Pin 4 => GND

DS18B20 (OneWire interface)

Please check your version (pinout) at [https://datasheets.maximintegrated.com/en/ds/DS18B20.pdf] Uses the same PIN D7 as DHT22, so DHT22 OR DS18B20 can be used.

  • GND → Pin GND
  • DQ → Pin D7 (GPIO 13)
  • VCC → Pin 3V3 or Pin VU

PMS1003 to PMS6003

Pinout: 8 7 6 5 4 3 2 1

  • Pin 1 (VCC) → VU
  • Pin 2 (GND) → GND
  • Pin 3 (SET) → unused
  • Pin 4 (RX) → Pin D2 (GPIO4)
  • Pin 5 (TX) → Pin D1 (GPIO5)
  • Pin 6 (RESET) → unused
  • Pin 7 (NC) → unused
  • Pin 8 (NC) → unused

PMS7003

Pinout PMS7003: 9 7 5 3 1 10 8 6 4 2

  • Pin 1/2 (VCC) → VU
  • Pin 3/4 (GND) → GND
  • Pin 5 (RESET) → unused
  • Pin 6 (NC) → unused
  • Pin 7 (RX) → Pin D2 (GPIO4)
  • Pin 8 (NC) → unused
  • Pin 9 (TX) → Pin D1 (GPIO5)
  • Pin 10 (SET) → unused

Honeywell PM sensor

Pinout: 8 7 6 5 4 3 2 1

  • Pin 1 (3.3V) → unused
  • Pin 2 (5V) → VU
  • Pin 3 (NC) → unused
  • Pin 4 (NC) → unused
  • Pin 5 TEST) → unused
  • Pin 6 (TX) → Pin D1 (GPIO5)
  • Pin 7 (RX) → Pin D2 (GPIO4)
  • Pin 8 (GND) → GND

BMP180 / BME/P280 / HTU21D / SHT3x (I2C)

  • VCC → Pin 3V3
  • GND → Pin GND
  • SCL → Pin D4 (GPIO2)
  • SDA → Pin D3 (GPIO0)

SPS30 (I2C, 5V)

Pinout: 1 2 3 4 5

  • Pin 1 (5V) → Pin VU/VIN
  • Pin 2 (SDA) → Pin D3 (GPIO0)
  • Pin 3 (SCL) → Pin D4 (GPIO2)
  • Pin 4 (SEL) → Pin GND
  • Pin 5 (GND) → Pin GND

LCD1602 (I2C, 5V - check your version)

  • VCC → Pin VU
  • GND → Pin GND
  • SCL → Pin D4 (GPIO2)
  • SDA → Pin D3 (GPIO0)

OLED displays with SSD1306 (I2C, 128x64 pixels)

  • VCC → Pin VU
  • GND → Pin GND
  • SCL → Pin D4 (GPIO2)
  • SDA → Pin D3 (GPIO0)

GPS NEO 6M (serial) !!! USE AT OWN RISK, in combination with PM sensor the firmware may crash !!!

VCC and GND can be provided by board (use 3.3v!)

Note: Serial connections are always crossed (RX on one side is connected with TX on other side)

  • TX von Neo → Pin D5 (RX)
  • RX von Neo → Pin D6 (TX)

Sensor.Community API “Pins”

For use of multiple sensors with Sensor.Community, you need to specify a virtual API Pin in the sensor registration form at devices.sensor.community. The firmware uses the following API pins hardcoded. These match what the Sensor.Community API expect and will be used by default when selecting the correct sensor model.

  • HPM/PMS/SDS011/SPS30 => Pin 1
  • BME280 => Pin 11
  • BMP180/BMP280 => Pin 3
  • DHT22/HTU21D/SHT3x => Pin 7
  • GPS(Neo-6M) => Pin 9
  • DS18B20 => Pin 13
  • DNMS +> Pin 15
  • a few exotic sensors in the beta version like the Next PM, the SEN5Xs, IPS-7100…

yes, SPS30 uses UART or I2C connection…
sorry I thought it was connected as SDS011 on TX/RX, that’s why I had a question about the connection…

thanks for the detailed description of connecting the sensors to the programmed pins…

one more question regarding displaying data on LCD 2004,
we have 4 lines and 20 characters available,
when the sensor sends 4 lines of data + 1 line is taken by the sensor name from FW, not everything is displayed on the LCD, can it be fixed? or is it necessary to edit the FW? or use another LCD?

e.g. something similar where I can turn on or off WiFi and device info in the LCD settings.

r

@pjg It looks like we use I2C.
(Line 114 in airrohr_firmware.ino: #include “./sps30_i2c.h”)