Giter Club home page Giter Club logo

thermo55's Introduction

Thermo55

An alerting system that raises an alarm when the temperature rises above or falls below a set threshold.

V3 boards

Standalone mode is supported, as in version 2.x. However, some pin assignments have changed, so the hardware is not compatible.

Additionally, remote monitoring of a separate thermometer module is supported via nRF24L01 radio.

Software requirements

Install the following libraries into the Arduino IDE:

  • LiquidCrystal_I2C
  • Adafruit MAX31855 (for thermocouple)
  • RF24 library from TMRh20 version 1.4.7 or later

Hardware requirements

You will need:

  • 2x Arduino (pref. Nano 3) supporting analog input pins A6, A7
  • 2x nRF24L01 radio modules (or preferably 2x Arduino Nano 3 + nRF24L01 integrated boards, as illustrated)
  • AdaFruit MAX31855 thermocouple amplifier breakout board (for transmitter)
  • Type K thermocouple wire
  • LCD 1602 display with I2C capability (for receiver)
  • pushbutton switch (for receiver)

Optional:

  • 2nd LCD 1602 display and pushbutton switch (for transmitter)

If you don't have an LCD display, the output is also printed to the serial monitor.

Pin assignments

INPUT_PULLUP pins are active low according to the function described.

If using an external radio, use the pins marked E. If using an integrated Nano3/nRF24L01 board, leave these pins unconnected.

There are two SPI buses with separate clocks: One (spi) for the radio, and spi1 for the thermocouple.

T: connections for transmitter (thermometer)
R: connections for receiver (monitor)

  • X : relevant connection
  • N : no connection
  • L : connect if LCD used
  • E : to external radio if used
pin T R type meaning
D2 N X OUTPUT alert output
D3 N X OUTPUT auxiliary enable (note 1)
D4 N X INPUT_PULLUP threshold direction
D5 L X INPUT_PULLUP display pushbutton
D6 L X INPUT_PULLUP always-on display
D7 X N spi1 CLK (MAX31855)
D8 X N spi1 CS (MAX31855)
D9 E E spi CSN (nRF24L01)
D10 E E spi CE (nRF24L01)
D11 E E spi MOSI (nRF24L01)
D12 XE E spi, spi1 MISO (nRF24L01), DO (MAX31855)
D13 E E spi SCK (nRF24L01)
A0 X X INPUT_PULLUP enable radio
A1 X X INPUT_PULLUP monitor (receiver) mode
A2 X X INPUT_PULLUP radio power, -2's bit
A3 X X INPUT_PULLUP Fahrenheit display (note 2)
A4 L X i2c SDA (LCD 1602)
A5 L X i2c SCL (LCD 1602)
A6 N X INPUT threshold POT (fine)
A7 N X INPUT threshold POT (coarse)

Note 1: Pin D3 (auxiliary enable) serves to enable/disable some external custom circuit. It is initially disabled (output LOW). It is enabled HIGH the first time the threshold alert is triggered, and remains enabled until the display is reset by the long button-press (which also resets the MAX/MIN values).

Note 2: If A3 jumpered to GND, then the temperature on the LCD is displayed in degrees F. If left unconnected, the display is in degrees C. This only affects the display, no other aspect of operation. The underlying logic always uses degrees C. The serial monitor output always displays in degrees C.

Operational modes:

A0 A1 mode radio? thermocouple? threshold POT?
NC NC standalone no yes yes
NC GND (unsupported)
GND NC transmitter yes yes no
GND GND receiver yes no yes

Radio power selection:

A2 power
NC 3 (MAX)
GND 1 (LOW)

Radio channel is fixed to 113.

Connect GND, +5V, A4, A5 to the LCD display.

Standalone

This configuration can run on a single board and does not use a radio.

Connect POTs as described under Receiver module.

Connect thermocouple as described under Transmitter module.

Receiver module

Connect pin A0 to GND (enables radio.)

Connect pin A1 to GND (configures as receiver.)

Connect D5 to a normally-open pushbutton switch.

To keep the display permanently on, switch D6 to GND. Unlike other jumpers, this setting has effect in the loop real-time.

Connect A6, A7 to two POTs configured as voltage dividers. A6 is fine adjustment, A7 coarse adjustment. (It is standard to mount the coarse knob to the right of the fine knob.)

To alert when temperature is below the threshold, wire D4 to GND. To alert when temperature is above the threshold, leave D4 unconnected.

Connect output pins D2 (alert) and/or D3 (auxiliary output) in accordance with your use case.

Transmitter module

Leave A1 unconnected (configures as transmitter.)

If using an LCD display, connect D5 to a normally-open pushbutton switch.

Connecting the Adafruit thermocouple amplifier breakout board:

  • Connect +5V to Vin
  • Connect GND to ground
  • Connect CLK to pin 7
  • Connect CS to pin 8
  • Connect DO to pin 12

Identify the thermocouple wires:

  • Type-K thermocouple wires are typically color-coded.
  • The negative wire is usually red, and the positive wire can be yellow or green, depending on the standard.
  • In a case where there's only one wire visible, it's typically encased with the other in a single insulation.

Attaching the hot junction:

  • The hot junction is the part of the thermocouple that gets exposed to the temperature you want to measure.
  • Use thermal compound to improve thermal contact if necessary.
  • Be cautious about using thermal compound that can harden or is electrically conductive, especially if you plan to detach and reattach the thermocouple.

Securing the thermocouple:

  • Use Kapton tape for attaching the thermocouple to a surface like a transistor. It's heat resistant and leaves minimal residue.
  • The adhesive used in Kapton tape is typically a silicone adhesive which can withstand high temperatures.

Operation

The LCD initially displays the radio settings for 1 second. Then it switches to display of the temperature and threshold.

The LCD will dim after 10 seconds (unless always-on display is active). To turn on the display, press the button for 1 second.

To activate the max/min display, press and hold the button for 2 seconds.

To reset the max/min values, continue holding or press the button again during the max/min display.

thermo55's People

Contributors

topquark22 avatar

Stargazers

 avatar

Watchers

 avatar

thermo55's Issues

always-on display doesn't work as described

Found in: Branch V3

Expected behaviour:
Always-on display switch is actively-read and takes effect during the loop. It keeps the display on if engaged. If not engaged, the display is deactivated after the timeout period .

Actual behaviour:
Always-on display takes effect after the display is activated. It doesn't ever turn off the display even if the switch is disengaged.

Feature request: Coarse and fine threshold

  • Implement a 2nd POT for fine threshold adjustment
  • Coarse POT has range -100 - 300 degrees
  • Fine POT has range +/- 40 degrees added to coarse POT resding

Problem: There are no analog pins remaining in the parallel_interface configuration, so this will only be possible in the I2C configuration.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.