The plan was to use IFTTT (If This Then That) to scan for particular events happening on the mobile phone which then triggers a web request. Dweet is used to publish data from the IFTTT and then get the same data using ESP12E.
When I started with the project the idea was to make a notifier that lets me know if there is a message, call, etc. from a particular person. But then I realized that much more can be done using IFTTT. So, I decided to add notifications like low battery, button widget and Twitter. You can add more events from IFTTT.
IF an event (message, low battery, call, etc.) occurs, THEN a web request is made to Dweet and "posts" the data in the form of JSON.
For example, if the battery drops below 15%, an event is triggered which makes a web request to http://dweet.io/dweet/for/mythingname?Noti=batt. This adds "Noti":"batt" to the JSON code. Noti is the 'key' and batt is its 'value'.
ESP12E then connects to Dweet and "gets" the published data using http://dweet.io/get/latest/dweet/for/mythingname and parses the above JSON to check the value of "Noti". Every event is assigned a different value and this is how ESP12E knows which event has been triggered.
The ESP-12E then displays the animation continuously until you press a button at the back.
Click on "Explore" and then "Make your own Applets from scratch"
Click on "This" and choose "Android Battery" from the list
Choose trigger - "Battery drops below 15%"
Click on "That" and choose "Webhooks" from the list
Choose action - "Make a web request"
Method - POST
Content type - text/plain
Click on "Create Action"
Download the IFTTT Android/iOS app and log into your account. The app will automatically ask you to allow access to various services depending on the applets created. Else, you have to give permissions manually.
In the app, go to Settings>Sync options and enable "Run Location, Android Battery and WiFi connections faster".
You can use any software you like for designing PCBs. I am using EasyEDA as it is suitable for newbies like me. I have attached the schematic. Click here to download the Gerber files for the PCB.
Make sure that there is no ground plane below the WiFi antennae of the ESP-12E module.
For programming purposes, pads are provided for TX, RX, RST, D3 and GND.
Once you have completed designing the PCB, get it fabricated from the manufacturer of your choice. I chose JLCPCB because of its quick service.
I soldered the 27 LEDs using the reflow soldering using cloth iron. I had to hand solder the ESP-12E module as well as some other SMD components on the backside of the board.
Mistakes which I did:
I didn't check the schematic and so missed a GND connection to an LED. I had to scrape off the solder mask over the ground plan and bridge the solder joint.
I didn't add a 100nF capacitor at the output of the voltage regulator. ESP-12E draws more current when it is connecting to WiFi. In the absence of the capacitor, the voltage drops just enough to reset ESP-12E.
Don't worry! I have uploaded the rectified files for PCB.