The temperature control device that we use here is described in this page. This link leads to the GitHub repository of the device. Details on the PID control can be found here.
Since the temperature control device is built on top of an Arduino Uno, we add an ESP8266 to allow internet communications.
- We only use one of the two available heaters.
- There are two exchanged variables in the overall system:
PV: process value, which is the current temperature of the heater.SV: set value, which is the desired (reference) temperature of the heater.
- A PID control loop is running (1kHz, realtime) in the Arduino Uno.
- Arduino Uno sends
PVto ESP8266. ESP8266 publishesPV. MQTT server subscribesPV. - MQTT server publishes
SV. ESP8266 subscribesSV. ESP8266 sendsSVto Arduino Uno. - Communication loop between Arduino Uno and ESP8266 runs at a much lower rate (less than 1 Hz, not realtime).
The implementation of the serial communication follows this link.


