I2C is a serial communication bus able to address multiple devices along the same 2-wire bus.
Toit exposes the peripheral through the
import gpio import serial.protocols.i2c as i2c main: bus := i2c.Bus --sda=gpio.Pin 21 --scl=gpio.Pin 22
Each device must have a unique address. The address can be found in the datasheet for the selected peripheral - it's an 7-bit integer.
In case of the Bosch BME280 sensor, the address is
import gpio import serial.protocols.i2c as i2c main: bus := i2c.Bus --sda=gpio.Pin 21 --scl=gpio.Pin 22 device := bus.device 0x76
The default frequency of the I2C bus is 400kHz in Toit. This can be changed as an argument to the
i2c.Bus at construction time with
Remember that when changing the frequency, the associated pull-up resistors may have to be changed as well.