The “idea” came to me when my 84 Year old mom fell ill. She has an apartment in a retirement home. They do supply panic buttons, but when she fell sick the one night and activated the panic button, the caretakers did responded to her panic button activation (in due time I might add), but I only found out about the indecent the next day as the night staff could not find my number to phone me. I guess communication failure between the day and night staff, who knows….The design is not all mine, there are a lot of information about this on the Inter-webs, but I tried to “better” the design a bit, Currently the design is a round PCB at about 44mm in diameter, it uses a 500MaH LiPo battery that is rechargeable.
The charger is supplied as a separate item, I.E. the charging circuit is not build in the design. Initial the design did include the charging circuit, but that increased the thickness of the button with about 7 mm.
The button works like this.
So what can you do with the button, well….
look at ifttt
IFTTT – is a free web-based service that allows users to create chains of simple conditional statements, called “recipes”, which are triggered based on changes to other web services such as Gmail, Facebook, Instagram, and Pinterest. IFTTT is an abbreviation of “If This Then That“.
So getting into the Nitty Gritty of the IoT-BuTT
Nice thing about the design is that the device is not powered all the time. It will only power on and start to boot when the button is pressed. So this brings battery duration into a complete different level. When pressing the button, the following happens, the button must be pressed for ~2 seconds or until the RGB LED turns RED. This is to compensate for the boot time of the ESP8266 module.
NodeMCU must load 1st and then run init.lua
GPIO-0 which is linked to CH_PD is set to high when the button is pressed. CH_PD is needed to keep the module enabled after the button press.
On to the build stuff then
I found it easier to use thick wire on all the ESP8266 pins, insert a short piece of wire at each leg, fit the ESP8266 and solder the bottom side 1st
Solder all the other components, The 220R and 180R resistors are for the ADC pin, so you may use them for determining the Voltage level of the battery, Below is the IoT-BuTT connected to a USB Li-Po charger, I've got it connected to a 500Mah Li-Po
To program the ESP8266, you would need one of these
SparkFun FTDI Basic Breakout - 3.3V
VERY important , must be the 3.3V oneThis is a basic breakout board for the FTDI FT232RL USB to serial IC. The pinout of this board matches the FTDI cable to work with official Arduino and cloned 3.3V Arduino boards.
IoT-BuTT connected to a LiPo USB Battery charger
Fully charged LiPoThe program is NodeMCU that gets loaded, use this to load the NodeMCU firmwareLuaLoader for WindowsLuaLoader is a Windows program for uploading files to the ESP8266 and working with the Lua serial interface. It is compatible with all versions of Windows from Windows 95 to Windows 10.