Programmable Badge uses E-Ink and ESP8266

You’ve probably noticed that the hacker world is somewhat enamored with overly complex electronic event badges. Somewhere along the line, we went from using a piece of laminated paper on a lanyard to custom designed gadgets that pack in enough hardware that they could have passed for PDAs not that long ago. But what if there was a way to combine this love for weighing down one’s neck with silicon jewelry and the old school “Hello my name is…” stickers?

[Squaro Engineering] might have the solution with Badgy, their multi-function e-ink name…well, badge. Compatible with the Arduino SDK, it can serve as anything from a weather display to a remote for your smart home. Oh, and we suppose in an absolute emergency it could be used to avoid having to awkwardly introduce yourself to strangers.

Powered by an ESP-12F, Badgy features a 2.9″ 296×128 E-Ink display and a five-way tactical switch for user input. The default firmware includes support for WiFiManager and OTA updates to make uploading your own binaries as easy as possible, and a number of example Sketches are provided to show you the ropes. Powered by a LIR2450 3.6 V lithium-ion rechargeable coin cell, it can run for up to 35 days in deep sleep or around 5 hours of heavy usage.

Schematics, source code, and a Bill of Materials are all available under the MIT license if you want to try your hand at building your own, and assembled badges are available on Tindie. While it might not be as impressive as a retro computer hanging around your neck, it definitely looks like an interesting platform to hack on.

ESP8266 Internet Controlled LED Dimmer

There’s no shortage of debate about the “Internet of Things”, largely centered on security and questions about how much anyone really needs to be able to turn on their porch light from the other side of the planet. But while many of us are still wrestling with the realistic application of IoT gadgets, there’s undoubtedly those among us who have found ways to put this technology to work for them.

One such IoT devotee is [Sasa Karanovic], who writes in to tell us about his very impressive custom IoT LED dimmer based on the ESP8266. Rather than rely on a commercial lighting controller, he’s designed his own hardware and software to meet his specific needs. With the LED strips now controllable by any device on his network, he’s started working on Python scripts which can detect what he’s doing on his computer and react accordingly. For example, if he’s watching a movie the lights will automatically dim, and come back up when he’s done.

[Sasa] has provided all the files necessary to follow in his footsteps, from the Gerber files for his PCB to the Arduino code he’s running on the ESP. The source code is especially worth checking out, as he’s worked in a lot of niceties that we don’t always see with DIY projects. From making sure the ESP8266 gets a resolvable DNS hostname on the network to using websockets which update all connected clients with status info in real-time, he’s really put a lot of work into making the experience as complete as possible.

He’s explains in his blog post what needs to be edited to put this code to work in your own environment, and there’s even some descriptive comments in the code and a helpful debug mode so you can see how everything works. It’s always a good idea to consider that somebody else down the road might be using your code; taking a few minutes to make things clear can save them hours of stumbling around in the dark.

If you need more inspiration for your ESP8266 lighting project, check out this ambient lighting controller for a kid’s room, or this professional under-cabinet lighting controller.

ESP8266 Zelda Heart Responds To Tweets

It might not be enough to make you the Hero of Time, but this piece of Hylian interactive art would still be a worthy addition to your game room. [Jeremy Cook] writes in to tell us about how he put together this 8-bit style heart display, and goes into enough detail on the hardware and software sides of things that you shouldn’t have any problem adapting his design for your own purposes.

The build is pretty simple overall but it does assume you have a CNC to cut the basic shape out of MDF. You could cut the shape by hand if you had to, but if you don’t have a CNC the next best thing might be to 3D print the case. You’d potentially have to print it in two parts right down the center though, depending on how big your bed is. Whichever way you create the case, you’ll then need to cut the shape out of a piece of acrylic to make the face.

In any event, once the pieces are cut out [Jeremy] adds in a Wemos D1 Mini, a power supply, and some red LED strips. He provides a wiring diagram, but it’s fairly straightforward stuff. With a couple of 2N2222 transistors he controls the LED strips right from the digital pins of the ESP8266.

