Wednesday, December 22, 2010

The Free 4 Line Blue / White LCD is going to ...

Mark Essen, congratulations. You are this months winner of the Arduino giveaway. A 4 Line blue / white LCD is on its way to you, courtesy of Hacktronics.

Wednesday, December 1, 2010

Two DS18B20 Temp Sensors on LCD Display!

We are finally posting our multi DS18B20 Temp Sensor LCD project. Right now we are monitoring two sensors on one data pin, but could add many such sensors. Just need to add the additional chip id numbers to the code. We will experiment with wire length and outdoor mounting in the near future. Please review and comment.


Find your DS18B20 address!

// This Arduino sketch reads DS18B20 "1-Wire" digital
// temperature sensors.
/

#include <OneWire.h>
#include <DallasTemperature.h>
#include <LiquidCrystal.h>

// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

int backLight = 13; // pin 13 will control the backlight

// Data wire is plugged into pin 8 on the Arduino
#define ONE_WIRE_BUS 8

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature.
DallasTemperature sensors(&oneWire);

// Assign the addresses of your 1-Wire temp sensors.
// See the tutorial on how to obtain these addresses:
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

DeviceAddress insideThermometer = { 0x28, 0x3C, 0xF2, 0xA7, 0x02, 0x00, 0x00, 0xCB };
DeviceAddress outsideThermometer = { 0x28, 0x20, 0x04, 0xA8, 0x02, 0x00, 0x00, 0x4D };

void setup(void)
{
// Start up the library
sensors.begin();
// set the resolution to 10 bit (good enough?)
sensors.setResolution(insideThermometer, 10);
sensors.setResolution(outsideThermometer, 10);

pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
lcd.begin(16,2); // columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear(); // start with a blank screen
}

void printTemperature(DeviceAddress deviceAddress)
{
float tempC = sensors.getTempC(deviceAddress);
if (tempC == -127.00) {
lcd.print("Error");
} else {
lcd.print(tempC);
lcd.print("/");
lcd.print(DallasTemperature::toFahrenheit(tempC));
}
}

void loop(void)
{
delay(2000);
sensors.requestTemperatures();
lcd.setCursor(0,0);
lcd.print("In: ");
printTemperature(insideThermometer);
lcd.setCursor(0,1);
lcd.print("Out: ");
printTemperature(outsideThermometer);
}

Sunday, November 28, 2010

Determining your Dallas 1 wire address

1-Wire devices, such as the DS18B20 digital temperature sensor, are great to use with Arduino boards because you can connect many of them to a single IO pin. The freely available software libraries and example code make using 1-wire devices simple. There is only one problem we have seen with the examples on the web. If you have more than one device connected to a single pin, say an indoor temperature sensor, as well as an outdoor temperature sensor, how does your Arduino know which is which?

Using the tutorial at http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html, We determined the following on our two DS18B20 Temp Sensors:

0x28, 0x3C, 0xF2, 0xA7, 0x02, 0x00, 0x00, 0xCB

0x28, 0x20, 0x04, 0xA8, 0x02, 0x00, 0x00, 0x4D

Now we are ready to move forward with the indoor/outdoor temperature monitor. To be continued ...

The Reverse Geocache™ Puzzle Box

I recently read a story about a wedding gift that gave a distance to a destination, and would not open until the destination was reached. It is based upon a mix of Arduino, a gps sensor, and good old inventiveness baked with art and engineering, and was finally frosted with love and emotion for friends. What started out as a private wedding gift, and eventually brought much of the world into it's story, is in 4 parts, took a year to accomplish, and is a must read.

http://arduiniana.org/projects/the-reverse-geo-cache-puzzle/

Saturday, November 27, 2010

The DS18B20 Digital Thermometer

Dallas Semiconductor (Maxim) produces a line of "One-Wire" devices, that allow multiple sensors to connect to a single data pin on a microcontroller. GND and +5vdc are also needed. I've put together a single sensor DS18B20 (soon to be expanded to multiple sensors) displaying the temperature on a LCD display. This example is digital, unlike the analog thermistor project from a few days ago. Enjoy, and please comment.

Find the address of your DS18B20

// LCD Thermostat


#include <onewire.h>
#include <liquidcrystal.h>

// Connections:
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13; // pin 13 will control the backlight

OneWire ds(8); // ds18b20 pin #2 (middle pin) to Arduino pin 8
// ds18b20 pin #1 GND
// ds18b20 pin #3 +5vdc
// 5k ohm resistor between pins 2 & 3

byte i;
byte present = 0;
byte data[12];
byte addr[8];
 
int HighByte, LowByte, SignBit, Whole, Fract, TReading, Tc_100, FWhole;

void setup(void) {
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  lcd.begin(2,16);              // rows, columns.  use 2,16 for a 2x16 LCD, etc.
  lcd.clear();                  // start with a blank screen
  lcd.setCursor(0,0);           // set cursor to column 0, row 0
 
    if ( !ds.search(addr)) {
      lcd.clear(); lcd.print("No more addrs");
      delay(1000);
      ds.reset_search();
      return;
  }

  if ( OneWire::crc8( addr, 7) != addr[7]) {
      lcd.clear(); lcd.print("CRC not valid!");
      delay(1000);
      return;
  }
}

void getTemp() {
  int foo, bar;
 
  ds.reset();
  ds.select(addr);
  ds.write(0x44,1);
 
  present = ds.reset();
  ds.select(addr);   
  ds.write(0xBE);

  for ( i = 0; i < 9; i++) {
    data[i] = ds.read();
  }
 
  LowByte = data[0];
  HighByte = data[1];
  TReading = (HighByte << 8) + LowByte;
  SignBit = TReading & 0x8000;  // test most sig bit
 
  if (SignBit) {
    TReading = -TReading;
  }
  Tc_100 = (6 * TReading) + TReading / 4;    // multiply by (100 * 0.0625) or 6.25
  Whole = Tc_100 / 100;          // separate off the whole and fractional portions
  Fract = Tc_100 % 100;
  if (Fract > 49) {
    if (SignBit) {
      --Whole;
    } else {
      ++Whole;
    }
  }

  if (SignBit) {
    bar = -1;
  } else {
    bar = 1;
  }
  foo = ((Whole * bar) * 18);      // celsius to fahrenheit conversion section
  FWhole = (((Whole * bar) * 18) / 10) + 32;
  if ((foo % 10) > 4) {            // round up if needed
       ++FWhole;
  }
}

void printTemp(void) {
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temp is: ");
  lcd.setCursor(0,1);  
 
  if (SignBit) { 
     lcd.print("-");
  }
  lcd.print(Whole);
  lcd.print(" C / ");
  lcd.print(FWhole);
  lcd.print(" F");
}

void loop(void) {
  getTemp();
  printTemp();
  delay(1000);
}

Friday, November 26, 2010

CdS Light Sensor

I've been playing with my Cadmium Sulfide (CdS) photoresistors, and have put together a basic light sensor. I'm outputting raw values, so there is no correlation with solar insolation. If anyone knows some cool formulas that would convert the output to sun hours, I'd love to play with them. The wiring is documented in the code as follows:




#include <LiquidCrystal.h>

