Christmas lights with Arduino

After long time since the last post and being back from my “journey” in Scotland it is time for new electronics projects. If you are wondering about the weather station I can anticipate that the project is on-going and soon there will be news (the PCB is almost completed)

In the mean time as a very fast project for the Christmas holidays I thought about replacing the old outdoor lights on the three with old fashioned bulbs with some LEDs, but as a good maker (well… let’s say electronic engineer [as in Italy, should be an MSc outside Italy] becasue maker is a bit too advance, I destroy thing more than make them) felt to go a step further and find something programmable.

With a really rapid research with google I found the NeoPixel from Adafruit, which uses a chip called WS2811 to drive a single RGB LED (or three single LEDs of any kind you want I add). This chip is programmable in serial and can be concatenated with other drivers to form a long sequence of LED. Its successor is the WS2812 which is integrated inside the LED, available in different sizes (see Adafruit)

Once decided the LED/driver I searched online for a programmable LED line for outdoor use and found this on Amazon (Apologies if it opens an italian webpage) from China and a 5V, 10A power supply. The power supply was chosen after a measure with a bench variable power supply and more than doubled the maximum current measured because it is always a good practice to overestimate the power needed for the supply to avoid to break it at the first use. (Also don’t trust the manufacturer of cheap power supply).

With a perfboard I realised the connections for the Arduino Leonardo I had around the house and wrote the code necessary to have some light effects. The code is availeble on github.

The code is really minimal in order to use the lowest memory possible which enables further effects to be added in future.
So far there are only a couple of effects and an Arduino sketch to test colours which does not work on my laptop (I don’t get the string messages I wrote in the code). Enjoy and have fun.

Ciao and happy 2017 to everyone.

Annunci

Luci natalizie con Arduino

Dopo molto tempo dall’ultimo post ed essendo tornato dall’estero eccomi qui con nuovi progetti. Se vi state domandando se la stazione meteo sta procedendo vi anticipo che presto ci saranno delle novita`in arrivo (la PCB e` quasi completata).

