sps30 icon indicating copy to clipboard operation
sps30 copied to clipboard

Issue with i2c setup

Open vacquah opened this issue 1 year ago • 11 comments

Hello

I am trying to use this cool library on a raspberrypi 4b with circuitpython. I have two other sensors connected on the i2c working ok. My circuitpython i2c interface is setup like so:

import json
import socket
import time

import adafruit_scd30
import adafruit_sht4x
import board

i2c = board.I2C() 
sht = adafruit_sht4x.SHT4x(i2c)
scd = adafruit_scd30.SCD30(i2c)

So adding the code for sps30 looks like this:

import json
import socket
import time

import adafruit_scd30
import adafruit_sht4x
import board

import sys  # this is not working - greyed out
from sps30 import SPS30

i2c = board.I2C() 
sht = adafruit_sht4x.SHT4x(i2c)
scd = adafruit_scd30.SCD30(i2c)

# sps dust sensor setup
if __name__ == "__main__":
    pm_sensor = SPS30(i2c)
    print(f"Firmware version: {pm_sensor.firmware_version()}")
    print(f"Product type: {pm_sensor.product_type()}")
    print(f"Serial number: {pm_sensor.serial_number()}")
    print(f"Status register: {pm_sensor.read_status_register()}")
    print(
        f"Auto cleaning interval: {pm_sensor.read_auto_cleaning_interval()}s")
    print(f"Set auto cleaning interval: {pm_sensor.write_auto_cleaning_interval_days(2)}s")
    pm_sensor.start_measurement()

This throws an error, because I guess its referencing a different I2C setup in your files?

Traceback (most recent call last):
  File "/opt/piMonitor_env/airmonitor.py", line 111, in <module>
    pm_sensor = SPS30(i2c)
  File "/opt/piMonitor_env/sps30.py", line 50, in __init__
    self.i2c = I2C(bus, address)
  File "/opt/piMonitor_env/i2c/i2c.py", line 11, in __init__
    self.fr = io.open("/dev/i2c-"+str(bus), "rb", buffering=0)
FileNotFoundError: [Errno 2] No such file or directory: '/dev/i2c-<busio.I2C object at 0x7f86cf22b0>'

Any ideas how to use circuitpythons i2c setup?

vacquah avatar Mar 14 '23 21:03 vacquah