IoT Fidget
This instructables show how to make an IoT Fidget.
When you playing a fidget cube, someone may ask: "what is the effect when you press the Fidget's button?"
Apart from the explanation of how to reduce your stress level, lets make your click become part of IoT big data. It may help to analyse how stress you are...
Preparation
Switches and Buttons
buttons, lots of buttons, you may find some from your spare parts or reclaim it from your old toys
PCB board
6 of 14 x 14 holes PCB board, it will be combined into a cube
ESP8266 Breakout Board
This time I use a WeMos D1 Mini, any ESP8266 breakout board should be ok
Lipo Charge Board
This time I use a WeMos Lipo charge board, any small Lipo charge board should be ok
Lipo Battery
A Lipo battery that can fit in the PCB cube
Others
Some coated wire for circuit connection
Cut the PCB Board Into 14 X14 Holes Size
Smoothen the PCB Edge and Corner
Design the Button Layout
My design is imitating a dice faces from 1 to 5. The design is arbitrary just depends on what switches and buttons in hand.
Some points about the IO connection:
- WeMos board have 9 IO pins (not count the serial port) from D0 to D8
- D0 and D4 cannot pull down while boot up
- D8 already pull down by default, so cannot detect button pressed with common GND
- if pull down D3 while boot up, it will enter program mode, this side effect can be used while programming
- including D3, only 6 IO available, so on each face all buttons connect to same IO pin
- multiple switches on the same face require independent IO to detect single click
Face 1
Face 2
Face 3
Face 4
Face 5
Connect Each Face With Wire
Decorate With Button Caps
Soldering Work
Here is my circuit connections summary:
Lipo Charge Board 5V -> WeMos 5V Lipo Charge Board GND -> WeMos GND -> all PCB common GND WeMos D1 -> Face 5 trigger pin WeMos D2 -> Face 4 trigger pin WeMos D3 -> Face 3 trigger pin WeMos D5 -> Face 2 switch 1 WeMos D6 -> Face 2 switch 2 WeMos D7 -> Face 1 three way switch pin 1 and 3
Squeeze Altogether
Program ESP8266 Board
Download the code:
https://github.com/moononournation/IoT-Fidget
Create your new IoT data channel at: https://thingspeak.com
Fill your AP and channel details into the code:
#define APSSID "Your AP name" // your network SSID (name)
#define APPASS "Your AP password" // your network password #define CHANNELID 0 // your thingspeak channel ID #define WRITEAPIKEY "YOURAPIKEY" // your thingspeak write API key
If you are not familiar how to program WeMos, you may try follow this instructables:
Happy Fidget!
It is now all your click recorded into the internet. Record the click is not the end, you can do much more. e.g. make this fidget as a WiFi remote control, utilise it as a wireless gamepad, etc...