This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| en:iot-open:practical:hardware:sut:esp32:emb4_1 [2024/03/21 20:09] – [Result validation] pczekalski | en:iot-open:practical:hardware:sut:esp32:emb4_1 [2025/10/03 11:18] (current) – [Steps] pczekalski | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | <todo @pczekalski> | ||
| ====== EMB4: 1-Wire Temperature Sensor ===== | ====== EMB4: 1-Wire Temperature Sensor ===== | ||
| The temperature-only sensor **DS18B20** uses a 1-wire protocol. " | The temperature-only sensor **DS18B20** uses a 1-wire protocol. " | ||
| Line 31: | Line 30: | ||
| ==== Start ==== | ==== Start ==== | ||
| - | //Write starting conditions, i.e. what to do in the beginning, what to pay attention to before beginning, how the mechanical part should look, etc.// Include needed compiler configuration, | + | Check if your display of choice is visible |
| ==== Steps ==== | ==== Steps ==== | ||
| - | // Write some extra information if, i.e. some steps are optional; otherwise, cancel this paragraph | + | The steps below present only interaction with the sensor. Those steps should be supplied to present the data (or send it over the network) using other scenarios accordingly. |
| === Step 1 === | === Step 1 === | ||
| - | //Describe activities done in Step 1.// | + | Include Dallas sensor library and 1-Wire protocol implementation library: |
| + | <code c> | ||
| + | #include < | ||
| + | #include < | ||
| + | </code> | ||
| + | <note important> | ||
| + | === Step 2 === | ||
| + | Declare the 1-Wire GPIO bus pin, 1-Wire communication handling object, sensor proxy and a variable to store readings: | ||
| + | <code c> | ||
| + | #define ONE_WIRE_BUS 6 | ||
| + | static OneWire oneWire(ONE_WIRE_BUS); | ||
| + | static DallasTemperature sensors(& | ||
| + | static float tempDS; | ||
| + | </code> | ||
| + | < | ||
| - | ... | + | === Step 3 === |
| + | Initialise sensors' | ||
| + | <code c> | ||
| + | sensors.begin(); | ||
| + | </ | ||
| - | === Step n === | + | |
| - | //Describe activities done in Step n.// | + | === Step 4 === |
| + | Read the data: | ||
| + | <code c> | ||
| + | if (sensors.getDeviceCount()> | ||
| + | { | ||
| + | tempDS = sensors.getTempCByIndex(0); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | Remember not to read the sensor too frequently. 10s between consecutive readings is just fine.\\ | ||
| + | Devices | ||
| + | Some useful functions are present below: | ||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | The library can make non-blocking calls, which can also be implemented using timers, as presented in the scenario [[en: | ||
| ==== Result validation ==== | ==== Result validation ==== | ||
| The observable temperature is usually within the range of 19-24C. If you find the temperature much higher, check your code, and if that is okay, please contact our administrator to inform us about the faulty AC. | The observable temperature is usually within the range of 19-24C. If you find the temperature much higher, check your code, and if that is okay, please contact our administrator to inform us about the faulty AC. | ||
| - | ===== FAQ ===== | ||
| - | This section is to be extended as new questions appear. \\ | ||
| - | When using the printed version of this manual, please refer to the latest online version of this document to obtain the valid and up-to-date list of the FAQ. | ||
| - | //Provide some FAQs in the following form:\\ | ||
| - | **Question? | ||
| - | // | ||
| + | |||
| + | <WRAP noprint> | ||
| ===== Project information ===== | ===== Project information ===== | ||
| {{: | {{: | ||
| Line 69: | Line 100: | ||
| {{: | {{: | ||
| </ | </ | ||
| + | </ | ||