Jump to content

Component: Temperature (DS1822) (Environmental): Difference between revisions

From Flowcode Help
XML import
 
m Text replacement - "style="background-color:#EAE1EA;"" to "class="mtx-class-propfolder""
 
(22 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{| style="width:50%"
 
{| 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 (Release)
| 1.0
|-
|-
| width="20%" style="color: gray;" | Category
| width="20%" style="color:gray;" | Category
| Environmental
| Environmental
|}
|}




==Temperature (DS1822) 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.


==[[File:Component Icon df4eca75_779f_47ce_9495_56d3233be5e1.png|Image]] Temperature (DS1822) component==
==Component Source Code==
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.


==Examples==
Please click here to download the component source project: [https://www.flowcode.co.uk/wiki/componentsource/FC_Comp_Source_Temperature_DS1822.fcfx FC_Comp_Source_Temperature_DS1822.fcfx]
''<span style="color:red;">No additional examples</span>''


Please click here to view the component source code (Beta): [https://www.flowcode.co.uk/FlowchartView/?wfile=componentsource/FC_Comp_Source_Temperature_DS1822.fcfx FC_Comp_Source_Temperature_DS1822.fcfx]


==Downloadable macro reference==
==Detailed description==


===<span style="font-weight: normal;"><u><tt>SampleAllDevices</tt></u></span>===
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.


'''Parameters'''


:[[Variable Types|BOOL]] ''WaitForCompletion''
::0=Dont Wait, 1=Block and Wait To Complete




'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>AddressSpecificDevice</tt></u></span>===
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.


'''Parameters'''


:[[Variable Types|<- STRING]] ''SerialNumber''
::48-bit Serial Number e.g. "32DF4A3C1901"
::''This parameter may be returned back to the caller''




'''Return value'''


:''This call does not return a value''




===<span style="font-weight: normal;"><u><tt>AddressNextDevice</tt></u></span>===
Scans for the next connected device with a matching family code.


Goes through the device list generated by the ScanBus macro.


'''Parameters'''


:''This macro has no parameters''




'''Return value'''
''No detailed description exists yet for this component''


:''This call does not return a value''
==Examples==




===<span style="font-weight: normal;"><u><tt>GetSerialString</tt></u></span>===
Gets the Serial String for the current addressed device.


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|STRING]]




===<span style="font-weight: normal;"><u><tt>GetTemperature</tt></u></span>===
Reads the temperature from the last sample on the selected device.


The selected device is set using the AddressNext or AddressSpecific macros.


'''Parameters'''


:''This macro has no parameters''




'''Return value'''


:[[Variable Types|FLOAT]]




===<span style="font-weight: normal;"><u><tt>SampleAddressedDevice</tt></u></span>===
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.


'''Parameters'''


:[[Variable Types|BOOL]] ''WaitForCompletion''
::0=Dont Wait, 1=Block and Wait To Complete




'''Return value'''


:''This call does not return a value''


This example shows how to connect the DS1822 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.


===<span style="font-weight: normal;"><u><tt>Initialise</tt></u></span>===
The temperature and serial number is output using a UART connection as is onboard a Arduino or ESP32 device.
Configures each matching sensor on the bus with the specified conversion bits.


'''Parameters'''
{{fcfile|Example_DS1822.fcfx|Example DS1822}}


:''This macro has no parameters''




'''Return value'''


:''This call does not return a value''






==Simulation macro reference==


''This component does not contain any simulation macros''




==Property reference==
<span style="font-weight: normal;"><u>One Wire Component</u></span>


This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''OneWireComp''.
==Macro reference==


Link to the one wire component to host the bus.
===AddressNextDevice===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''AddressNextDevice'''
|-
| colspan="2" | Scans for the next connected device with a matching family code. Goes through the device list generated by the ScanBus macro.&nbsp;
|-
|-
| 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''
|}


<span style="font-weight: normal;"><u>Alarm High</u></span>


This property is of type ''Unsigned integer'' and can be referenced with the variable name ''AlarmHigh''.
===AddressSpecificDevice===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''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.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-string-icon.png]] - STRING
| width="90%" | SerialNumber
|-
| colspan="2" | 48-bit Serial Number e.g. "32DF4A3C1901"&nbsp;
|-
| 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''
|}


The high byte of the alarm range


<span style="font-weight: normal;"><u>Alarm Low</u></span>
===GetSerialString===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''GetSerialString'''
|-
| colspan="2" | Gets the Serial String for the current addressed device.&nbsp;
|-
|-
| 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''
|}


This property is of type ''Unsigned integer'' and can be referenced with the variable name ''AlarmLow''.


The Low byte of the Alarm range
===GetTemperature===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''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.&nbsp;
|-
|-
| 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''
|}


<span style="font-weight: normal;"><u>Conversion Bits</u></span>