/*
LCD Connections:
rs (LCD pin 4) to Arduino pin 12
rw (LCD pin 5) to Arduino pin 11
enable (LCD pin 6) to Arduino pin 10
LCD pin 15 to Arduino pin 13
LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2

Cds Connections:
CdS Pin 1 to +5v
CdS Pin 2 to Analog Pin 0
10k ohm resistor pin 1 to Analog Pin 0
10k ohm resistor pin 2 to Gnd
*/

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;    // pin 13 will control the backlight
int sensorPin = 0;
int val = 0;


void setup() {
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  lcd.begin(20, 4);              // rows, columns.  use 16,2 for a 16x2 LCD, etc.
  lcd.clear();                   // start with a blank screen
  lcd.setCursor(0,0);            // set cursor to column 0, row 0
  lcd.print("Light level is:");
}



void loop() {
  val = analogRead(sensorPin);
  lcd.setCursor(0,1);
  lcd.print (val);
  delay(100);
   }

Saturday, November 13, 2010

The $2 Thermistor Temperature Sensor

A thermistor makes for a very inexpensive temperature sensor, under $2 for the thermistor and the 10k ohm resistor, not counting the $45 for the Arduino and LCD display:



#include <LiquidCrystal.h>
#include <math.h>

/*
LCD Connections:
rs (LCD pin 4) to Arduino pin 12
rw (LCD pin 5) to Arduino pin 11
enable (LCD pin 6) to Arduino pin 10
LCD pin 15 to Arduino pin 13
LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2

Thermistor Connections:
Thermistor Pin 1 to +5v
Thermistor Pin 2 to Analog Pin 0
10k ohm resistor pin 1 to Analog Pin 0
10k ohm resistor pin 2 to Gnd
*/

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);
int backLight = 13;    // pin 13 will control the backlight



void setup(void) {
  pinMode(backLight, OUTPUT);
  digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.
  lcd.begin(20, 4);              // rows, columns.  use 16,2 for a 16x2 LCD, etc.
  lcd.clear();                   // start with a blank screen
  lcd.setCursor(0,0);            // set cursor to column 0, row 0
}

double Thermistor(int RawADC) {
  double Temp;
  // See See http://en.wikipedia.org/wiki/Thermistor for explanation of formula
  Temp = log(((10240000/RawADC) - 10000));
  Temp = 1 / (0.001129148 + (0.000234125 * Temp) + (0.0000000876741 * Temp * Temp * Temp));
  Temp = Temp - 273.15;           // Convert Kelvin to Celcius
  return Temp;
}

void printTemp(void) {
  double fTemp;
  double temp = Thermistor(analogRead(0));  // Read sensor on Pin 0
  lcd.clear();
  lcd.setCursor(0,0);
  lcd.print("Temperature is:");
  lcd.setCursor(0,1);
  lcd.print(temp);
  lcd.print(" C, ");
  fTemp = (temp * 1.8) + 32.0;    // Convert to Fahrenheit
  lcd.print(fTemp);
  lcd.print(" F");
  if (fTemp > 68 && fTemp < 78) {
    lcd.setCursor(0,3);
    lcd.print("Very comfortable");
  }
}

void loop(void) {
  printTemp();
  delay(1000);
}

Thermistors, Ethernet Shields, and More

Yesterday I received a package in the mail from Hacktronics. Call it an early Christmas present. Inside was a package of Thermistors, 10k ohm resistors, a breadboard, and a Ethernet/Micro SD card Shield. Stay tuned for a variety of projects (including web based access to our weather station) based on these devices, and check out the tutorials listed on the product pages.

Monday, November 8, 2010

Garduino Upgrade, Now with more Twitter!

I found a new Instructable that's pretty amazing. Lot's of Arduino goodness!

From http://www.instructables.com/id/Garduino-Upgrade-Now-with-more-Twitter/

A couple months ago I came across two great instructables. The first was the Garduino, an arduino controlled garden to help you grow plants at home. The second was the Tweet-a-Watt, a project that teaches you how to monitor your home power usage using Xbees and Twitter. I read about both these projects here at Instructables and in Make Magazine, Vol 18.

I thought it would be great to combine both these projects and build myself an indoor garden that I could monitor from work via Twitter. Thus began an adventure in gardening and electronics that taught me a lot and took me much longer than perhaps it should have. Fortunately for you I'm going to write down all the steps so you can get started right away. Maybe you'll follow up with this project and upgrade your garden or use this as a guide to start on a similar project. Either way, I hope you'll let me know what you get up to.

If you're ready then head to the next step and begin the process!

Sunday, November 7, 2010

Light Sensors

I've been working on a project that will allow me to determine the number of sun hours available in a given spot, and track that over time, as a component of solar power installation design. The idea is to get a light detector in the sun, record the number of hours it is lit at full intensity, and map that to photovoltaic equivalence. One could use a pv cell, but there are other alternatives. The CdS cell, photodiode and others come to mind. We will try each of these methods and post our results, meanwhile, here is a great tutorial on the options:

http://www.electronics-tutorials.ws/io/io_4.html

Light Sensors are used to measure the radiant energy that exists in a very narrow range of frequencies basically called "light", and which ranges in frequency from "Infrared" to "Visible" up to "Ultraviolet" light. Light sensors are passive devices that convert this "light energy" whether visible or in the infrared parts of the spectrum into an electrical signal output. Light sensors are more commonly known as "Photoelectric Devices" or "Photosensors" which can be grouped into two main categories, those which generate electricity when illuminated, such as Photovoltaics or Photoemissives etc, and those which change their electrical properties such as Photoresistors or Photoconductors. This leads to the following classification of devices.

For more info, see http://www.ecs.umass.edu/ece/m5/tutorials/CdS_Flex_Sensor.html

Saturday, November 6, 2010

Water Usage Tracking

Here is a great project for monitoring water usage, and affecting usage behavior using graphical feedback:

From http://labs.teague.com/?p=722

Since we wanted to have an internet connected data-stream of our water usage, we decided to try out the YellowJacket Arduino with built-in WiFi. Data was then sent to the server at regular intervals when the water source was in use (from 1-15 seconds depending on the wireless setup and resolution desired). Using a GET request with ID and usage information, the server was then able to store and retrieve sensor data. The complete circuitry and code (see download link below) were both conceptually straight-forward and easy to implement.

Sunday, October 31, 2010

Antique Weather Clock

An antique clock retrofitted to connect to the internet, download the current weather forecast, and display the weather condition and temperature.

http://www.seancarney.ca/projects/weather-clock/

Saturday, October 30, 2010

Remote control the Arduino from the web!

From http://autocad.spinelink.com/arduino-serial-communication-with-web-gui-via-php.html

This project is very inspiring! It is an Arduino project that has two LEDs on green and one red that are controlled via a local web server (AKA my Mac’s Apache Server). The web server is hosting a PHP script that has a user interface. When I click a link it sends a command to the Arduino board to turn on or off each LED. The Arduino board must be connected to the computer that has the web server on it for this to work. The PHP code is open source as well as the library/class that I have used.

The Motion Picture Industry Using Arduino?

Welcome to OpenMoCo, a community site for Open-source Photographic Motion Control technology. Our focus is to create open-source solutions for motion control in photographic techniques including time-lapse, gigapixel panoramas, focus stacking, live video, and just about anything you can think of. Here, you can interact with other people working on their own motion control systems, share software or hardware designs, and get help in creating a motion-control system that meets your needs. We believe in complete compliance with the Open-Source Hardware Definition.

