The One-Wire Bricklet can be used to communicate with any 1-wire capable device.
The API uses a set of high-level commands (bus search, reset, write, read, write command). Each command will give immediate status feedback for easy error detection.
Up to 64 devices can be connected to the bus and used at the same time.
A jumper can be used to switch between 3.3V, 5V or an external supply voltage for the connected 1-wire devices.
An example application would be to read the temperature of a MAX31820 1-wire ambient temperature sensor.
This Bricklet ist not galvanically isolated to the Tinkerforge system. This means that there is a direct electrical connection between the terminals of the Bricklet and the rest of the system. Dependent of the application this can lead to undesired connections, ground loops or short circuits. These problems can be prevented by using the Bricklet together with a Isolator Bricklet.
Property | Value |
---|---|
Current Consumption | 35mW (7mA at 5V) |
Maximum Bus Size | 64 |
Supported Voltage | 3.3V, 5V and external supply |
Commands | bus search, reset, write, read, write command |
Dimensions (W x D x H) | 30 x 30 x 14mm (1.18 x 1.18 x 0.55") |
Weight | 6.5g |
You can connect any 1-Wire device to the VCC/DAT/GND (voltage, data, ground) pins.
The jumper can be used to switch the supply voltage applied to VCC between 3.3V and 5V. If the jumper is set to NC, you can connect an external power supply to VCC. If you want to use an external power supply, you can not put the jumper on the 3.3V/5V pin headers.
The following example uses Python to read the temperature of a MAX31820 temperature sensor with the API of the One Wire Bricklet:
ow.write_command(0, 0x4E) # WRITE SCRATCH PAD
ow.write(0x00) # ALARM H (unused)
ow.write(0x00) # ALARM L (unused)
ow.write(0x7F) # CONFIGURATION: 12 bit mode
while True:
ow.write_command(0, 0x44) # CONVERT T (start temperature conversion)
time.sleep(1) # Wait for conversion to finish
ow.write_command(0, 0xBE) # READ SCRATCH PAD
t_low = ow.read().data # Read LSB
t_high = ow.read().data # Read MSB
print('Temperature: {0} °C'.format((t_low | (t_high << 8)) / 16.0))
To test a One Wire Bricklet you need to have Brick Daemon and Brick Viewer installed. Brick Daemon acts as a proxy between the USB interface of the Bricks and the API bindings. Brick Viewer connects to Brick Daemon. It helps to figure out basic information about the connected Bricks and Bricklets and allows to test them.
Connect the One Wire Bricklet to a Brick with a Bricklet Cable and connect a 1-wire device to the Bricklet.
If you connect the Brick to the PC over USB, you should see a new tab named "One Wire Bricklet" in the Brick Viewer after a moment. Select this tab. If everything went as expected you can now use Brick Viewer to communicate with a connected 1-wire device.
After this test you can go on with writing your own application. See the Programming Interface section for the API of the One Wire Bricklet and examples in different programming languages.
A laser-cut case for the One Wire Bricklet is available.
The assembly is easiest if you follow the following steps:
Below you can see an exploded assembly drawing of the One Wire Bricklet case:
Hint: There is a protective film on both sides of the plates, you have to remove it before assembly.
See Programming Interface for a detailed description.
Language | API | Examples | Installation |
---|---|---|---|
C/C++ | API | Examples | Installation |
C/C++ for Microcontrollers | API | Examples | Installation |
C# | API | Examples | Installation |
Delphi/Lazarus | API | Examples | Installation |
Go | API | Examples | Installation |
Java | API | Examples | Installation |
JavaScript | API | Examples | Installation |
LabVIEW | API | Installation | |
Mathematica | API | Examples | Installation |
MATLAB/Octave | API | Examples | Installation |
MQTT | API | Examples | Installation |
openHAB | API | Examples | Installation |
Perl | API | Examples | Installation |
PHP | API | Examples | Installation |
Python | API | Examples | Installation |
Ruby | API | Examples | Installation |
Rust | API | Examples | Installation |
Shell | API | Examples | Installation |
Visual Basic .NET | API | Examples | Installation |
TCP/IP | API | ||
Modbus | API |