This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''ConversionBits''.
===Initialise===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''Initialise'''
|-
| colspan="2" | Configures each matching sensor on the bus with the specified conversion bits.&nbsp;
|-
|-
| 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''
|}


The number of bits used to perform a temperature sample.


Controls the conversion time and the resolution.
===SampleAddressedDevice===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''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.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | WaitForCompletion
|-
| colspan="2" | 0=Dont Wait, 1=Block and Wait To Complete&nbsp;
|-
| 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''
|}


<span style="font-weight: normal;"><u>Max Conversion Time</u></span>


This property is of type ''Unsigned integer'' and can be referenced with the variable name ''MaxConvTime''.
===SampleAllDevices===
{| class="mtx-class-macrotable wikitable"
|-
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-comp-macro.png]]
| width="90%" class="mtx-class-macrohead" | '''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.&nbsp;
|-
|-
| width="10%" align="center" | [[File:Fc9-bool-icon.png]] - BOOL
| width="90%" | WaitForCompletion
|-
| colspan="2" | 0=Dont Wait, 1=Block and Wait To Complete&nbsp;
|-
| 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''
|}


The maximum amount of time in milliseconds it will take for a sample to complete.


<span style="font-weight: normal;"><u>Temperature Resolution</u></span>
==Property reference==


This property is of type ''Floating point'' and can be referenced with the variable name ''TempRes''.
{| class="mtx-class-macrotable wikitable"
 
|-
The maximum resolution steps that the temperature can be read in.
| width="10%" align="center" class="mtx-class-macrohead" | [[File:Fc9-prop-icon.png]]
 
| width="90%" class="mtx-class-macrohead" | '''Properties'''  
<span style="font-weight: normal;"><u>Simulate Comms</u></span>
|-
 
|-
This property is of type ''True or false'' and can be referenced with the variable name ''SimComms''.
| width="10%" align="center" | [[File:Fc9-type-16-icon.png]]
 
| width="90%" | One Wire Component
No - We use the panel GUI to perform the simulation.
|-
 
| colspan="2" | Link to the one wire component to host the bus.&nbsp;
Yes - We use OneWire comms via an API to communicate with real hardware.
|-
 
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
<span style="font-weight: normal;"><u>Number Sensors</u></span>
| width="90%" class="mtx-class-propfolder" | Sensor Settings
 
|-
This property is of type ''Fixed list of ints'' and can be referenced with the variable name ''NumSensors''.
|-
 
| width="10%" align="center" | [[File:Fc9-type-7-icon.png]]
Sens the number of sensors we can communicate with during simulation
| width="90%" | CRC Checking
 
|-
<span style="font-weight: normal;"><u>Serial 0</u></span>
| 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.&nbsp;
 
|-
This property is of type ''Line of text'' and can be referenced with the variable name ''Serial0''.
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
 
| width="90%" | Alarm High
Serial number for simulated one wire device
|-
| colspan="2" | The high byte of the alarm range&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-type-21-icon.png]]
| width="90%" | Alarm Low
|-
| colspan="2" | The Low byte of the Alarm range&nbsp;
|-
| 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.&nbsp;
|-
| 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.&nbsp;
|-
| 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.&nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | 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.&nbsp;
|-
| width="10%" align="center" class="mtx-class-propfolder" | [[File:Fc9-conn-icon.png]]
| width="90%" class="mtx-class-propfolder" | 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&nbsp;
|-
| width="10%" align="center" | [[File:Fc9-type-10-icon.png]]
| width="90%" | Serial 0
|-
| colspan="2" | Serial number for simulated one wire device&nbsp;
|}

Latest revision as of 14:37, 13 July 2026

Author MatrixTSL
Version 1.0
Category Environmental


Temperature (DS1822) 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.

Component Source Code

Please click here to download the component source project: FC_Comp_Source_Temperature_DS1822.fcfx

Please click here to view the component source code (Beta): FC_Comp_Source_Temperature_DS1822.fcfx

Detailed description

No detailed description exists yet for this component

Examples

This example shows how to connect the DS1822 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.

Example DS1822






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. 
- VOID Return


AddressSpecificDevice

AddressSpecificDevice
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. 
- STRING SerialNumber
48-bit Serial Number e.g. "32DF4A3C1901" 
- VOID Return


GetSerialString

GetSerialString
Gets the Serial String for the current addressed device. 
- STRING 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. 
- FLOAT Return


Initialise

Initialise
Configures each matching sensor on the bus with the specified conversion bits. 
- VOID Return


SampleAddressedDevice

SampleAddressedDevice
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. 
- BOOL WaitForCompletion
0=Dont Wait, 1=Block and Wait To Complete 
- VOID Return


SampleAllDevices

SampleAllDevices
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. 
- BOOL WaitForCompletion
0=Dont Wait, 1=Block and Wait To Complete 
- VOID Return


Property reference

Properties
One Wire Component
Link to the one wire component to host the bus. 
Sensor Settings
CRC Checking
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. 
Alarm High
The high byte of the alarm range 
Alarm Low
The Low byte of the Alarm range 
Conversion Bits
The number of bits used to perform a temperature sample. Controls the conversion time and the resolution. 
Max Conversion Time
The maximum amount of time in milliseconds it will take for a sample to complete. 
Temperature Resolution
The maximum resolution steps that the temperature can be read in. 
Simulation
Simulate Comms
No - We use the panel GUI to perform the simulation. Yes - We use OneWire comms via an API to communicate with real hardware. 
Panel Simulation
Number Sensors
Sens the number of sensors we can communicate with during simulation 
Serial 0
Serial number for simulated one wire device