http://openmoco.org/

Friday, October 29, 2010

What's with the Arduino, Anyway?

Looks like someone else got bit by the Arduino bug!

http://ryanwaggoner.com/2010/10/damn-you-arduino-i-have-no-free-time-for-this/

What’s bizarre is that it’s so much fun. I mean, I’ve built large, complex websites with tens of thousands of lines of code that use a dozen different languages, frameworks, and technologies. So how come writing 6 lines of code to make a stupid little LED blink makes me grin like an idiot?

Thursday, October 28, 2010

The Arduino / Paypal Vending Machine

Ran across this neat article and video at Make Magazine. They attached an Arduino to a candy vending machine, and connected it to the internet so you can pay for the candy using paypal. A fascinating and intriguing project:

http://blog.makezine.com/archive/2010/10/paypal_vending_machine.html - While walking the show floor at the PayPal X Innovate 2010 developers conference today I came across this cool PayPal vending machine prototype. Ray Tanaka and his crew at PayPal Labs hacked together the multi-part system using a mechanical candy dispenser, a couple of Arduino Duemilanove, aWiShield, relay, proximity sensor, and LED display. The end result allows you to scan a QR code, make a payment, and acquire munchies using a smartphone. As you make your payment, the machine will tweet your purchase and notify a confirmation display.

Wednesday, October 27, 2010

And the Winner of the Free Arduino UNO is?

Congratulations, Michael Van Varenberg, you have won the free Arduino Uno. Mark from Hacktronics will be contacting you shortly for your shipping info. For those less lucky (this month), check out the starter kit which now includes the new Uno. The new freebie for next month is a Ethernet Shield. Participate at http://tech.groups.yahoo.com/group/arduinohome/ to be eligible for the drawing.

Processing: The Power Behind the Arduino

The arduino is great for interfacing with sensors, but lacks the horsepower of a PC. One of the projects we are working on is a solar / wind data logger, and I'd like to save the results in a database and be able to graph trends over time. This is best done on the PC. Fortunately, I can write programs on the PC, to interface with the Arduino, in a similar language to the one I use on the Arduino. This language is called Processing. I can also interface with my Apache web server, and use my PHP/MySql abilities to display the results to the rest of the world.

Monday, October 25, 2010

Measuring Air Flow

This sensor reminds me of an automotive mass airflow sensor.

http://shop.moderndevice.com/products/wind-sensor - The Wind Sensor is a thermal anemometer based on a traditional technique for measuring wind speed. The technique is called the “hot-wire” technique, and involves heating an element to a constant temperature and then measuring the electrical power that is required to maintain the heated element at temperature as the wind changes. This measured electrical input is then directly proportional to the wind speed. Hot wire anemometers are available in hand-held packages resembling multimeters, but this is the first small sensor suitable for electronic experiments.

LED Pumpkin Light controlled by Arduino

Want a pumpkin light that turns itself on at night, off during the day, and flickers like a candle? Here's a great Halloween project.

http://www.instructables.com/id/LED-Pumpkin-Light-controlled-by-Arduino/

Friday, October 22, 2010

Robots: Amateur UAVs - mp3


Robots: Amateur UAVs - mp3

In today’s episode we speak about flying robots with Chris Anderson, founder ofDIY Drones which is now the largest amateur UAV community in the world, and one of the largest robotics communities.
Chris Anderson
Chris Anderson is Editor-in-chief of the very well known magazine WIRED. In his free time, he discovered a passion for making flying robots with his son and launched the internet blog DIY Drones which now has nearly 12,000 members and about 1 million page views per month. The goal of the blog is to give you all the necessary tools to build your blimp, plane or quadrotor in a low cost, safe and easy way. The community relies on a development team of more than 100 active developers contributing to about a dozen projects, both hardware and software. One of their products, the ArduPilotautopilot, can be strapped to your flyers for autonomous control. In a rather new twist in the industry, DIY Drones focusses on making open source hardware that can be used by all in the same spirit as open source software.
Anderson covers all the questions you ever had about making flying robots, including safety and legal aspects. He also discusses risks in putting this technology in the wrong hands and some anecdotes of crazy projects coming out of the community. - http://www.robotspodcast.com/podcast/2010/10/robots-amateur-uavs/

Sunday, October 17, 2010

PIR Motion Sensors

Using an Arduino for motion sensing is a fun project. It's fairly inexpensive, and doesn't require a high skill level. You can trigger an LED, an alarm, or even open a door.

From Blue Smoke Labs:

One of our best selling products is our PIR sensors, they are cheap and relatively easy to set up. But for those new to Arduino it can be a bit of a daunting task so we have some up with this tutorial to cover the basics of setting it up, coding it and in the end you will be making an LED blink when motion is detected.

http://bluesmokelabs.com/lab/?p=70

Saturday, October 16, 2010

Make your Arduino talk, sing, and zap!

We blogged about the Speakjet chip previously, but here is a snap on shield with all the hard work done for you, you can concentrate on creatively assembling speech, sound effects, and tones to your hearts content.



http://sites.google.com/a/droidbuilder.com/www/home/SpeakJetShield

Friday, October 15, 2010

Arduino Shield Database

A master list of plugin "shields" for the Arduino family. Everything from display shields, ethernet, wifi, even sound and data logging. Over 100 and still increasing. Check it out!



Sick of trying to figure out which pins are used by some obscure Arduinoshield? Can't tell whether two shields will be compatible with each other?

This shield database arose out of a discussion on the Arduino Forums about the need for a comprehensive online reference for shield pin assignments. It lists as many Arduino shields as I can find along with their pin usage, making it easy for you to determine if particular shields are compatible.
 http://www.shieldlist.org/

Thursday, October 14, 2010

Free Arduino UNO!

In cooperation with Hacktronics.com, we are giving away a free Arduino UNO to one lucky subscriber of our Arduino discussion group. Tell your friends, join the group, and discuss all things Arduino. If the giveaway is popular, we may continue giving away free Arduino "stuff".

Sunday, October 10, 2010

Add Speech capability to your Arduino

Give your Arduino the ability to talk with the Speakjet Chip!

From http://www.practicalarduino.com/projects/speech-synthesizer:
Synthesized speech was for a long time the Holy Grail of computing, and back in the 1980s when a 4MHz CPU made your computer the fastest machine in the neighborhood it just wasn't practical for software to create intelligible speech. In those days the only sensible way to generate speech was to offload the task to dedicated hardware because the CPU simply couldn't keep up. The most widely used speech chip through the 80s and early 90s was the famous SPO256A-AL2, the allophone speech processor.

Building a Furnace Flame Sensor

Using a Arduino as a furnace or boiler controller is fairly simple. You need a thermostat, a flame sensor, and a set of relays (electromechanical or solid state) to control the blower or circulator(s), and fuel pump if using fuel oil, or gas valve if using natural gas or propane.

A tutorial on CdS cells is at http://www.ladyada.net/learn/sensors/cds.html,

relays at http://www.glacialwanderer.com/hobbyrobotics/?p=9,

and temperature at http://www.ladyada.net/learn/sensors/tmp36.html

See our thermostat project at http://www.instructables.com/id/The-Arduino-Weather-Station-Thermostat/

Friday, October 8, 2010

State of Electronics - Trailer

This is a fantastic trailer, can't wait for the full movie. Australian in focus, but apropos for the rest of us as well.