The software side is setup to be controlled via IFTTT by way of Adafruit.io. When IFTTT sees one of the keywords on Twitter, it passes a message to Adafruit.io which ultimately talks to the ESP8266 and gets the heart going. The software supports three states (on, off, and half) and gives a good example of a basic IoT implementation on the ESP8266 if you’re looking for some inspiration.

This hack seems like it would fit in perfectly with the Zelda home automation project we covered last year.

A Super Simple ESP8266 IOT Motion Sensor

It’s really hard to overstate how awesome ESP8266 development boards like the Wemos D1 Mini really are. For literally a couple of dollars you can get a decently powerful Wi-Fi enabled microcontroller that has enough free digital pins to do some useful work. Like the Arduino and Raspberry Pi before it, the ESP8266 is a device that’s opening up whole new areas of hacking and development that simply weren’t as practical or cost-effective as previously.

As a perfect example, take a look at this stupendously simple Internet-connected motion detector that [Eric William] has come up with. With just a Wemos D1 Mini, a standard PIR sensor, and some open source code, you can create a practical self-contained motion sensor module that can be placed anywhere you want to keep an eye on. When the sensor picks up something moving, it will trigger an IFTTT event.

It only takes three wires to get the electronics connected, but [Eric] has still gone ahead and provided a wiring diagram so there’s no confusion for young players. Add a 3D printed enclosure from Thingiverse and the hardware component of this project is done.

Using the Arduino Sketch [Eric] has written, you can easily plug in your Wi-Fi information and IFTTT key and trigger. All that’s left to do is put this IoT motion sensor to work by mounting it in the area to be monitored. Once the PIR sensor sees something moving, the ESP8266 will trigger IFTTT; what happens after that is up to you and your imagination. In the video after the break, you can see an example usage that pops up a notification on your mobile device to let you know something is afoot.

With its low cost and connectivity options, the ESP8266 is really the perfect platform for remote sensing applications. Though to give credit where credit’s due, this still isn’t the simplest motion sensor build we’ve seen.

Continue reading “A Super Simple ESP8266 IOT Motion Sensor”

Shoehorning A Slick Spotify Remote Into An ESP8266

In 2017 Spotify finally deprecated their public vanilla C SDK library,  libspotify, and officially replaced it with dedicated SDKs for iOS and Android and this new-fangled web thing we’ve all heard so much about. This is probably great for their maintainability but makes writing a native application for a Linux or a hardware device significantly harder, at least without an application process and NDA. Or is it? Instead of using that boring slab of glass and metal in their pocket [Dani] wanted to build a handy “now playing” display and remote control interface but was constrained by the aforementioned SDK limitations. So they came up with a series of clever optimizations resulting in the clearly-named ESP8266 Spotify Remote Control.

The Spotify Remote Control has a color LCD with a touchscreen. Once attached to a Spotify account it will show the album art of the currently playing track (with a loading indicator!) and let you play/pause/skip tracks from its touch screen, all with impressively low latency. To get here [Dani] faced two major challenges: authorizing the ESP to interact with a user’s Spotify account, and low latency LCD drawing.

2 Bit Cover Art

If you’re not on iOS or Android, the Spotify web API is the remaining non-NDA’d interface available. But it’s really designed to be used on relatively rich platforms such as fully featured web browsers, not an embedded device. To that end, gone are the days of asking a user to enter their username and password in a static login box, the newer (better) way is to negotiate for a per-user token (which is individually authorized per application), then to use that to authenticate your interaction. With this regime 3rd party applications (in this case an ESP8266) never see a user’s password. One codified and very common version of this process is called OAuth and the token dance is called a “workflow”. [Dani] has a pretty good writeup of the process in their post if you want more detail about the theory. After banging out the web requests and exception handling (user declines to authorize the device, etc) the final magic ended up being using mDNS to get the user’s browser to redirect itself to the ESP’s local web server without looking up an IP first. So the setup process is this: the ESP boots and displays a URL to go to, the user navigates there on a WiFi connected device and operates the authorization workflow, then tokens are exchanged and the Remote Control is authorized.

