API - General Sensors¶
In this section the Python API reference for diverse sensors is described. This library is supported on both major versions of Python: 2.x and 3.x.
In this section, the API for the following sensors is described:
- Grove Temperature Sensor
- Grove Ultrasonic Sensor
- DHT11
- DHT22
- Grove IR Receiver necessary for the Infrared Remote
IMPORTANT
This library and the other ones too are not thread-safe. You cannot call the GrovePi from multiple threads or processes as that will put the GrovePi into a broken state.
In case you need to reset the GrovePi from your Raspberry Pi, check this section.
grovepi.temp(pin, model='1.0')
¶
Read temperature from the Grove Temperature Sensor on the GrovePi.
Parameters
pin {Integer}
a number to identify the port (A0-A2) from which to do the readingmodel {String}
"1.0"
,"1.1"
,"1.2"
depending on the used model
Returns: {Float}
number to represent the temperature in ºC
grovepi.ultrasonicRead(pin)
¶
Read the distance to an object with the Grove Ultrasonic Sensor on the GrovePi. The closer it is to the targeted object, the faster the sample rate and slower when it's farther.
Parameters
pin {Integer}
a number to identify the port (D2-D8) from which to do the reading
Returns: {Integer}
number to represent the distance to the object in centimeters
grovepi.version()
¶
Read the version of the firmware.
Returns: a {String}
representing the firmware version (i.e. "1.2.7"
)
grovepi.dht(pin, module_type)
¶
Read the temperature and humidity on the GrovePi with one of the given modules.
Parameters
pin {Integer}
a number to identify the port (D2-D8) from which to do the reading-
module_type {Integer}
a number to identify the model
Returns: a {(Float, Float}
list where the 1st parameter is the temperature in ºC and the 2nd one is the humidity as a percentage.
On Error: it returns a {(Float, Float)}
list containing NaN
s. This happens when the sensor can't keep up with the demanded sample rate.
grovepi.ir_read_signal()
¶
Get the decoded value from the Grove IR Receiver. For this you need to use a remote control of any kind. The preferred one we use is the Infrared Remote.
In order to use this function, you first need to call grovepi.ir_recv_pin function to bind the functionality to a given port.
Parameters: None
Returns: a 3-element list of this form {(Integer, Integer, Integer)}
-
The 1st element keeps an
{Integer}
corresponding to a certain brand:-1
for unknown and0
for unused- RC2, RC5, NEC, SONY, PANASONIC, JVC, SAMSUNG, WHYNTER, AIWA_RC_T501, LG, SANYO, MITSUBISHI, DISH, SHARP, DENON, PRONTO, LEGO_PF having values from
1
to17
-
The 2nd element is a 16-bit address used by some Panasonic and Sharp remotes
- The 3rd element is the 32-bit decoded value that can be used to identify which buttons were pressed - since there's no map for them you need to do it on a case-by-case basis
grovepi.ir_recv_pin(pin)
¶
Enable the Grove IR Receiver on a given port. Used in conjunction with grovepi.ir_read_signal and grovepi.ir_is_data.
Parameters
pin {Integer}
The port (D2-D8) to which the IR receiver gets connected to
Returns: None
grovepi.ir_is_data()
¶
Checks if there's available data coming from the Grove IR Receiver. Used in conjunction with grovepi.ir_read_signal function.
Parameters: None
Returns: True
or False