thefipster / esphome-mmwave-sensors Goto Github PK
View Code? Open in Web Editor NEWESPHome integration for mmWave Sensors from Seeed Studio
License: MIT License
ESPHome integration for mmWave Sensors from Seeed Studio
License: MIT License
While trying to build mr24hpb1.yaml example for ESP8266 I'm getting:
Compiling /data/mmwave/.pioenvs/mmwave/lib67b/ESP8266WiFi/ESP8266WiFiSTA-WPS.cpp.o
In file included from src/esphome/core/log.h:8,
from src/esphome/components/api/proto.h:4,
from src/esphome/components/api/api_pb2.h:5,
from src/esphome/components/api/api_connection.h:4,
from src/esphome.h:3,
from src/main.cpp:3:
src/mr24hpb1.h: In member function 'void MR24HPB1::process()':
src/mr24hpb1.h:57:40: error: initializer fails to determine size of '__pstr__'
57 | ESP_LOGD("mr24d", msg.c_str());
/data/cache/platformio/packages/framework-arduinoespressif8266/cores/esp8266/WString.h:39:76: note: in definition of macro 'FPSTR'
39 | #define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
| ^~~~~~~~~~~~
src/esphome/core/log.h:67:36: note: in expansion of macro 'F'
67 | #define ESPHOME_LOG_FORMAT(format) F(format)
| ^
src/esphome/core/log.h:92:59: note: in expansion of macro 'ESPHOME_LOG_FORMAT'
92 | esp_log_printf_(ESPHOME_LOG_LEVEL_DEBUG, tag, __LINE__, ESPHOME_LOG_FORMAT(format), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~
src/esphome/core/log.h:149:28: note: in expansion of macro 'esph_log_d'
149 | #define ESP_LOGD(tag, ...) esph_log_d(tag, __VA_ARGS__)
| ^~~~~~~~~~
src/mr24hpb1.h:57:13: note: in expansion of macro 'ESP_LOGD'
57 | ESP_LOGD("mr24d", msg.c_str());
| ^~~~~~~~
src/mr24hpb1.h:57:40: error: array must be initialized with a brace-enclosed initializer
57 | ESP_LOGD("mr24d", msg.c_str());
/data/cache/platformio/packages/framework-arduinoespressif8266/cores/esp8266/WString.h:39:76: note: in definition of macro 'FPSTR'
39 | #define FPSTR(pstr_pointer) (reinterpret_cast<const __FlashStringHelper *>(pstr_pointer))
| ^~~~~~~~~~~~
src/esphome/core/log.h:67:36: note: in expansion of macro 'F'
67 | #define ESPHOME_LOG_FORMAT(format) F(format)
| ^
src/esphome/core/log.h:92:59: note: in expansion of macro 'ESPHOME_LOG_FORMAT'
92 | esp_log_printf_(ESPHOME_LOG_LEVEL_DEBUG, tag, __LINE__, ESPHOME_LOG_FORMAT(format), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~~~~
src/esphome/core/log.h:149:28: note: in expansion of macro 'esph_log_d'
149 | #define ESP_LOGD(tag, ...) esph_log_d(tag, __VA_ARGS__)
| ^~~~~~~~~~
src/mr24hpb1.h:57:13: note: in expansion of macro 'ESP_LOGD'
57 | ESP_LOGD("mr24d", msg.c_str());
| ^~~~~~~~
It builds fine for ESP32
fixed by changing line 57 of mr24hpb1.h from:
ESP_LOGD("mr24d", msg.c_str());
to:
ESP_LOGD("mr24d", "%s", msg.c_str());
My C++ is rusty as hell, and I've read zero docs so I have no idea if it's correct but it works. I also had to disable logging over UART and use the hardware UART on the ESP8266 to successfully communicate with the sensor but other than that it works perfectly.
Hi,
I am testing the MR24HPC1 sensor with success in all its functions except access to the web device,
Some advice ?
Thanks in advance
Vicente Marianito
Hey Fipster!
I really like the work you did here! Well done, thank you very much!
Unfortunately it seems on an esp32-s2 it crashes after a few hours, but I was not able to aquire any logs to find out what the the reason could be. (Edit: it was an issue with the oscillator on my S2 mini, not related to your component)
I have also found that after restarting the esp with the mmwave sensor (MR24HPC1) on it would not be able to communicate anymore. Wild guessing it might be the uart becoming out of sync.
One more thing regarding configuration, the UART pins are fixed in the package. I'd actually configure the uart outside of the package.
You may wanna have a look at this pr in esphome: esphome/esphome#4434
This is a very nicely made component for the LD2410 mmwave sensor. I guess there will be a lot of similarities with the ones you integrated, maybe it will help you improve your implementation.
Unfortunately I am full with projects at the moment, in case that changes I might just go ahead and try myself. Sounds like a fun venture.
Thanks for your work!
Lite module:
i am getting body movement readings even when nobody is present (presence alwayson)
i am using an esp8266 and for rx and tx i am using the hardware rx tx of the 8266 with log baud to 0
any ideas?
what might be intereseting is the following: when moving around the sensor the value of body movement drops between 0 and 12 and when no movement it jumps up to 100 than back down to 50
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.