"The discussion is focused initially on the world of Hobby Electronics and how it's decline could effect the Electronics Industry in the future. The Documentary then discusses many issues that face industry including the issue of "Repair and Recycle", "Education", "Surface Mount Technology", "Globalisation", "Opportunities" and many many more off the cuff & candid comments from Industry professionals."

State of Electronics - Trailer from karl von moller on Vimeo.

Thursday, October 7, 2010

Analog Switch Expands I2C Interface

What to do when you have two I2C devices with the same address? Need additional I2C channels? Here's a easy to use analog switch to enable 3 separate I2C channels. A MAX4562 and a handful of pullup resistors might be the ticket.

http://www.maxim-ic.com/app-notes/index.mvp/id/955

Wednesday, October 6, 2010

Real Time Clock Shield

We have been working on our Real Time Clock and LCD display as a snap on "shield" (no wiring). This will provide not only a time date function, but clock and display functions to other projects. We ran across another similar project at http://tronixstuff.wordpress.com/2010/10/07/add-a-real-time-clock-to-the-freetronics-twentyten/

Good stuff there, check it out.

Sunday, October 3, 2010

DS1307 Real Time Clock Working

With a bunch of help from John Boxall of Tronixstuff.com, we finally got the Time / Date functions working on our Arduino, with the DS1307 breakout board from Sparkfun. Thanks John.

More info at http://www.instructables.com/id/The-Arduino-Weather-Station-Thermostat/step6/Arduino-Clock-Module/

Finished code and wiring is below:

// Connections:
// LCD pin 1 to Arduino GND
// LCD pin 2 to Arduino 5v
// LCD pin 3 (Contrast) to GND
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pin 16 to Arduino GND
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2

//Tested with DS1307 Breakout from Sparkfun
//pin SDA to Arduino Analog pin 4
//pin SCL to Arduino Analog pin 5
//pin GND to Arduino GND
//pin VCC to Arduino 5v


#include <Wire.h>
#define DS1307_I2C_ADDRESS 0x68
#include <LiquidCrystal.h> // we need this library for the LCD commands
LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

int backLight = 13; // pin 13 will control the backlight

// Convert normal decimal numbers to binary coded decimal
byte decToBcd(byte val)
{
return ( (val/10*16) + (val%10) );
}
// Convert binary coded decimal to normal decimal numbers
byte bcdToDec(byte val)
{
return ( (val/16*10) + (val%16) );
}
// 1) Sets the date and time on the ds1307
// 2) Starts the clock
// 3) Sets hour mode to 24 hour clock
// Assumes you're passing in valid numbers
void setDateDs1307(byte second, // 0-59
byte minute, // 0-59
byte hour, // 1-23
byte dayOfWeek, // 1-7
byte dayOfMonth, // 1-28/29/30/31
byte month, // 1-12
byte year) // 0-99
{
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.send(decToBcd(second)); // 0 to bit 7 starts the clock
Wire.send(decToBcd(minute));
Wire.send(decToBcd(hour));
Wire.send(decToBcd(dayOfWeek));
Wire.send(decToBcd(dayOfMonth));
Wire.send(decToBcd(month));
Wire.send(decToBcd(year));
Wire.send(0x10); // sends 0x10 (hex) 00010000 (binary) to control register - turns on square wave
Wire.endTransmission();
}
// Gets the date and time from the ds1307
void getDateDs1307(byte *second,
byte *minute,
byte *hour,
byte *dayOfWeek,
byte *dayOfMonth,
byte *month,
byte *year)
{
// Reset the register pointer
Wire.beginTransmission(DS1307_I2C_ADDRESS);
Wire.send(0);
Wire.endTransmission();
Wire.requestFrom(DS1307_I2C_ADDRESS, 7);
// A few of these need masks because certain bits are control bits
*second = bcdToDec(Wire.receive() & 0x7f);
*minute = bcdToDec(Wire.receive());
*hour = bcdToDec(Wire.receive() & 0x3f); // Need to change this if 12 hour am/pm
*dayOfWeek = bcdToDec(Wire.receive());
*dayOfMonth = bcdToDec(Wire.receive());
*month = bcdToDec(Wire.receive());
*year = bcdToDec(Wire.receive());
}
void setup()
{
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.

byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
Wire.begin();
Serial.begin(9600);
// Change these values to what you want to set your clock to.
// You probably only want to set your clock once and then remove
// the setDateDs1307 call.
second = 0;
minute = 42;
hour = 9;
dayOfWeek = 1;
dayOfMonth = 3;
month = 10;
year = 10;

//setDateDs1307(second, minute, hour, dayOfWeek, dayOfMonth, month, year);
lcd.begin(16, 2); // tells Arduino the LCD dimensions

}
void loop()
{
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year);
lcd.clear(); // clear LCD screen
lcd.setCursor(0,0);
lcd.print(" ");
lcd.print(hour, DEC);
lcd.print(":");
if (minute<10)
{
lcd.print("0");
}
lcd.print(minute, DEC);
lcd.print(":");
if (second<10)
{
lcd.print("0");
}
lcd.print(second, DEC);
lcd.setCursor(0,1);
lcd.print(" ");
switch(dayOfWeek){
case 1:
lcd.print("Sun");
break;
case 2:
lcd.print("Mon");
break;
case 3:
lcd.print("Tue");
break;
case 4:
lcd.print("Wed");
break;
case 5:
lcd.print("Thu");
break;
case 6:
lcd.print("Fri");
break;
case 7:
lcd.print("Sat");
break;
}
lcd.print(" ");
lcd.print(month, DEC);
lcd.print("/");
lcd.print(dayOfMonth, DEC);
lcd.print("/20");
lcd.print(year, DEC);
delay(1000);
}

Saturday, October 2, 2010

Arduino Mega 2560 Operational!

I ported our temp / humidity (and not quite right barometric pressure) project over to the Mega 2560 a few minutes ago. So many more I/O pins. I love it! Will continue working on time date functions, and getting the barometric pressure reading sorted out. Once I get the BP working, I have to figure out code that will take comparative readings, and show rising or falling symbols.

Barometric Pressure, Real Time Clock, and Mega 2560 Woes

Today is Arduino day. First off, I grabbed the new BMP085 module from Sparkfun, and modified the examples to talk to my lcd instead of serial output. It's displaying

"Temperature -2678 Pressure 52029"

which can't be right, so I whipped off a email to Sparkfun tech support for some guidance. Then I grabbed the DS1307 real time clock module from Sparkfun, and again changed the code to display on my lcd (what's with all the serial output code folks? I don't want to have my laptop up just to see the time). Got

0:0:0 0/0/0

which also isn't right. Found a website which claimed their code works with lcd, so I uploaded their sketch. My pin 13 LED started flashing, and now can no longer upload code to my Arduino Duemilanove 328P. All I get is

"avrdude: stk500_recv(): programmer is not responding"

I rebooted my laptop, and no change. Ok, time to pull out the new Arduino Mega 2560. Oh, wait! No, that requires IDE version 0020, which isn't available for linux yet.

I'm going to go watch some tv ......

Update: 20 minutes after I posted this, The folks at Arduino posted version 0021 of the IDE, which includes the linux version. Yeehaw!

Wednesday, September 29, 2010

Arduino - X10 Communications