Nel frattempo come progetto lampo per Natale ho pensato di togliere le vecchie luci a lampadina tradizionale e sostituirle con delle luci a LED, ma da buon maker (diciamo da ingegnere che maker e` troppo avanzato, io al massimo disfo) mi sono sentito in dovere di fare un passo in piu` e cercare qualcosa di programmabile.

Allora con una rapida ricerca ho trovato questi NeoPixel da Adafruit che usano un WS2811 per pilotare un LED RGB, la peculiarita` di questi chip sta nella possibilita` di concatenare piu` chip in serie e sfruttare la connessione seriale per creare delle file di LED. Il suo successore e` il WS2812 che e` integrato all’interno del LED stesso ed e` disponibile in diverse misure (sempre sul sito Adafruit).

Cercando quindi una fila di luci a LED programmabili ho trovato questo su Amazon dalla Cina e che fa proprio al caso mio, insieme a questo ho pure comprato un alimentatore (dopo aver testato la fila a LED) da 5V e 10A per alimentare 5 file di LED. L’alimentatore e` stato scelto con il doppio della potenza realmente necessaria per evitare che si bruci, essendo un alimentatore anchesso cinese e` bene sceglierne uno sovradimensionato perche’ fidarsi e` bene ma non fidarsi e` meglio.

Nel frattempo ho realizzato su una scheda “mille-fori” lo shield per l’Arduino Leonardo che avevo disponibile a casa e poi ho scritto il codice necessario per pilotare le file di LED. Il codice e` disponibile su github e spero vi sia utile.

Il codice e` minimale e cerca di riutilizzare il piu` possibile le variabili per usare il meno possibile la memoria. Per ora gli effetti sono pochi, mi ci vorrebbe un po’ di tempo per crearne degli altri ma se qualcuno di voi lettori ha qualche suggerimento fatevi avanti.

Un saluto e buon 2017 a tutti

First tests

Hello everybody,

good to see you there. Today I have an update. My brother in Italy is helping me to go on with this project and has released a first code of the Arduino weather station. This code allows to test the temperature, humidity and pressure sensor with the ethernet and a PC on the other side. In this post I will present you only the Arduino code and not the program realized on the server.

At this link of github you can find the Arduino code which is successfully tested for days on my Arduino Ethernet (not the Ethernet shield, I don’t know if it’s work as well on the shield, if you try let me know please!)

I attach also some pictures of the Arduino under test.

Have a nice Arduino! XD

Arduino under test
The breadboard with the sensors

Primi test

Eccomi qui a darvi qualche aggiornamento. Nonostante sia in Scozia grazie al mio fratellino il progetto va avanti e posso dirvi con somma gioia che un primo abbozzo del progetto funziona.
Per adesso sto provando a far funzionare i sensori di temperatura, umidità e pressione in modo tale che l’Arduino carichi i dati al mio server di casa (poi mi farò dire come fa, per adesso pubblico solo il codice per l’Arduino visto che è più di mia competenza di quello lato PC)

A questo indirizzo di github potete trovare il codice che mio fratello ha fatto girare con successo per giorni sull’Arduino Ethernet (non lo shield mi raccomando, non so se ci sono differenze o meno e non me ne prendo la responsabilità)

Detto questo aggiungo qualche foto dell’Arduino sotto test.

Buon Arduino a tutti!

Arduino sotto test
Ingrandimento breadboard

The pressure sensor BMP085

Hi everybody!

Recently I had a little time even to program my Arduino and now I’m here writing a new post. What I did was the library to use the sensor BMP085 that I bought for the weather station. It’s my first library so it is not so sophisticated, I am limited to rearrange the test code of SparkFun; everything works on IDE 1.0 and a version of Debian testing I’ve just upgraded from Ubuntu.

The requirements for use this library are:

  • Use an Arduino with I2C interface (The Arduino Ethernet I use have one)
  • A little trick in the code, when you call the library you must do like the code above:
void setup() {
  Wire.begin();  //be sure that this command is before the BMP085 init
  myBMP085.init();
  ...
 }

For any questions comment please!

You can download the library in the “My Arduino Libraries” page

Il sensore di pressione BMP085

Eccomi qui!

Ultimamente ho avuto un po’ di tempo anche per programmare il mio Arduino ed eccomi qui a scrivere. Quello che ho realizzato è stato la libreria per poter utilizzare il sensore BMP085 che ho acquistato per la stazione meteo. E’ la mia prima libreria quindi non è poi così sofisticata, mi sono limitato a risistemare il codice di prova degli sparkfun, il tutto funziona sulla IDE 1.0 e un sistema Debian in versione testing che ho appena aggiornato da Ubuntu.

I requisiti per l’utilizzo sono pochi:

  • Avere un Arduino con interfaccia I2C (l’Arduino Ethernet che uso ne è provvisto)
  • Una piccola accortezza nel codice, quando richiamate la libreria occorre:
void setup() {
  ...
  Wire.begin();  //be sure that this command is before the BMP085 init
  myBMP085.init();
  ...
 }

Per domande commentate pure!

La libreria è disponibile nella pagina “My Arduino libraries”

Weather station with Arduino

Hi!

With this post I begin the weather station made with arduino.

Actually I bought an Arduino Ethernet (it contains an ethernet port and a microSD slot for record data), a temperature and humidity sensor and a pressure sensor.

To use Arduino I use Ubuntu 11.10 and the Arduino IDE 1.0 (you can find on the Arduino webpage), both at 64bit. To program the Arduino Ethernet I use the USB FTDI cable and with this last version of Arduino IDE you have not to burn a new bootloader.

At the moment I only tested the humidity and temperature sensor RHT03 (also called DHT22) with this library avaible at this link. But for use this library with last version of Arduino IDE I have to change the code in the DHT22.cpp file:

43: #include "DHT22.h"
44: #include "pins_arduino.h"
45:
46: extern "C" {
47:   #include "WConstants.h"
48:   #include <avr/io.h>
49:   #include <avr/interrupt.h>
50:   #include <avr/pgmspace.h>
51:   }

to:

43: #include "DHT22.h"
44: #include "pins_arduino.h"
45: #include "Arduino.h"
46:
47: extern "C" {
48:   #include <avr/io.h>
49:   #include <avr/interrupt.h>
50:   #include <avr/pgmspace.h>
51:   }

With this change everything works!

Bye! Stay tuned!