Bluetooth interface for Chinese Diesel Heaters
Go to file
Ray Jones f041cf8cad Final release V3.2.2 2020-09-16 14:46:54 +10:00
AppInventor stylish /update & /formatspiffs 2019-07-11 18:55:31 +10:00
Arduino/Afterburner added BootInit flag to RTC store - used for persistent vars init after OTA updates 2019-07-25 21:27:57 +10:00
Bootload Assortment of tweaks and fixes 2020-03-23 16:54:15 +11:00
CRCgen Added JSON IP query parameters 2019-07-11 22:03:27 +10:00
Documentation Made release version V3.2.1 2020-06-22 12:15:57 +10:00
data Added timer retry according to temperature being denied in the past 2020-05-09 19:17:21 +10:00
icons Found websocket write was blocking, returning 0, leading to WD reboot. Need to think of proper fix 2020-04-20 13:39:39 +10:00
lib Allowed web update of beta version to release of same base version 2020-06-19 16:49:40 +10:00
patch/RMT Final release V3.2.2 2020-09-16 14:46:54 +10:00
pics stylish /update & /formatspiffs 2019-07-11 18:55:31 +10:00
src IDF PATCH TO SOLVE RMT CRASH WEHN SAVING TO FLASH 2020-06-30 05:46:31 +10:00
.gitignore Rework priming menu, can now reset fuel gauge. JSON added for fuel usage & cal. 2019-07-20 16:08:43 +10:00
.travis.yml Converted to Platform IO friendly project, still works with Arduino provided you rename Afterburner.cpp to Afterburner.ino 2019-06-30 16:44:50 +10:00
ABpartition.csv telnet menu to setup MQTT. JSON now pushed over MQTT - typ. topic name: Afterburner/JSONout 2019-08-31 17:34:56 +10:00
BuildREADME.txt Added Windows symbolic links so an Arduino project can parasite off the superior PlatformIO paths :-) 2019-06-30 22:39:40 +10:00
LICENSE Add LICENSE 2018-11-26 10:46:40 +00:00
Partitions.txt Rework priming menu, can now reset fuel gauge. JSON added for fuel usage & cal. 2019-07-20 16:08:43 +10:00
README.md Added Hour Meters screen 2019-07-26 23:12:00 +10:00
add_CRC.py Shifted MQTT telnet setup into a separate module. 2019-09-07 18:28:21 +10:00
platformio.ini Added Stop/Start thermostat mode 2020-05-13 10:37:31 +10:00

README.md

BluetoothHeater

Bluetooth & WiFi interface for Chinese Diesel Heaters

Requirements

  • Requires "blue wire" compatible heater unit
  • Blue wire interface circuitry - please refer to the hardware design schematics in the wiki for guidance.
    It is important to take note that the blue wire is 5V logic, an ESP32 is 3.3V.
    Level translation is important!
  • ESP32 dev module
  • HC-05 Bluetooth module - preferably exposing the key pin, not power control)
  • DS18B20 one wire temperature sensor
  • 1.3" I2C OLED using SH1106 controller
  • DS3231 Real Time Clock
  • Technical ability to solder SMD components
  • Technical ability to program/flash in the Arduino environement

Working so far:

  • Power On/Off
  • Temperature + & -
  • Fuel mixture tuning
  • One wire remote temperature sensing (DS18B20)
  • Heat exchanger body temperature, as reported by heater unit
  • I2C Interface to 1.3" SH1106 based OLED for a full featured controller
  • 5 button keypad interface
  • Smart error detection, observes unusual heater state progression (ignition fail)
  • ESP32 with HC-05 Bluetooth
  • JSON based communications between Bluetooth and Wifi apps
  • Bluetooth Connectivity
  • Bluetooth Control App for Android (App Inventor based)
  • WiFi Connection to existing network or Standalone Access Point Mode (Passwd: thereisnospoon)
  • Wifi control
  • DebugPort data sent via Telnet if/when available on the network.
  • 14 timers - including selectable day and repeat functionality
    Simplisticly this allows each day to have 2 individual start stop regimes, but a single timer can be set to repeat every day if desired, or on certain days. Timers can also be set to be one-shot. This is an extremely flexible system!
  • Battery backed Real Time Clock - DS3231
  • Mk1 "Green PCB" using naked ESP32 and HC-05 modules
  • Temperature readout in Celcius or Farenheit
  • Two new experimental thermostat modes (No practical testing - presently too hot in .au!):
    Tighten or loosen the thermostat temperature range by specifying a hysteresis value. eg tell the heater it is 23 degrees when it really is only 22.25 degrees (only 0.25 above set point).
    Request a linear change in Hz according to the deviation from the setpoint
  • 2 external digital inputs, 2 digital outputs, analogue input .This would allow external timer units for example, or analogue temperature demand (which is still only 1 degree resolution with standard heater thermostat).
  • New Mk2 "Red PCB" that properly fits into an off the shelf case (requires machining)
  • Software updates over WiFi: Native OTA via espota.exe or espota.py (AP or STA mode) Web browser upload new binary to controller (AP or STA mode) Direct discovery and download of updates from internet server (STA mode)
  • Factory default menu option
  • "Fuel gauge" - Integrates pump frequency, assumes a repeatable dose of fuel per pump stroke.
  • Low voltage cut out, definable threshold - auto adjusts for cable voltage drop during start
  • Temperature probe offset to correct adverse readings.
  • Hour meter - run time, glow time

To be implemented

  • 433MHz Rx stream, 433MHz Tx stream connections.
  • MQTT pub/sub
  • Regular Hot Burn cycle (DPF mode!)
  • list under construction.....

Suggestions

If you have a burning desire for a feature that you think will useful, please feel free to drop me a line at gitlab@mrjones.id.au.
Your request will be thoughtfully considered.
If deemed viable and worthwhile to the greater good it will be added to the "To be implemented list" above and worked on in good time.
Likewise, if it's really easy to implement, it may make it to "Working So Far" at speed :-)

Please be aware that this is not my day job, so "good things take time".

Case for Green PCB

https://www.thingiverse.com/thing:3398068