lørdag 7. april 2018

RGB Sword - IoT Smart Lamp Controller

Introduction

This will be the information page for the RGB Sword - Smart ESP8266 Controller app. The page will constantly be updated to add new and relevant information, about both the application itself and the whole project the app is connected to.

So the basics are: First download this app which connects to your WiFi. You now have the ability to send control signals to a WiFi enabled micro controller. This will in turn act on the information you just sent! While there are many  projects that does exactly this and something similar. This solution is meant to be easy for beginners and more experienced hobbyist to get immediate results. You follow this guide on parts and circuitry, I provide the finished micro controller code. And before you know it you've got a sweet taste of the smart home of the future!
    I'm using it to control the color and intensity of an RGB LED strip.

Here you can see the results after I installed the RGB LED strip in my brothers room.

Let's get started!


The arduino is connected to the internet using an inexpensive WiFi module, the ESP8266. To make everything even easier I've provide links to a product named NodeMCU. This is both an arduino compatible micro controller and ESP8266 chip in one solder friendly package.
After uploading the code I've provided on this page the arduino will start to listen for incoming requests. The arduino acts as its own server and thus we can direct traffic to it like any other server on the internet! It can receive requests from any browser like device, and most importantly, from your new application.
    What happens behind the scenes when you push a button is a new HTTP client is started. This sends a good old GET request to the arduino/nodeMCU. This request contains the information about color values. After the information is received, the arduino responds with an all clear signal before setting the light values to what you just sent.


You can choose between five different pre-set colors as well as choose your very own custom color by using three sliders. This means you can choose between 16.581.375 different colors! There's also a neat function that slowly and softly fades between all available colors. Absolutely perfect as an ambient light!

Click here to download the app and get started.

Parts and Tools

You are going to need the following parts for the smart lam

To put everything together you will need these tools
  • Soldering iron
  • Solder
  • Wire cutters
  • Wire strippers
  • USB cable that goes between your computer and micro controller

Circuit 



The schematic is all made in the gerber files. Which you can download here.



Arduino Code

You can download the arduino code by clicking here. if you don't already have the arduino IDE installed you can find it by going here.

After everything is downloaded and you have opened the code perform an ipconfig on your computer. This is how to do it if you're on a Windows PC: Open the start menu. Type cmd and press enter. In this window type in ipconfig and press enter. Note the information from the image below.

Green text on black background. That's how you know I'm a real hacker.

Now you can enter this information into the arduino code and make it your own. Write the Subnet Mask on line 10 and the Default Gateway on line 9. Look at the IPv4 Address and modify the last number (in my case 4) to a free address on your network (I chose 63). Write this new IP address on line 8 in the arduino code.
    You can verify that the address is free by typing this in your command window ping 192.168.0.63. Where you substitute with your free address. If you don't get a reply or the reply is that the destination host is unreachable, that means the address is free and you can use it for your micro controller.

Now you're almost ready to upload the code. Just make sure you've installed the ESP8266 library. Sparkfun has a terrific guide on doing just that which you can find here. Now you're finally ready to connect the nodeMCU to your computer with an USB cable and push UPLOAD in the arduino IDE!

Troubleshooting

If you've soldered the circuit, uploaded the code, and downloaded the app - congratulations! Now if it has previously worked, but suddenly stopped lets look trough a few common problems, and how to solve them.
  • Make sure WiFi is turned on
  • Double check the IP address saved in the settings page in the application is the same as the IP address you've given to the arduino
  • Connect the phone to the same network as the arduino. The ESP8266 can only connect to 2.4GHz networks. However it still works if your phone is on the corresponding 5GHz network. So that shouldn't be a problem.
  • If you get a error message in the app that says Connection refused this means the static IP you've given to the arduino is already taken. Upload your code with a new, and available, IP address.

Further Development

So this is the current state of the development of both the application and arduino code. However it's always under development. I have a lot of ideas and I plan of rolling these out gradually when I implement them. This page will be updated whenever there are significant changes to the functionality.

If you do some cool changes to the arduino code, or have requests for new features, be sure and let me know at sverd.industries@gmail.com

So here's what's in the pipeline and what I really want to add.
Notification control
I plan on adding the ability for the app to see other applications incoming notifications. It would be really cool if the LED strip gave a quick flash whenever you got a new notification. And it would be cooler still to match the RGB LED color to that of the incoming notification! This is in development.

søndag 8. oktober 2017

Update on the Ultimate Electronics Helper

I have a huge update on what after publishing the Ultimate Electronics Helper. Apparently more people liked the projects as well as I've been featured on Hackaday! This is one of those websites that has been a staple of my internet diet since I first started going online. Thus I couldn't help but feel a tinge of pride when Hackaday wrote an article about my project!
You should check out what they wrote by clicking here.

But wait, there's more

I entered a few contests over on instructables and the voting is done for all of them. The results are in. This project won a prize in every single contest I entered!
I received the runner up prize in the Invention Challenge. The second prize in the Explore Science Contest. And the first prize in the Power Supply Contest

