Difference between revisions of "Component: Temperature (DS18S20) (Environmental)"
| (16 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
| − | + | {| style="width:50%" | |
| − | |||
| − | {| | ||
|- | |- | ||
| − | | width="20%" style="color: gray;" | Author | + | | width="20%" style="color:gray;" | Author |
| MatrixTSL | | MatrixTSL | ||
|- | |- | ||
| − | | width="20%" style="color: gray;" | Version | + | | width="20%" style="color:gray;" | Version |
| − | | 1.0 | + | | 1.0 |
|- | |- | ||
| − | | width="20%" style="color: gray;" | Category | + | | width="20%" style="color:gray;" | Category |
| Environmental | | Environmental | ||
|} | |} | ||
| + | ==Temperature (DS18S20) component== | ||
| + | A rugged temperature sensor allowing one or more sensors to be addressed and read. Capable of reading temperatures from -55 to +125 degrees C. Requires a One Wire component to perform the bus operations. | ||
| − | == | + | ==Detailed description== |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | ''No detailed description exists yet for this component'' | |
| − | |||
| − | + | ==Examples== | |
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | + | This example shows how to connect the DS18S20 component to the OneWire component and either select a specific device on the bus or scan through the devices on the bus collecting the temperature readings. | |
| − | + | The temperature and serial number is output using a UART connection as is onboard a Arduino or ESP32 device. | |
| − | |||
| + | {{fcfile|Example_DS18S20.fcfx|Example DS18S20}} | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| + | ==Macro reference== | ||
| − | == | + | ===AddressNextDevice=== |
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AddressNextDevice''' | ||
| + | |- | ||
| + | | colspan="2" | Scans for the next connected device with a matching family code. Goes through the device list generated by the ScanBus macro. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| + | ===AddressSpecificDevice=== | ||
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''AddressSpecificDevice''' | ||
| + | |- | ||
| + | | colspan="2" | Starts a temperature conversion on a specific device using a hex string identifier. SerialNumber parameter should be 12 characters and contain the 48-bit Serial. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING | ||
| + | | width="90%" | SerialNumber | ||
| + | |- | ||
| + | | colspan="2" | 48-bit Serial Number e.g. "32DF4A3C1901" | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| − | |||
| − | + | ===GetSerialString=== | |
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetSerialString''' | ||
| + | |- | ||
| + | | colspan="2" | Gets the Serial String for the current addressed device. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-string-icon.png]] - STRING | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| − | + | ===GetTemperature=== | |
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''GetTemperature''' | ||
| + | |- | ||
| + | | colspan="2" | Reads the temperature from the last sample on the selected device. The selected device is set using the AddressNext or AddressSpecific macros. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-f32-icon.png]] - FLOAT | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| − | + | ===Initialise=== | |
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Initialise''' | ||
| + | |- | ||
| + | | colspan="2" | Configures each matching sensor on the bus with the specified conversion bits. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| − | + | ===SampleAddressedDevice=== | |
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SampleAddressedDevice''' | ||
| + | |- | ||
| + | | colspan="2" | Performs a temperature conversion on the current addressed device. Requires one of the Address component macros to be called. The temperature can be read using the ReadTemperature macro. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| + | | width="90%" | WaitForCompletion | ||
| + | |- | ||
| + | | colspan="2" | 0=Dont Wait, 1=Block and Wait To Complete | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| − | + | ===SampleAllDevices=== | |
| + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#D8C9D8;" align="center" | [[File:Fc9-comp-macro.png]] | ||
| + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''SampleAllDevices''' | ||
| + | |- | ||
| + | | colspan="2" | Performs a temperature conversion on all compatible devices. The temperature can be read using the ReadTemperature macro. Brefore calling ReadTemperature you need to use one of the Address macros. | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL | ||
| + | | width="90%" | WaitForCompletion | ||
| + | |- | ||
| + | | colspan="2" | 0=Dont Wait, 1=Block and Wait To Complete | ||
| + | |- | ||
| + | | width="10%" align="center" style="border-top: 2px solid #000;" | [[File:Fc9-void-icon.png]] - VOID | ||
| + | | width="90%" style="border-top: 2px solid #000;" | ''Return'' | ||
| + | |} | ||
| − | |||
| − | + | ==Property reference== | |
| − | + | {| class="wikitable" style="width:60%; background-color:#FFFFFF;" | |
| − | + | |- | |
| − | + | | width="10%" align="center" style="background-color:#D8C9D8;" | [[File:Fc9-prop-icon.png]] | |
| − | + | | width="90%" style="background-color:#D8C9D8; color:#4B008D;" | '''Properties''' | |
| − | + | |- | |
| − | + | |- | |
| − | The maximum amount of time in milliseconds it will take for a sample to complete. | + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] |
| − | + | | width="90%" | LinkTo | |
| − | + | |- | |
| − | + | | colspan="2" | | |
| − | + | |- | |
| − | + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | |
| − | The maximum resolution steps that the temperature can be read in. | + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Sensor Settings |
| − | + | |- | |
| − | + | |- | |
| − | + | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | |
| − | + | | width="90%" | CRC Checking | |
| − | + | |- | |
| − | No - We use the panel GUI to perform the simulation. | + | | colspan="2" | Allows the data to be checked before being returned. Useful if the comunication with the sensor cannot be guarenteed. GetTemperature will return 999.9 if the CRC is not a match. |
| − | + | |- | |
| − | Yes - We use OneWire comms via an API to communicate with real hardware. | + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] |
| − | + | | width="90%" | Alarm High | |
| − | + | |- | |
| − | + | | colspan="2" | The high byte of the alarm range | |
| − | + | |- | |
| − | + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | |
| − | Sens the number of sensors we can communicate with during simulation | + | | width="90%" | Alarm Low |
| + | |- | ||
| + | | colspan="2" | The Low byte of the Alarm range | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
| + | | width="90%" | Conversion Bits | ||
| + | |- | ||
| + | | colspan="2" | The number of bits used to perform a temperature sample. Controls the conversion time and the resolution. | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-type-21-icon.png]] | ||
| + | | width="90%" | Max Conversion Time | ||
| + | |- | ||
| + | | colspan="2" | The maximum amount of time in milliseconds it will take for a sample to complete. | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-type-15-icon.png]] | ||
| + | | width="90%" | Temperature Resolution | ||
| + | |- | ||
| + | | colspan="2" | The maximum resolution steps that the temperature can be read in. | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
| + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Simulation | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-type-7-icon.png]] | ||
| + | | width="90%" | Simulate Comms | ||
| + | |- | ||
| + | | colspan="2" | No - We use the panel GUI to perform the simulation. Yes - We use OneWire comms via an API to communicate with real hardware. | ||
| + | |- | ||
| + | | width="10%" align="center" style="background-color:#EAE1EA;" | [[File:Fc9-conn-icon.png]] | ||
| + | | width="90%" style="background-color:#EAE1EA; color:#4B008D;" | Panel Simulation | ||
| + | |- | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-type-16-icon.png]] | ||
| + | | width="90%" | Number Sensors | ||
| + | |- | ||
| + | | colspan="2" | Sens the number of sensors we can communicate with during simulation | ||
| + | |- | ||
| + | | width="10%" align="center" | [[File:Fc9-type-10-icon.png]] | ||
| + | | width="90%" | Serial 0 | ||
| + | |- | ||
| + | | colspan="2" | Serial number for simulated one wire device | ||
| + | |} | ||
| − | + | ==Component Source Code== | |
| − | + | Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Temperature_DS18S20.fcfx FC_Comp_Source_Temperature_DS18S20.fcfx] | |
| − | + | Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Temperature_DS18S20.fcfx FC_Comp_Source_Temperature_DS18S20.fcfx] | |
Latest revision as of 21:16, 27 January 2026
| Author | MatrixTSL |
| Version | 1.0 |
| Category | Environmental |
Contents
Temperature (DS18S20) component
A rugged temperature sensor allowing one or more sensors to be addressed and read. Capable of reading temperatures from -55 to +125 degrees C. Requires a One Wire component to perform the bus operations.
Detailed description
No detailed description exists yet for this component
Examples
This example shows how to connect the DS18S20 component to the OneWire component and either select a specific device on the bus or scan through the devices on the bus collecting the temperature readings.
The temperature and serial number is output using a UART connection as is onboard a Arduino or ESP32 device.
Macro reference
AddressNextDevice
| AddressNextDevice | |
| Scans for the next connected device with a matching family code. Goes through the device list generated by the ScanBus macro. | |
| Return | |
AddressSpecificDevice
GetSerialString
| GetSerialString | |
| Gets the Serial String for the current addressed device. | |
| Return | |
GetTemperature
| GetTemperature | |
| Reads the temperature from the last sample on the selected device. The selected device is set using the AddressNext or AddressSpecific macros. | |
| Return | |
Initialise
| Initialise | |
| Configures each matching sensor on the bus with the specified conversion bits. | |
| Return | |
SampleAddressedDevice
SampleAllDevices
Property reference
Component Source Code
Please click here to download the component source project: FC_Comp_Source_Temperature_DS18S20.fcfx
Please click here to view the component source code (Beta): FC_Comp_Source_Temperature_DS18S20.fcfx