mirror of
https://github.com/arendst/Tasmota.git
synced 2025-04-23 22:37:16 +00:00
Add support for MLX90640
Add support for MLX90640 IR array temperature sensor by Christian Baars
This commit is contained in:
parent
18639730f0
commit
9aa18c23f0
@ -47,7 +47,7 @@ The following binary downloads have been compiled with ESP8266/Arduino library c
|
||||
- **tasmota-zbbridge.bin** = The dedicated Sonoff Zigbee Bridge version.
|
||||
- **tasmota-minimal.bin** = The Minimal version allows intermediate OTA uploads to support larger versions and does NOT change any persistent parameter. This version **should NOT be used for initial installation**.
|
||||
|
||||
Binaries for ESP8266 based devices can be downloaded from http://ota.tasmota.com/tasmota/release. Binaries for ESP32 based devices can be downloaded from http://ota.tasmota.com/tasmota32/release. The base links can be used for OTA upgrades like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin``
|
||||
The attached binaries can also be downloaded from http://ota.tasmota.com/tasmota/release for ESP8266 or http://ota.tasmota.com/tasmota32/release for ESP32. The links can be used for OTA upgrades too like ``OtaUrl http://ota.tasmota.com/tasmota/release/tasmota.bin``
|
||||
|
||||
[List](MODULES.md) of embedded modules.
|
||||
|
||||
@ -61,3 +61,5 @@ Binaries for ESP8266 based devices can be downloaded from http://ota.tasmota.com
|
||||
- Fix crash in ``ZbRestore``
|
||||
- Add new shutter modes (#9244)
|
||||
- Add ``#define USE_MQTT_AWS_IOT_LIGHT`` for password based AWS IoT authentication
|
||||
- Add Zigbee auto-config when pairing
|
||||
- Add support for MLX90640 IR array temperature sensor by Christian Baars
|
||||
|
@ -9,6 +9,7 @@
|
||||
- Add new shutter modes (#9244)
|
||||
- Add ``#define USE_MQTT_AWS_IOT_LIGHT`` for password based AWS IoT authentication
|
||||
- Add Zigbee auto-config when pairing
|
||||
- Add support for MLX90640 IR array temperature sensor by Christian Baars
|
||||
|
||||
### 8.5.0 20200907
|
||||
|
||||
|
@ -558,7 +558,7 @@
|
||||
// #define USE_VEML7700 // [I2cDriver50] Enable VEML7700 Ambient Light sensor (I2C addresses 0x10) (+4k5 code)
|
||||
// #define USE_MCP9808 // [I2cDriver51] Enable MCP9808 temperature sensor (I2C addresses 0x18 - 0x1F) (+0k9 code)
|
||||
// #define USE_HP303B // [I2cDriver52] Enable HP303B temperature and pressure sensor (I2C address 0x76 or 0x77) (+6k2 code)
|
||||
// #define USE_MLX90640 // [I2cDriver53] Enable MLX90640 IR array temperature sensor (I2C address 0x33) (+4k9 code)
|
||||
// #define USE_MLX90640 // [I2cDriver53] Enable MLX90640 IR array temperature sensor (I2C address 0x33) (+20k code)
|
||||
|
||||
// #define USE_DISPLAY // Add I2C Display Support (+2k code)
|
||||
#define USE_DISPLAY_MODES1TO5 // Enable display mode 1 to 5 in addition to mode 0
|
||||
|
@ -601,8 +601,9 @@ void GetFeatures(void)
|
||||
#ifdef USE_I2S_AUDIO
|
||||
feature6 |= 0x00800000; // xdrv_42_i2s_audio.ino
|
||||
#endif
|
||||
|
||||
// feature6 |= 0x01000000;
|
||||
#ifdef USE_MLX90640
|
||||
feature6 |= 0x01000000; // xdrv_43_mlx90640.ino
|
||||
#endif
|
||||
// feature6 |= 0x02000000;
|
||||
// feature6 |= 0x04000000;
|
||||
// feature6 |= 0x08000000;
|
||||
|
@ -1,5 +1,5 @@
|
||||
/*
|
||||
xdrv_84_MLX90640.ino - MLX90640 support for Tasmota
|
||||
xdrv_43_mlx90640.ino - MLX90640 support for Tasmota
|
||||
|
||||
Copyright (C) 2020 Christian Baars and Theo Arends
|
||||
|
||||
@ -33,7 +33,7 @@
|
||||
* MLX90640
|
||||
\*********************************************************************************************/
|
||||
|
||||
#define XDRV_84 84
|
||||
#define XDRV_43 43
|
||||
#define XI2C_53 53 // See I2CDEVICES.md
|
||||
#include <MLX90640_API.h>
|
||||
|
||||
@ -144,7 +144,7 @@ const char HTTP_MLX90640_2a_SNS_COMPRESSED[] PROGMEM = "\x33\xBF\xA0\xB7\x9A\x3E
|
||||
#else
|
||||
const char HTTP_MLX90640_2a_SNS[] PROGMEM =
|
||||
"var line = 0;"
|
||||
"setInterval(function() {"
|
||||
"setInterval(function() {"
|
||||
"rl('ul',line);" // 0 = do NOT force refresh
|
||||
"},200);"
|
||||
"function rl(s,v){" //source, value
|
||||
@ -209,7 +209,7 @@ const char HTTP_MLX90640_2b_SNS[] PROGMEM =
|
||||
"for (var j=0;j<32;j++){"
|
||||
"var y = 239 - Math.floor(map(rA[(i*32)+j],0,40,0,239));" // 40 is max. temp for heat map
|
||||
// console.log(gPx.data[y],gPx.data[y+1],gPx.data[y+2]);
|
||||
"octx.fillStyle = 'rgb(' + gPx.data[(y*4)] + ',' + gPx.data[(y*4)+1] +',' + gPx.data[(y*4)+2] + ')';"
|
||||
"octx.fillStyle = 'rgb(' + gPx.data[(y*4)] + ',' + gPx.data[(y*4)+1] +',' + gPx.data[(y*4)+2] + ')';"
|
||||
"octx.fillRect(j*1,i*1,1,1);"
|
||||
"}"
|
||||
"}"
|
||||
@ -254,7 +254,7 @@ const char HTTP_MLX90640_3a_SNS[] PROGMEM =
|
||||
"rO.deleteContents();"
|
||||
"for(var p in poi){"
|
||||
//"console.log('poi:'+ poi[p][0]);"
|
||||
"var c=150;"
|
||||
"var c=150;"
|
||||
"if(eb('poiL').value==p){c=255;}"
|
||||
// "console.log(c);"
|
||||
"ctx.fillStyle = 'rgba('+c+','+c+','+c+',0.6)';"
|
||||
@ -411,18 +411,18 @@ void MLX90640UpdateGUI(void){
|
||||
void MLX90640HandleWebGuiResponse(void){
|
||||
char tmp[(MLX90640_POI_NUM*2)+4];
|
||||
WebGetArg("ul", tmp, sizeof(tmp)); // update line
|
||||
if (strlen(tmp)) {
|
||||
if (strlen(tmp)) {
|
||||
uint8_t _line = atoi(tmp);
|
||||
// AddLog_P2(LOG_LEVEL_DEBUG, "MLX90640: send line %u", _line);
|
||||
float _buf[65];
|
||||
if(_line==0){_buf[0]=1000+MLX90640.Ta;} //ambient temperature modulation hack
|
||||
if(_line==0){_buf[0]=1000+MLX90640.Ta;} //ambient temperature modulation hack
|
||||
else{_buf[0]=(float)_line;}
|
||||
memcpy((char*)&_buf[1],(char*)&MLX90640.To[_line*64],64*4);
|
||||
Webserver->send(200,PSTR("application/octet-stream"),(const char*)&_buf,65*4);
|
||||
return;
|
||||
}
|
||||
WebGetArg("up", tmp, sizeof(tmp)); // update POI to browser
|
||||
if (strlen(tmp)==1) {
|
||||
if (strlen(tmp)==1) {
|
||||
Webserver->send(200,PSTR("application/octet-stream"),(const char*)&MLX90640.pois,MLX90640_POI_NUM*2);
|
||||
return;
|
||||
}
|
||||
@ -591,7 +591,7 @@ void MLX90640Show(uint8_t json)
|
||||
* Interface
|
||||
\*********************************************************************************************/
|
||||
|
||||
bool Xdrv84(uint8_t function)
|
||||
bool Xdrv43(uint8_t function)
|
||||
{
|
||||
bool result = false;
|
||||
|
Loading…
x
Reference in New Issue
Block a user