This means there's several packages in the mail. Which is always a fun period. In the Explore Science Contest I'm getting a PocketLab One, which is basically a small box with several sensors. These sensors communicate over bluetooth to a phone, or computer, or whatever. So it's a super easy way to get quick sensor information and visualize it.

Photo taken from www.thepocketlab.com


So I have now received my first prize from the Power Supply Contest in the mail. This was a groovy bluetooth speaker, the usual instructable shirt, and a drone from DJI! Now DJI is one of the two largest drone companies as of today. So this drone has some really advanced features!
This is by far the biggest prize I've ever received. I walk around just smiling from ear to ear

søndag 24. september 2017

RGB Sword - ESP8266 RGB LED strip only

Introduction

This is information regarding a smart lamp with RGB channels only. You may consider this the first version of the smart lamp, and the five channel lamp the latest version. The main difference between the two is the five channels on the latest version: Red, Green, Blue, Cold white, Warm white.


Here you can see the results after I installed the RGB LED strip in my brothers room.


Parts and Tools

You are going to need the following parts

To put everything together you will need these tools
  • Soldering iron
  • Solder
  • Wire cutters
  • Wire strippers
  • USB cable that goes between your computer and micro controller

Circuit 


Simply follow the schematic to recreate your circuit on a perf board. I recommend using the barrel jack on the power connections from the power supply. It's also a good idea to solder female header pins to the perf board so the NodeMCU can easily be added or removed from the soldered perf board.

To determine your maximum length of LED strip we need to do a bit of math. The LED strips draw 60mA of current per 10cm of length. The strip is divided into segments of 10cm so this means it draws 60mA per segment. The NodeMCU along with the linear voltage regulator draws about 100mA. My PSU could supply 2A at 12V.
Thus I can power a max number of: (2000 [mA] - 100 [mA]) / 60 [mA per segment] = 31.67 segments
Which equals 31 segments * 10cm = 310cm. Thats a long light strip!

Arduino Code

Follow the regular arduino configuration in the main information page. The only difference here is you need to change 
const int ARRAY_LED_COUNT = 5;
to 3 instead of five. Along with removing 5, and 4 from the line
const int ledPin[ARRAY_LED_COUNT] = {14, 12, 13, 5, 4};
That's it! You've now configured the arduino code to work with three instead of five channels!

Ultimate Electronics Helper || Variable Bench Top PSU With Helping Hands

I have finally completed a long awaited project! This is something that's been churning around in my head for quite some time - close to a year. I started ordering parts for last years Christmas. After receiving these I've gone through several design iterations on both the 3D printed casing and the electronics and circuitry. I have to admit I'm quite pleased with the results!


Introduction at instructables
When working with electronics two tools are pretty much always needed. Today we'll be creating these two essentials. And we'll also take it one step further and merge these two together into the ultimate electronics helper!

I'm of course talking about a Variable Bench Top PSU and a good pair of Helping hands!

The PSU features variable voltage and current so it can be used in any number of projects. It also has a constant 5V output from a USB connector. As you've probably experienced a lot of DIY electronics projects require 5V and some other voltage.

Helping hands always need a sturdy base to keep everything still. This is solved by mounting them onto a power supply unit, which usually weighs a lot.

Let's get started!

Programming Electronics Academy Podcast Interview

I'm as lucky as to have been interviewed about my passion - hobby electronics and DIY projects!
Programming Electronics Academy is a site with several courses on electronics and arduino. Every other week they release an interview with makers from around the world.

In this episode the host, Mike, and I spend a half hour talking about how I chose my studies, self watering plants, DIY home automation, and much more!

You can listen to the episode on their website or on their youtube channel. Be sure to check out both their learning material and this very special podcast interview!

mandag 10. april 2017

DIY Bluetooth Adapter for any Headset

I recently bought a new headset that I'm mostly satisfied with. Except I would really like the convenience of streaming music wirelessly!
Instead of buying a more expensive headset, I cut the cord, and went to work to create a bluetooth headset adapter. 
That's what I'm showing you today.
At first I looked at all the parts needed to make an adapter from scratch. But realized I could get most of the circuitry needed in a much smaller package, by modifying a cheap pair of bluetooth earbuds.


Shopping list




These are the only points we care about to transmit music wirelessly. And they need to be wired from the bluetooth chip to the audio jack.



søndag 9. april 2017

Gift Away Your Heartbeat for Valentines Day! | Arduino Tutorial

All right people, I've got a pretty sweet project lined up, just in time for valentines day. I'm going to show you how to gift away your own heart!

This is how to use an ECG sensor along with an arduino to record your heart beat! This data will then in turn be used to make an awesome picture, so you can give away your heart to whomever you fancy! While this might seem complex from the start, the process itself is pretty straight forward and now I'm going to show you how to do it!

søndag 12. mars 2017

3D Printed Utility Desk Shelf