From http://www.arduino.cc/en/Tutorial/X10

This library enables you to send and receive X10 commands from an Arduino module. X10 is a synchronous serial protocol that travels over AC power lines, sending a bit every time the AC power crosses zero volts. It's used in home automation. You can find X10 controllers and devices at http://www.x10.com, http://www.smarthome.com, and more.
This library has been tested using the PL513 one-way X10 controller, and the TW523 two-way X10 controller. Both of these are essentially X10 modems, converting the 5V output of the Arduino into AC signals on the zero crossing.
To connect an Arduino to one of these modules, get a phone cable with an RJ-11 connector, and cut one end off. Then wire the pins as follows:

Read more at http://www.arduino.cc/en/Tutorial/X10

Arduino Temp / Humidity Video

We put together a quick video explaining our Arduino / Temp Humidity monitor to go along with our Instructable. We now have the barometric pressure and real time clock modules to upgrade the main unit, and will be working on that this weekend.

Tuesday, September 28, 2010

The NEW Arduino Mega 2560 arriving shortly!

Hacktronics notified us today that the new Mega 2560 was shipping out to us. We are very excited to try this brand new board and put it through its paces. The extra IO will come in handy as we expand our weather station. Read more about this fantastic new board at http://www.hacktronics.com/Arduino/Arduino-Mega/flypage.tpl.html

Monday, September 27, 2010

How to build our weather station

I put a instructable up on how to build our weather station. I will be adding / editing the instructable as the project evolves. This is the current version which includes the temperature and humidity functions. Barometric pressure and time date functions will be enabled as soon as the chips arrive this week.


The Arduino Weather Station / Thermostat - More DIY How To Projects

Sunday, September 26, 2010

3.3v regulator for our Arduino I2C projects

We are using the onboard 3.3v output on our Arduino board to run the SHT21 temp/humidity sensor. It's limited to 50 ma, so we are building a 100ma circuit, using the LE33CZ-TR voltage regulator, and two capacitors. We are using a 12v nominal input, but this circuit will handle up to 18v input (for when the house batteries are charging at 14.4 or so, and the occasional 15v equalize).

497-4258-1-ND (LE33CZ-TR 3.3v Regulator) $0.88

BC1148CT-ND (.1 mf 25v ceramic cap) $0.44

445-2866-ND (2.2 mf 25v ceramic cap) $0.26

I will be building a 5v regulator soon as well with the same input requirements, using the LE50CZ-TR 5v regulator, but Digikey did not stock this part at the moment. The inhibit circuit shown does not exist in the 3 leg TO-92 package, only in the surface mount 8 pin SO-8.

Saturday, September 25, 2010

Arduino "Uno" is ready! (and more)

A new replacement for the Duemilanove called the "Uno" (easier to pronounce, thank you), a new usb-serial adapter (with Arduino USB Vendor ID), the new Arduino Mega 2560, Tinker Toolkit (modular system of sensors and actuators) and more!

From http://arduino.cc/blog/2010/09/24/dinner-is-ready/ -
This board will replace the Duemilanove. We decided to be nice to the non-italians and use a name that was simpler to pronounce and write. Uno means one in italian and this board for us is the basic building block of the Arduino product line. We replaced the aging FTDI chipset with a custom made usb-serial converter built with an Atmel ATmega8U2 this provides lower latency and doesn’t require to install any drivers on mac and linux (on windows all you need is a simple .inf file) more advanced users will be able to reprogram the USB chip to make the board show up as a variety of USB devices (Keyboards, Mice, Joysticks, MIDI etc)

Arduino - PBX 2-way communication

I found a neat hack that allows a Arduino to call out, as well as receive communication from the open source Linux PBX, Asterisk.

I’ve been able to get Asterisk grab info about sensors connected to an ethernet-enabled Arduino, but how about the other way around? What if you could allow your Arduino to make outbound calls through your Asterisk system to make a make-shift alarm system, or over-powered doorbell?

Read more at http://www.nerdybynature.com/index.php/2010/09/br-r-r-r-r-ing-its-your-arduino/, and watch the video!

Friday, September 24, 2010

Arduino DS1307 Real Time Clock Module

Sparkfun is sending us their DS1307 Real Time Clock Module. This will add date and time functions to our Thermostat / Weather Station, for logging and set back functions, and time/date display.

http://www.sparkfun.com/commerce/product_info.php?products_id=99

Thursday, September 23, 2010

Barometric Pressure Sensor BMP085

We ordered a Barometric Pressure Sensor (BMP085) from Sparkfun, And the Protoshield (piggyback prototyping board) from Hacktronics is on it's way. We have a software library that enables us to run two I2C data buses so we can communicate with the two SHT21 temp/humidity sensors (same I2C address) from MisensO.

http://todbot.com/blog/2010/09/25/softi2cmaster-add-i2c-to-any-arduino-pins/

Discussion concerning how to use this chip can be found at http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1280074353 and the library with examples at https://code.google.com/p/arducopter/source/browse/trunk/libraries/#libraries/APM_BMP085

Wednesday, September 22, 2010

DIY Logic Probe

A logic probe is a useful tool for troubleshooting digital circuits like the ones found in Arduino projects. You could buy one, like on the left, or make your own. Here is one of our DIY favorites:

http://pminmo.com/troubleshoot/lprobe.htm

How much water is in my tank / cistern?

Living in an rv, we have 3 water tanks; fresh, grey, and black. The typical rv sensors can get goofy when crudded up with debris and residue. I'd like the Arduino to accurately determine the level in my tanks. Here is an option from the book at left:

It uses a device called a differential pressure transducer to measure the water pressure at the bottom of the tank, and from that to calculate how full the tank is. Water pressure increases by about 9.8067kPa per meter of depth so a full tank 2m tall will have a pressure at the bottom of about 19.6134kPa above ambient atmospheric pressure. The "above ambient atmospheric pressure" part is important: it's not enough to simply measure the pressure at the bottom of the tank because varying climate conditions will alter the reading. That's why this project uses a "differential" pressure transducer that has two inlets. By leaving one inlet open to the atmosphere and connecting the other to the bottom of the tank the transducer will output the difference between the two, automatically compensating for varying air pressure and giving a constant reading for constant depth.
http://www.practicalarduino.com/projects/water-tank-depth-sensor

Tuesday, September 21, 2010

Dual Humidity / Temp I2C Sensors

We are adding a second temp/humidity sensor (outdoor) to our digital thermostat / weather station. It arrived today from MisensO, and they are helping us with the code for reading two I2C sensors with the same bus address. Stay tuned for progress, and check out their site as well. We will be ordering our barometric pressure sensor shortly to add to this project, and a prototyping shield is coming from Hacktronics.

Monday, September 20, 2010

New Arduino, New IDE - This Weekend?

Rumor has it there is to be a announcement this coming weekend of a whole new upgrade in hardware and software. Not an incremental upgrade, but a big jump in the evolution of the platform. It's said to be mostly backwards compatible. Stay tuned!

Control the Arduino with IR TV Remote

Use a TV remote to tell your Arduino to do various things, like turn lights on/off, lock doors, close blinds, and more.

Article

Background Info

Sunday, September 19, 2010

Wordle - Arduino Blog Art

Wordle: Arduinotronics.blogspot.comThe Arduino was designed for artists and architects originally, so here is our nod to Art. Wordle takes our blog feed, and converts it to this representation, based on the popularity of keywords. Make your own Wordle maps at http://www.wordle.net

