Skip to main content

Controlling an LED on an Arduino over HTTP


Prerequisites
  • You will need node.js and npm installed , and should have at least some knowledge when it comes to node, if you do not , I suggest you try some example code in node before diving into controlling hardware with it. 
  • You must have the Arduino IDE installed on your machine
  • You must know how to get an LED working on pin 13 of an Arduino

Set up the Arduino

Wire up an LED to the Arduino on pin 13 and plug it into your development machine. Now we need to get it ready to talk to johnny-five. To do this simply follow the instructions under johnny-five's readme

Set up the project 

Create a folder on your development machine for the project , in this folder create the server.js and index.html files. Copy the code from the files in this gist to the respective files.

Loading ....

We aren't done yet , we need johnny-five and the narf for this to work. In your project directory run the following command:

npm install narf johnny-five

If that succeeded we now have the johnny-five library and narf installed , the server should be ready to go, so lets run it:

node server.js

You should now be able to browse to the page and control the light.

http://localhost:8079/index.html


We are now in business , if you wish to control the light from another machine you will have to edit the urls in index.html and replace localhost with the IP address of the server. Other than that we are pretty much done, an LED controlled over HTTP. If you want to understand more you should just read through the code(its quite simple) and through the documentation for johnny-five. Don't worry too much about the index.html if thats not your cup of tea, it just makes http requests to the server and serves as a nice interface , the meaty bit is in server.js

An early prototype of the HTTP LED that I hacked together in five minutes , the code has been updated since then to make it slightly more solid

If you want to just get straight to the action check out my GitHub project , this is under development so there is a possibility of seeing new features added here as well.

Popular posts from this blog

Running Node.js alongside IIS on Windows

Most of the time when you are looking for a way to run Node.js as a production server on Windows you will just run into IISNode , now IISNode is a great thing ,but I'm a fan of choice and most importantly , not a fan of XML web config files.

I wanted to run my node server on what ever port I wished,or maybe even a different server and just have IIS reroute the traffic from a particular URL to the node process(so a proxy), this allows you to still manage your own load balancing and possibly scale up from that point without having to bother with IIS again.

So first things first you will want to download and install the URL Rewrite and ARR modules for IIS

ARR (Application Request Routing)URL Rewrite Once thats done lets crack open IIS and open up Application Request Routing, then navigate to Server Proxy Settings and Check Enable Proxy and Apply.







Now lets create an an application on our Default Website that will link our url to the node process, here im directing it to an empty direc…

Half-Life 2 for OSX , how well does it run?

Earlier this week Valve advertised Half-Life 2 for the Mac with the best advert I have ever seen. They took the old 1984 Mac advert and re-created it using the source engine and characters from the game. As if the awesome(albeit 35 second) entertainment wasn't enough they offered the game at $3.40 for a limited period. It was not shortly afterwards that I made my first ever purchase on Steam(its kind of strange buying a game and not getting a box with it).




The game purchase actually allows you to download the OSX or Windows version of the game , depending on the platform you are logged in to .This is great , because I have a PC with some decent gaming power and my Mac Mini (which I naturally wanted to test on) and wow ,the OSX version runs pretty darn well,especially considering that my mac mini is running only an intel HD3000.



Performance
I was surprised how well the game performed on high settings , the gameplay was smooth with the default high settings , reaching frame-rates up …