While living in tiny a dorm room you learn one trick right away - you have to use your vertical space!
To make use of a living space with small area you it's absolutely necessary to stack your items. This produces a challenge if you need a decent working area.
I, like most college students, picked up my furniture from IKEA. While my desk certainly was cheap it's somewhat lacking in working space. My computer would take up most of the desk which left little room for reading and note taking books.
This is the challenge I set out to solve!


I'm going to show you how to make your very own smart desk extender!
It's a clever solution where you get an level on your desk for your laptop, pens and other items to keep close, and even a second monitor.
This is also adds some smarts to your desk with utility features! The Smart Desk Space Extender comes with a phone grip and headset hook - both of which hovers your items above your desk. It also comes with cable managers making it easier to keep all cables out of your way!
The desk extender parts are 3D printed meaning you'll be using a robot to upgrade your working area. What exciting times we live in!



Click here for detailed build instructions.

fredag 3. februar 2017

Replacing machine parts with a 3D printed copy

I was recently tasked with fixing a washing machine using my 3D printer. This may certainly sound complicated, but was actually a small task. So the case was that I needed to make a replacement wheel for the lower drawer inside the washing machine. One of the original wheels had just disappeared so I was given one of the remaining wheels to make a copy.

The original wheel on the left and the copy on the right.

As you can see in the pictures above the new wheel looks really good. However this was far from what this mission required. The 3D printed wheel had to perform well.
The original wheel had an interesting design in the way it was put together. It consisted of two parts: the main wheel, and the axle. 
    The axle was made of plastic that gripped the front end of the wheel, but still let it slide in the middle of the axle. The back part of the axle had two plastic nubs that gripped onto a metal rod on the drawer in the washing machine. This was only fastened by the friction caused by the two nubs being pressed onto the metal rod.

What proved to be the main challenge was replicating the axle on a regular FDM 3D printer. FDM is an acronym for Fused Deposition Modeling, which basically means that a hot nozzle melts plastic in a precise pattern, and then melts another pattern on top of the first. This creates several layers that make up a solid object. FDM is the the most common type of hobby 3D printers.
    Because a FDM printer works in layers, it also means the finished object has a grain - analogous to wooden grain. And like wood grain, it is something to be wary of when using it as a material to hold a load. On a 3D printer, the grain is strongest along the X- and Y axis, these are the "flat" axes on the bed. This means the object is weakest on the Z axis, which is the upwards axis.

Finished copy of the most imported parts from the wheel.

The knowledge of the grain in a printed object should be used to make stronger objects when possible. But this knowledge was what made making the axle so difficult. Ideally the axle/metal rod holder would be printed on its side. This would mean it could withstand higher forces in the vertical axis after it was put in place. However, printing sideways would mean the metal holder would be made with support material, which would decrease their strength. There would be no use having the cart holder be strong to vertical forces, if one of the plastic nubs would break so it couldn't hold the cart in the first place!
    If the axle/cart holder was printed upright like in the picture above, the axle part would be very week to shock. Meaning it couldn't hold a lot of weight and could snap at any moment. Like the picture above is hinting at, my solution was to not print the axle at all, just the metal rod holder. Instead I would model the wheel and cart holder to use a M3x16mm machine screw as the axle. This would make it much stronger, and if I used a lock nut instead of a regular nut, the wheel would still spin freely.

I'm quite pleased with how the final model came together. While printing the wheel I paused the printer and put in a M3 nut. After starting the printer again it kept on printing above the nut, meaning it became fully integrated into the wheel itself. See the picture below.

 After the wheel was printed I fastened the screw really tight into the nut, from the front side of the wheel. This made the plastic wheel and metal screw act as one solid part. After the screw/axle was in place I just put on a couple of metal washers and the metal rod holder, before everything was put together with a nut on the end.
 


How the wheel was modeled with space for a M3 nut. After placing the nut during printing the printer would keep on adding plastic on top it.

torsdag 2. februar 2017

DIY Bed LEDs

I always keep my eye out for small problems that could be improved my over engineering a solution to test my skills. My recent tutorial is no exception! I've attached a meter of LED strip under my bed, and it is of course controlled by an arduino.

The arduino is soldered onto a perf board along with an RTC module and a PIR sensor. The code is written to work as a wake-up and night light. The lights turn on in the morning, 06:30, to make it easier to wake up because the room is no longer dark. Then it turns off a couple hours later, when I'm out of bed.
    After this the lights turn on again in the evening before it turns off and goes into motion detect mode. The motion detect mode is on between 19:00 and 06:30. This means the lights turn on and stay on for three minutes whenever it detects movement between these hours. Perfect whenever I need to get out of the bed in the middle of the night!

Even though the LEDs are directed straight down to the floor, they still cast a lot of glowing light through out the bedroom!




Introduction at Instructables:
Today I'm showing you how to make your bed glow!

This works by having a LED strip hidden under the frame of your bed. This will give off a pleasant glow illuminating your room from downwards and up.

The lights are either activated by the time of day or when it detects motion. I've attached my code and made it easy to tweak and edit to suit your needs.

Now you will never be blinded by light if you wake up in the middle of the night again!

Let's get started!