Easy storage of your components

Want a inexpensive and easy method to store your variety of resistors, capacitors, transistors, LED's and more? Get a three ring binder, and some of these zippered inserts to store your components. Ziplock baggies can subdivide the various devices further by part number or capacity.

Wednesday, September 15, 2010

Arduino Temp / Humidity Update!

Tonight I added a RGB LED to the project. The LED turns red when the temp drops too cool (to indicate that the furnace has turned on), and blue when it gets too hot (to indicate the A/C has turned on). When the temp is in our 15 degree comfort range, the LED is green. I'll try to get a pic uploaded tomorrow, and video this weekend. I just put my finger over the temp sensor, and the LED changed from green to blue. Very cool!

Tuesday, September 14, 2010

Our Temperature / Humidity Monitor is working!

We received our SHT21 Temperature / Humidity Sensor today from Misenso. No documentation came with it, so a bit of googling found parts of the necessary info on 3 different sites (spliced a few bits of code, installed the I2C library, and crossed my fingers on the wiring). If you want to duplicate this email me, and I'll send you the pde file, the library, and schematic. It's specific to this implementation of the SHT21 module and most 4 line LCD displays.
Code download - sht21_LED.pde

Library - LibHumidity.zip






// Connections:
// LCD pin 1 to Arduino GND
// LCD pin 2 to Arduino 5v
// LCD pin 3 (Contrast) to GND
// rs (LCD pin 4) to Arduino pin 12
// rw (LCD pin 5) to Arduino pin 11
// enable (LCD pin 6) to Arduino pin 10
// LCD pin 15 to Arduino pin 13
// LCD pin 16 to Arduino GND
// LCD pins d4, d5, d6, d7 to Arduino pins 5, 4, 3, 2

//Tested with SHT21 Breakout from Misenso
//SHT21 pin SDA to Arduino Analog pin 4
//SHT21 pin SCL to Arduino Analog pin 5
//SHT21 pin GND to Arduino GND
//SHT21 pin VCC to Arduion 3v (not 5v)

//RGB LED
//Red Cathode to Arduino pin 9
//Blue Cathode to Arduino pin 8
//Green Cathode to Arduino pin 7
//Anode to 270 ohm resistor to 5V

#include <LiquidCrystal.h>
#include <Wire.h>
#include <LibHumidity.h>

LibHumidity humidity = LibHumidity(0);

LiquidCrystal lcd(12, 11, 10, 5, 4, 3, 2);

int backLight = 13; // pin 13 will control the backlight
int RedLEDPin = 9; // LED connected to digital pin 9
int BlueLEDPin = 8; // LED connected to digital pin 8
int GreenLEDPin = 7; // LED connected to digital pin 7


void setup()
{
pinMode(backLight, OUTPUT);
digitalWrite(backLight, HIGH); // turn backlight on. Replace 'HIGH' with 'LOW' to turn it off.

//I2C
pinMode(16, OUTPUT);
digitalWrite(16, LOW); //GND pin
pinMode(17, OUTPUT);
digitalWrite(17, HIGH); //VCC pin

//Furnace / AC Indicator
pinMode(RedLEDPin, OUTPUT); // sets the digital pin as output
pinMode(BlueLEDPin, OUTPUT); // sets the digital pin as output
pinMode(GreenLEDPin, OUTPUT); // sets the digital pin as output

}

