Home eCall

Having elderly people at home is a real challenge as you can't sit next to them the whole time. However, most unfortunate, something will happen to them once you're not around.

There are professional systems calls based on emergency buttons working together with local ambulance.

As alternative, I've developed this system named Home eCall.

idea

One has a mobile box simply equipped with a button. By pressing the button, some data are sent via WiFi to an MQTT server. From there subscribed nodes will be alarmed, accoustical and optical.

Hardware

I've built a board (tr095) which was meant to be used as Lego RC remote. This board carries already nearly anything I need for the project and only required a few, easy to do modifications shown in red. As alternative you could use a NodeMCU as well and easily adapt the wiring.

As the sender, of course, shall be powered by a battery, I've chosen one cell (1S) Li-battery and added a cheaper USB charger circuit. The battery voltage will be monitored by the sender so a receiver is notified in advance before it runs out of power. For the transceiver, I expect to run on external power supply.

Software

the firmware is stored on GitHub. There are a few modifications which need to be done prior compilation within the file "setting.h"

  • MQTT setting (server/port/user/pw)
      • #define mqtt_server "mxx.cloudmqtt.com"
      • #define cloudmqttport 12345
      • #define mqtt_user "myUser"
      • #define mqtt_password "myPW"
  • give every device a unique name (MQTT_ClientID) otherwise, your brooker will be screwed
    • #define MQTT_ClientID "ESP8266Client01"
  • define if the device is a sender or not - simply uncomment the line
      • #define Sender

It goes without saying that you need to have a brooker account (local/www.cloudmqtt.com/others) and set up the user.

There are a couple of lines which will be commented out in case you're compiling a sender or transceiver, as e.g. there is no need and sense to monitor the supply, once you're running on external supply.

  • To avoid a hassle by changing the wifi network, I've implemented the WiFi manager provided by tzapu.
  • The MQTT services a run by pubsubclient (credits to knolleary)
  • other used libraries can easily be found in the web or library manager of the Arduino IDE

power consumption

As the wifi mode is pretty power hungry, there is a need to use external supply otherwise your battery will be drained within a few hours.

The ESP module consumes in average ~85mA @ 3.3V; this is a no-brainer for stationary supply. On the sender I've used sleep mode where only the RF module goes to power down, as the controller itself needs to react on action = button pressed. Once detected, the modem wakes up, is sending messages and goes back to light sleep. By using this, the current has been reduced to ~20mA, which is acceptable.

As the portable sender is equipped with a 1S-battery, the voltage can vary between ~2.8-4.2V, however, the ESP does allow only up to3.5V without damage! Straightforward you can use an LDO however still got a voltage drop of ~0.4V, which is too much in case the voltage goes to the lower limit! Hence I prepared my battery driven boards with a buck/boost converter, namely ADP2503 . My regulator board (tr101) has anything prepared however you must deal with the issue of having a tiny 10-Lead Lead Frame Chip Scale Package [LFCSP_WD].

Finishing

For finishing I've used my standard boxes and added proper buttons and LED. For the LED I highly recommend high-efficent types which will allow massive brightness at low current. Standard LED might work as well, but as you want to raise an alarm, they only make limited sense

showing the modified pcb

top: Sender bottom: reciver/notifier

sender on a keystrap with USB connector for charging the battery and a main power switch

the sender has a big mechanical button (red) for alarming, and a small button on side to reset the alarm

Disadvantage/warning

This can't replace a professional system!

Also, the sender and nodes are only working in the wifi network, which they are logged in and which has a strong enough signal.