The second problem was smooth drawing. By the ESP’s standards the album art for a given track at full color depth is pretty storage-large, meaning slow transfers to the display and large memory requirements. [Dani] used a few tricks here. The first was to try 2 bit color depth which turned out atrociously (see image above). Eventually the solution became to decompress and draw the album art directly to the screen (instead of a frame buffer) only when the track changed, then redraw the transport controls quickly with 2 bit color. The final problem was that network transfers were also slow, requiring manual timesharing between the download code and the display drawing routing to ensure everything was redrawn frequently.

Check out [Dani]’s video after the break, and take a peek at the sources to try building a Spotify Remote Control yourself.

Continue reading “Shoehorning A Slick Spotify Remote Into An ESP8266”

Junk Bin Self Balancing Bot With ESP8266

As we all know, sometimes the projects we plan simply never materialize. You have an idea, maybe even buy some of the parts you need, and then…nothing. Maybe you changed your mind, or maybe the idea was never that good to begin with. In any event, time marches on, the parts pile up, and the ideas come and go. Such is the life of the hacker.

[Andrius Mikonis] writes in to tell us how his graveyard of abandoned projects ended up providing exactly what he needed to embark on a project he’s been fascinated with for years: the two-wheel self balancing robot. He started with a motor and wheel set that was originally intended to be part of a rover, added an accelerometer, and tied the whole thing together with an ESP-01 he had lying around. The final result certainly looks the part, and goes to show that projects don’t always need to be 1000 hour labors of love to accomplish their goals.

The construction of this little bot is simple in the extreme. A piece of plywood makes up the primary structure, with the wheels glued to the bottom and the electronics taking up residence in the top. It’s powered by two lithium battery cells that were salvaged out of an old laptop, with a DC-DC buck converter to provide a stable 3.3 VDC for the ESP-01 and MPU6050 accelerometer. To control the motors themselves, [Andrius] is using a cheap L293 controller that he found on eBay.

For interactive control, [Andrius] is making use of the ESP’s Wi-Fi to provide a web-based interface. This lets you control the bot from essentially any device that has a browser, rather than having to use a dedicated hardware transmitter.

Self-balancing robots of various levels of complexity are a relatively common project in the hacker world. There’s just something magical about the way they scoot around, seeming to defy gravity.

ESP8266 Keeps Tabs on the Kid’s Tablets

Assuming you have a child and it’s no longer womb-bound, there’s a fairly high chance they’ve already had some experience with the glowing beauty that is the LCD display; babies of only a few months old are often given a tablet or smartphone to keep them occupied. But as the child gets to the age where they are capable of going outside or doing something more constructive, staring slack-jawed and wide-eyed at their tablet becomes a concern for many parents.

[Richard Garsthagen] is one such parent. He wanted a way to monitor and control how much time his children were using their iPad, so he came up with an automated system based on the ESP8266. Not only does it keep track of how long the tablet is being used, it even includes a reward system which allows the parent to add extra usage time for good behavior.

At the most basic level, the device is a sort of “holster” for the child’s tablet. When the tablet is placed in the slot, it presses a microswitch at the bottom of the cavity which stops the timer. When the switch is open, the LED display on the front of the device counts down, and the ESP8266 pushes notifications about remaining time to the child’s device via IFTTT.

Time can be added to the clock by way of RFID cards. The cards are given out as a reward for good behavior, completion of chores, etc. The child only needs to pass the card in front of the system to redeem its value. Once the card has been “spent”, the parent can reset it with their own special card.

It’s a very slick setup, making perfect use of the ESP8266. Reading the RFID cards, updating the timer, and using IFTTT’s API keeps the little board quite busy; [Richard] says it’s completely maxed out.

You might be wondering what happens when the clock reaches zero. Well, according to the video after the break…nothing. Once the time runs out, a notification simply pops up on the tablet telling them to put it away. Some might see this as a fault, but presumably it’s the part of the system where humans take over the parenting and give the ESP8266 a rest.

This isn’t the first time we’ve seen a microcontroller used to get the little hackers on schedule. At least (so far) none of them have gone full Black Mirror and started tracking when the kiddos are watching it.

Continue reading “ESP8266 Keeps Tabs on the Kid’s Tablets”