void loop()
{
lcd.begin(20,4); // columns, rows. use 16,2 for a 16x2 LCD, etc.
lcd.clear(); // start with a blank screen
lcd.setCursor(0,0); // set cursor to column 0, row 0 (the first row)
lcd.print("Humidity: "); // change this text to whatever you like. keep it clean.
lcd.print(humidity.GetHumidity());
lcd.setCursor(0,1); // set cursor to column 0, row 1
lcd.print("Temp in C: ");
lcd.print(humidity.GetTemperatureC());
lcd.setCursor(0,2); // set cursor to column 0, row 2
lcd.print("Temp in F: ");
lcd.print(humidity.GetTemperatureF());
{
if (humidity.GetTemperatureF() < 60) { digitalWrite(RedLEDPin, LOW); // sets the Red LED on digitalWrite(BlueLEDPin, HIGH); // sets the Blue LED off digitalWrite(GreenLEDPin, LOW); // sets the Green LED off } else if (humidity.GetTemperatureF() >= 75)
{
digitalWrite(BlueLEDPin, LOW); // sets the Blue LED on
digitalWrite(RedLEDPin, HIGH); // sets the Red LED off
digitalWrite(GreenLEDPin, HIGH); // sets the Green LED off
}
else
{
digitalWrite(GreenLEDPin, LOW); // sets the Green LED on
digitalWrite(BlueLEDPin, HIGH); // sets the Blue LED off
digitalWrite(RedLEDPin, HIGH); // sets the Red LED off

}
}

delay (20000);
}


Unsure what is causing the two strange characters at the end of the Temp in F line, but will work on that. (Michael Grant pointed out the unnecessary carriage return we had in our code. All fixed now.)

Monday, September 13, 2010

Data logging with the Arduino

Our solar and wind power monitor needs the ability to save historical data so that we can track watt hours and amp hours daily and weekly. A SD card provides enough capacity, and allows us to easily download the data to our PC. There is a nice data logging shield available for under $20 that fits the application nicely.

Data logging shield for Arduino makes saving data to files on any FAT16 or FAT32 formatted SD card really easy. The included Real Time Clock timestamps all your data with the current time, so that you know precisely what happened and when!

http://www.makershed.com/ProductDetails.asp?ProductCode=MKAD18

For a power monitor idea, see http://www.mcqn.com/weblog/mazzini_monitors_its_first_appliance

Sunday, September 12, 2010

Sparkfun Inventors Guide

I highly recommend you download Sparkfun's Inventors Guide. It will give you a lot of valuable information on how to use the Arduino, trigger some neat ideas of your own, and Sparkfun is a valuable resource for components and sample code.

Arduino Medical Monitoring

The Arduino seems the ideal platform for making your own medical monitoring system. Your temperature, heart rate, respirations, blood pressure, weight and O2 content of the blood are all measurable and loggable. Here are a few links to get you started, but email me at sspence@green-trust.org with more links to this application.

http://www.wonderhowto.com/how-to-make-infrared-heart-sensor-286365/


http://danjuliodesigns.com/sparkfun/hrmi.html


http://jdesbonnet.blogspot.com/2010/05/using-arduino-duemilanove-as-quick-and_25.html

http://www.ladyada.net/learn/sensors/tmp36.html

Saturday, September 11, 2010

O'Reilly Webcast: First Steps with Arduino

In this webcast, Make Editor Brian Jepson introduces the basics of Arduino, the open source electronics prototyping platform. You'll learn what Arduino is, where to get one, and how to connect electronic components to it. You'll also learn how to write simple programs for Arduino. When you're done, you'll be ready to learn more, make more, and have fun prototyping. The last half hour of the recording is open chat following the webcast.

Friday, September 10, 2010

DIY Security System

Security system sensors such as motion detectors, reed switches, pressure mats, glass-break detectors, infra-red beams, and conductive film can be very handy for all sorts of things including home automation systems, interactive art installations - and sometimes even security systems! Almost all security system sensors provide a simple switched output that changes state based on whether the sensor has been tripped or not, which means that when connected up in a circuit they behave just like a switch that is activated automatically. That makes them extremely easy to connect to an Arduino to read their status.

Read more at http://www.practicalarduino.com/projects/security-sensors

Wednesday, September 8, 2010

pH meter using an Arduino board

Carlos from Brazil has designed a pH meter using the Arduino. Although not available for sale yet (unless someone can help him get a full version of Eagle), all the code and associated files are available for download.

pHduino is a open hardware and open software for pH measuments using a glass electrode sensor for hydrogen ion and a Arduino board.

This pHmeter can be powered by a power supply and display the data using a LCD. Also, you can control it and power it up by USB port. The offset and slope can be adjust manually by potentiometers or by an auto calibration code (not implemented, yet). There is a temperature sensor for temperature compensation.

Sunday, September 5, 2010

Model RailRoading with the Arduino

There's a number of good references on the net where folks are using the Arduino to control various aspects of their model railroad layouts. Here's a number of interesting projects:

http://modelrail.otenko.com/category/arduino

http://www.oscale.net/en/arduino

http://trackhacker.com/archives/tag/arduino

Saturday, September 4, 2010

LCD is Alive!

Our 4 line 20 character white on blue display from Hacktronics is alive and well. I uploaded the sample sketch and wired the display according to the tutorial that is posted on their website, and everything worked like a charm. Next step is to read the temp sensor and display the current temperature (current values displayed are a mock-up, not being read from a sensor). I need to get a 5k ohm pull up resistor, so stay tuned!

Update: got the resistor, but having problems uploading the onewire.h library

BTW, the Hacktronics LCD Tutorial also worked with the what was previously thought to be a "dead" 2 line Black on Orange LCD display we recieved earlier from GE Tech. Now I have two LCD's to play with.

Tuesday, August 31, 2010

What is Hackspace?

Hackspace is a local geek club for playing with electronics and computers. Ok, could I get more condescending? Hey, I'm a linux / microprocessor geek myself. Anyway, a local club develops with a facility and tools that are shared with members, and there are usually official hack nights, as well as drop by and work times. Bulk buys are usually available, and members share skills and ideas. Check one out near you, or start one yourself.

http://strugglers.net/~andy/blog/2010/08/30/london-hackspaces-arduino-for-beginners-workshop/

http://www.heatsynclabs.org/this-week-arduino-night-and-take-apart-night/

http://en.wikipedia.org/wiki/Hackerspace

http://hackerspaces.org/wiki/

Monday, August 30, 2010

How to Install the Lithium Backpack to your Arduino

The Arduino is an open source hardware input and output circuit and the Lithium Backpack is a Ardino accessory that will power the Arduino when it is away from a computer or a wall power. These products are sold at Liquidware for under $34 each.

http://antipastohw.blogspot.com/2008/06/how-to-install-lithium-backpack-to-your.html

Make | Getting Started with Arduino

This valuable little book offers a thorough introduction to the open-source electronics prototyping platform that’s taking the design and hobbyist world by storm. Getting Started with Arduino gives you lots of ideas for Arduino projects and helps you get going on them right away.

With inexpensive hardware and open-source software components that you can download free, getting started with Arduino is a snap. To use the introductory examples in this book, all you need is a USB Arduino, USB A-B cable, and an LED.

Join the tens of thousands of hobbyists who have discovered this incredible (and educational) platform. Written by the co-founder of the Arduino project, with illustrations by Elisa Canducci, Getting Started with Arduino gets you in on the fun! This 128-page book is a greatly expanded follow-up to the author’s original short PDF that’s available on the Arduino website.

Sunday, August 29, 2010

GPS + Arduino

Kevin Darrah explains in this video how to interface a GPS chip to the Arduino. Make your own lojack, navigation aid, autonomous vehicle and more.

Saturday, August 28, 2010

Soldering Sheild Headers

From http://www.freetronics.com/pages/soldering-shield-headers

Many Arduino shields are shipped with headers packed loose, leaving it up to you to solder them in place. Sounds easy, right? Actually, it’s more fiddly and annoying than it sounds. Arduino headers consist of four separate headers, and if you get the pins even a little crooked on any of them it can be hard getting the shield to plug neatly into the Arduino. The first few times I soldered headers to shields it took several minutes of cursing, burned fingers, and repeatedly re-flowing the solder on the first joint to get them to sit perfectly straight before soldering the rest of the pins.

Read more .....

Friday, August 27, 2010

Arduino Robot Goes WiFi

From http://www.embedds.com/arduino-robot-goes-wifi/

Arduino is very rich in its shields so there is another fast and great project – WiFi controlled Arduino robot. The platform is pretty simple – mainly made of wood. Interesting part is that Arduino is equipped with WiShield from AsyncLab’s that allows controlling bot remotely via TCP.

Thursday, August 26, 2010

WaterValveShield controls your garden spigot

First Ray built a minty water valve controller that gave him control over a garden water supply, then he turned it into a shield.

For the water valve, I picked the Orbit yard watering valve. It's widely available in home improvement stores, and it is cheap. It has two pins: applying +24v opens the valve, and -24v closes the valve. It uses a latch solenoid, drawing power only when you open or close it. This makes it very power efficient.

To use a single li-poly battery to drive the valve, I needed a voltage booster to raise the 3.6v provided by the battery to 24v momentarily before connecting to the valve solenoid. For this I chose an LT1303 DC/DC step-up converter, but any similar converter will do as well. Switching between applying +24v or -24v to the solenoid is achieved by using some MOSFETs. I can't use small BJT transistors because they won't handle the large impulse current through the solenoid (as high as 5A). Darlington transistor would work but I prefer MOSFETS for their power efficiency.

http://blog.makezine.com/archive/2010/08/watervalveshield_controls_your_gard.html

Tuesday, August 24, 2010

Black on Orange LCD Display

We received our Black on Orange 2 line 40 character LCD display from http://www.ge-th.com/, and are soldering pin headers on it so we can mate it to our breadboard. This unit is the display module for our HVAC Controller / Weather Station. We still need the Humidity / Temp module and the Barometric Pressure Sensor if someone wants to help with the project. All schematics and code will be posted.

Solar panel monitor / logger

Hackaday has a cool post on Ladyada's video on solar charge control analysis.

http://hackaday.com/2010/08/07/solar-panel-charger-analysis-with-ladyada/

The unit itself is built around an Arduino and can log the statistics to an SD card, show battery voltage, panel voltage, and current from panel to charger. You can see in the video above how she uses this to refine her design in real time for optimal results.

Monday, August 23, 2010

Remember Pong?

Here is a nice Arduino implementation of the old video game pong from the 70's!



More info:

Sunday, August 22, 2010

An Arduino Compatible Web Server for £12

Our good friend Ken Boak has been busy:

In the last 2 weeks I have been working towards making a very low cost Arduino compatible web server based on the ATmega328 interfaced to an ENC28J60 ethernet controller.

http://sustburbia.blogspot.com/2010/08/arduino-compatible-web-server.html

Saturday, August 21, 2010

What is GardenBot?

GardenBot is a garden monitoring system. This means that you put sensors (temp, humidity, moisture, light) in your garden, and GardenBot will show you charts of the conditions in your garden -- so you can see the world the way your plants see it.

GardenBot is also essentially a test-bed (sandbox, etc.) for playing with different kinds of sensors and exploring the various challenges in implementing a garden automation system. And since each part is designed as a module, it is relatively easy to expand the system.

http://gardenbot.org/

Tuesday, August 17, 2010

Plants use Twitter to tell you to water them

The gang from Botanicalls used one of Adafruit's new open source hardware ethernet shields for Arduino (open hardware too) to make some plants talk - and now you can too! That's right, having your houseplants Twitter you when they need water and more! You can see what one of the plants is doing now...

Server Room Environmental & Security Monitoring

Monitoring temperature and humidity in a server room environment can be expensive. The Arduino is an ideal platform for this application, and with the addition of a Sprout Board, it's very flexible and inexpensive.

Possible sensors:

  • One additional remote temperature sensor installed at the AC vent.
  • One magnetic reed sensor installed on the door to the server room to act as a entry monitor.
  • One Smoke Detector with a built in alarm I/O port connected to our digital I/O.
  • One simple water sensor plate connected to our analog inputs.
  • One AC powered relay to detect City power Failures.
  • One solid state relay connected to an emergency exhaust blower.

http://sproutboard.com/projects/Open-Source-Server-Room-Monitor.aspx

Monday, August 16, 2010

The Arduino APRS AX.25 Interface

The Radio Shield is an add-on kit for the Arduino development board that provides AX.25 packet radio send and receive capability, a prototyping area, and an HD44780-compatible LCD interface.

Packets are sent and received in AX.25 UI frames. This allows operation on the APRS network.

http://wiki.argentdata.com/index.php/Radio_Shield

Autonomous Vehicle Control with Ardupilot

Autonomous vehicle control is a fancy way of saying a vehicle is self guided, based upon onboard sensor input. GPS, Sonar, IR, and other sensors can help a unmanned vehicle (plane, boat, car, etc.) navigate on it's own with out human input. There are tools available to enable this. The main tool is called Ardupilot. Failsafe ability allows a remote control link to take over if Ardupilot loses control.

Learn how to build your Arduino guided vehicle at http://diydrones.com/profiles/blogs/ardupilot-main-page.

Sunday, August 15, 2010

The Arduino Ethanol Distiller Controller

We have been a fan of brewing your own ethanol fuel for many years. It's basically a higher purity (less water) version of what is commonly called moonshine or everclear. Gasoline engines need some minor modification to run this, but it burns clean, it's non-toxic and can be made at home (not imported or spilled all over the Gulf). There are many resources to teach you how to distill alcohol, but this article is about how to run an automatic still with an Arduino.

The core functions are to read up to six temperature inputs, run a single power controller for the boiler and be able to operate up to three solenoid valves. That's enough for most purposes and there are more digital ports available if you've got more things to control. Six temp probes, AC power controller and three switching outputs is enough to do most automatic stills.

http://www.artisan-distiller.net/phpBB3/viewtopic.php?f=11&t=1481

Circuit Design Software

Fritzing is an open-source initiative to support designers, artists, researchers and hobbyists to work creatively with interactive electronics. We are creating a software and website in the spirit of Processing and Arduino, developing a tool that allows users to document their prototypes, share them with others, teach electronics in a classroom, and to create a pcb layout for professional manufacturing. Works on Linux, Mac, and Windows!


http://fritzing.org/welcome/

Saturday, August 14, 2010

Great Arduino Tutorial Download

The folks at Earthshine Electronics have produced a great Arduino tutorial. It's full of schematics, program code, and build instructions with clear diagrams. I recommend you download it at http://www.earthshineelectronics.com/files/ASKManualRev4.pdf

The Arduino Breathalyzer

Why you would want to build your own breathalyzer? Well, everyone has their own reasons I guess. For us, it's enough to know it can be done. It's not precise, but will give you comparison values ("I'm drunker than you are". "No, I'm drunker"). I don't recommend this as a reason for drinking games, but it is an interesting application of technology.

http://www.danielandrade.net/2010/03/07/building-an-breathalyzer-with-mq-3-and-arduino/

Internet NTP Time Clock

Want to know what the official time is? Setup this Arduino clock, plug it into your dsl/cable router, and always have the exact time. It uses the Internet NTP protocol to get the current date and time, and display it on a LCD. Sounds pretty simple, right?

http://tuxgraphics.org/electronics/200710/avr-ntp-clock.shtml


Find more cool projects with:

Friday, August 13, 2010

Internet/network enable your arduino on the cheap

An inexpensive arduino chip with onboard ethernet for connecting to the network, other computers, and the world.


A credit card sized Ethernet Arduino compatable controller board - More DIY How To Projects

The LCD for our HVAC Thermostat

The LCD for our HVAC Thermostat is on it's way. It's a very cool looking 16x2 with black letters on orange background. At less than $10 delivered, it's a great deal.

http://cgi.ebay.com/LCD1602-Black-word-Orange-light-arm7-arm9-arduino-/270607047221?pt=LH_DefaultDomain_0

Thursday, August 12, 2010

Connect Your Arduino to the World

With an Ethernet Shield, the Arduino can talk to other computers around it, and those around the world.

http://arduino.cc/en/Guide/ArduinoEthernetShield\


http://www.hacktronics.com/Arduino/Arduino-Ethernet-Shield/flypage.tpl.html?pop=0

The Arduino and the LCD Display

Your Arduino has things to tell you. One of the easiest ways to let it communicate is to attach a character LCD. These LCD modules are a lot of fun, however they can be tricky to get working right. Many a hacker has spent hours trying to get one working, only to suffer through frustration and humiliation. Hacktronics is here to help. Our LCD HackPack, along with this tutorial, has everything you need to get an LCD working quickly with your Arduino. An LCD module connected to your Arduino can be a great debugging tool for your program. The LCD modules covered here are based on the very popular HD44780 controller.

http://www.hacktronics.com/Tutorials/arduino-character-lcd-tutorial.html

Wednesday, August 11, 2010

Assemble your own Arduino Duemilanove - The Kit

For $25 (Free shipping) you can get a complete Arduino kit. Yep, it's a bare board with all the parts, you assemble. Bring back memories of Heath Kit projects.


http://cgi.ebay.com/Arduino-Duemilanove-Atmega328-full-component-Kits-/280516056150?pt=LH_DefaultDomain_0

Arduino Motion Detector Using Parallax Passive Infrared Motion Sensor

Looking to detect motion with your Arduino? Great for security or robotics apps. There are some neat projects including temperature sensing, exhaust gas analyzers, and more at http://www.pdqweb.net/arduino-motion-detector/

Tuesday, August 10, 2010

Arduino based contact-less tachometer

If you need a way to detect the speed of a rotating device, a tachometer is the way to do it. If you can't add slots and a hall sensor, a simple contactless IR sensor and reflective tape may be just the ticket. See http://www.embedds.com/building-a-contactless-tachometer/ for more info.

The Robot Pet

Back around 1980 or so, I bought a book on how to make a robot pet. It would let you know when it was hungry (low batteries), follow you around, and avoid obstacles (ultrasonics). Well, microcontrollers have come a long way, and the ability to imitate life has improved greatly. Check out this example of a modern robotic "dog":

http://feilipu.posterous.com/?sort=&search=dogbot
Related Posts Plugin for WordPress, Blogger...