Everything’s internet connected these days, garage doors, baby monitors, and the kitchen sink are all hooked up. There are benefits to having everything online, but also several pitfalls. Maintaining security on a home network is an ongoing job, made more difficult by the number of devices that must be kept track of. Sometimes all the hassle isn’t worth it, and you just want a non-connected solution. [Dilshan] found himself in just that camp, and built a simple programmable light controller that doesn’t connect to the Internet.
At the core of the project is an ATMEGA8 microcontroller, which is cheap, readily available, and can do the job. It’s combined with a DS1307 real time clock IC to keep track of time. The circuit is designed for 24V power, to allow it to be run from the same supply as the LED light modules it is designed to control.
The design was initially prototyped with through-hole parts on the breadboard, with the final design being built with surface mount parts on a custom PCB. Light is courtesy of a 7W warm white LED module. 3 push buttons and a 4-digit, 7-segment display act as the user interface, with an LDR to allow the light to also react to its surroundings.
It’s a build that goes against current trends, lacking WiFi connectivity, Twitter functionality, or cloud-based logging. It goes to show that the right solution isn’t always putting everything online. Sometimes the old methods are enough to do the job, and do it well.
Opinions differ about what the most-used programming language in right now is, but it’s hard to deny both the popularity and versatility of Python. In the nearly 30 years since it was invented it has grown from niche language to full-blown development environment that seems to be everywhere these days. That includes our beloved microcontrollers now with MicroPython, and Adafruit’s CircuitPython, greatly lowering the bar for entry-level hackers and simplifying and speeding development for old hands and providing a path to a Python-powered Internet of Things.
And as extra enticement, we’ll be giving away five free one-year passes to Adafruit.io! We’ll draw five names at random from the list of Hack Chat attendees. Stop by for a chance to win. And, the Adafruit team will be streaming video live during the Hack Chat as well.
You are, of course, encouraged to add your own questions to the discussion. You can do that by leaving a comment on the Python and the Internet of Things Hack Chat and we’ll put that in the queue for the Hack Chat discussion.
Click that speech bubble to the right, and you’ll be taken directly to the Hack Chat group on Hackaday.io. You don’t have to wait until Wednesday; join whenever you want and you can see what the community is talking about.
Want a quick peek at what’s possible with CircuitPython? Check out this PyPortal event countdown timer that just happens to be counting down the hours till the next Hack Chat.
The Internet of Things is upon us, and with that comes a deluge of smart cameras, smart home monitors, and smart home locks. There actually aren’t many smarts in these smart conveniences, and you can easily build your own. That’s what [MakerMan] did with some off-the-shelf parts and just a little bit of code. Now he can open his door with WiFi, and it’s a nice clean build.
The build process began by first removing the existing barrel bolt on the door. This was replaced by a deadbolt that also had some really neat solenoids inside for remote activation. This was mounted to the door in a way that the door could lock, with a minimal amount of damage from some skillful hacksaw work. The only thing left to do after this was add some electronics and brains to the lock.
For this, [MakerMan] added a button and LED to the outside of the door. Some of these wires were fed into the lock mechanism, with a few more run over to a project enclosure mounted next to a power outlet. The project enclosure holds an ESP-8266, power regulator, and relay board, and the ESP is running code that instantiates a web server that will unlock the door with a few clicks on a web page.
Sure, it’s probably not the most secure lock on the planet, and the 5V linear regulator is held on to the relay board with hot glue, but this is an exceptionally well-documented project, and all the code is available in an archive.
The ages-old dream of home automation has never been nearer to reality. Creating an Internet of Things device or even a building-wide collection of networked embedded devices is “easy” thanks to cheap building blocks like the ESP8266 WiFi-enabled microcontroller. Yet for any sizable project, it really helps to have a plan before getting started. But even more importantly, if your plan is subject to change as you work along, it is important to plan for flexibility. Practically, this is going to mean expansion headers and over-the-air (OTA) firmware upgrades are a must.
I’d like to illustrate this using a project I got involved in a few years ago, called BMaC, which grew in complexity and scope practically every month. This had us scrambling to keep up with the changes, while teaching us valuable lessons about how to save time and money by having an adaptable system architecture.
Last year, we saw quite a bit of media attention paid to blockchain startups. They raised money from the public, then most of them vanished without a trace (or product). Ethics and legality of their fundraising model aside, a few of the ideas they presented might be worth revisiting one day.
One idea in particular that I’ve struggled with is the synthesis of IoT and blockchain technology. Usually when presented with a product or technology, I can comprehend how and/or why someone would use it – in this case I understand neither, and it’s been nagging at me from some quiet but irrepressible corner of my mind.
The typical IoT networks I’ve seen collect data using cheap and low-power devices, and transmit it to a central service without more effort spent on security than needed (and sometimes much less). On the other hand, blockchains tend to be an expensive way to store data, require a fair amount of local storage and processing power to fully interact with them, and generally involve the careful use of public-private key encryption.
It’s no secret that I rather enjoy connecting things to the Internet for fun and profit. One of the tricks I’ve learned along the way is to spin up simple APIs that can be used when prototyping a project. It’s easy to do, and simple to understand so I’m happy to share what has worked for me, using Web2Py as the example (with guest appearances from ESP8266 and NodeMCU).
Barring the times I’m just being silly, there are two reasons I might do this. Most commonly I’ll need to collect data from a device, typically to be stored for later analysis but occasionally to trigger some action on a server in the cloud. Less commonly, I’ll need a device to change its behavior based on instructions received via the Internet.
In the former case, my first option has always been to use IoT frameworks like Thingsboard or Ubidots to receive and display data. They have the advantage of being easy to use, and have rich features. They can even react to data and send instruction back to devices. In the latter case, I usually find myself using an application programming interface (API) – some service open on the Internet that my device can easily request data from, for example the weather, blockchain transactions, or new email notifications.
Occasionally, I end up with a type of data that requires processing or is not well structured for storage on these services, or else I need a device to request data that is private or that no one is presently offering. Most commonly, I need to change some parameter in a few connected devices without the trouble of finding them, opening all the cases, and reprogramming them all.
At these times it’s useful to be able to build simple, short-lived services that fill in these gaps during prototyping. Far from being a secure or consumer-ready product, we just need something we can try out to see if an idea is worth developing further. There are many valid ways to do this, but my first choice is Web2Py, a relatively easy to use open-source framework for developing web applications in Python. It supports both Python 2.7 and 3.0, although we’ll be using Python 3 today.
What exactly qualifies as comfort food is very much in the palate of the comfortee. Grilled cheese may not work for everyone under every circumstance, but we’ll risk a bet that the gooey delicacy is pretty close to universal, especially when you’re under the weather.
But if you’re too sick to grill up your own and don’t have anyone to do it for you, this grilled cheese sandwich-making robot might be the perfect kitchen accessory. Dubbed “The Cheeseborg” and built as a semester project by [Taylor Tabb], [Mitchell Riek], and [Evan Hill] at Carnegie-Mellon University, the bot takes a few shortcuts that might rankle the grilled cheese purist. Chief among these is the use of a sandwich press rather than a plain griddle. We understand that this greatly simplifies the flipping problem, but to us the flipping, especially the final high arcing double backflip onto the sandwich plate, is all part of the experience. Yes, a fair number of sandwiches end up going to the dog that way, but that’s beside the point.
As realized, Cheeseborg feeds bread and cheese from stacks using a vacuum arm, sprays the grill with butter, and uses a motorized arm to push the uncooked sandwich into the press. At the peak of grilled perfection, the press opens and ejects the sandwich to a waiting plate. As an added bonus, the whole thing is Google Assistant enabled so you can beseech Cheeseborg to fix you a sandwich from your sick bed. See it in action below.