Category Archives: Projects

RGBW NeoPixel ring works with the Particle Photon

I tried hard to make an RGB NeoPixel ring with the Particle Photon, but never manage to do it. So I ordered the new RGBW NeoPixel ring and now it works really fine. It even work without the logic converter in fact. Here my demo and the code.

// Set pixel COUNT, PIN and TYPE
#define PIXEL_COUNT 16
#define PIXEL_PIN D2
#define PIXEL_TYPE SK6812RGBW

// Adafruit NeoPixel library found in the Particle.io IDE.
#include <neopixel.h>

Adafruit_NeoPixel strip(PIXEL_COUNT, PIXEL_PIN, PIXEL_TYPE);

void setup() {
    strip.begin();
    strip.setBrightness(10); // Brightness 0-255
    strip.show(); // Initialize all pixels to 'Off'

}

void loop() {
    testAll();
}

void testAll() {
    for(uint16_t i=0; i<strip.numPixels(); i++) {
        strip.setPixelColor(i,0,0,0,255);
        strip.show();
        delay(250);
        strip.setPixelColor(i,0,0,0,0);
    }
}

An automated green thumb in the garden

My wife and I love eating fresh food. Fresh cut herbs cost as much as the whole living plant. So we start buying these fellows in their pot. However, in the winter the days are too short, they won’t grow. So I decided to build a lightened garden to give them what they need. In fact, it is not a new idea, I plan to build a computer controlled garden for a while.

I need  to start somewhere and develop my gardening skills and understand how to automate the thing. This first project is much like a prototype. I gather some junk I accumulated around the house, and I build this little oasis.

Smart garden without electronics

The reflectors

I begin with the reflectors. I build them from old floor heater front panels. I cover them with aluminum foil. They are not wide enough to cover the entire light. So when we sit we can see the direct light. However, they do the trick.

Reflector build with aluminum foil

Reflectors assembly

Here is the complete assembly of the garden, before the paint. Before I start, I already know that my light was too high. In the next one, it will be adjustable. When I built it, I had no clue of the height of the plants I will grow in it.

Fluorescent lightening

I use two 45 watts fluorescent bulbs I pick from my studio box. They are full spectrum 5500k lights. I use it for two weeks now, and the plant seem to have enough light. In my readings, I found that the best temperature is 6400k. I plan to purchase some real fluorescent tube grow lights after the holidays.

Smart garden assembly before paint

The moisture sensors

These bolts will be the moisture sensors. I gravelled about two inches of the bottom of the planter. The bottom sensor will tell if they are too much water. The side sensor will keep track of the soil moisture. Both will be hooked to and Arduino. I hope it will work! I had not tested yet.

Moisture sensors

Moisture sensor head

The controller

This is it for now. The next part is where the fun begins. For me at least! I can not do things the simple way. So I want this garden as automated as possible.┬áHere’s a sneak peak.

Smart garden diagram

Arduino data logger and humidity temperature moisture sensors

Marvin let me drive easily

In this second version of the software, I managed to be able to slide my thumb to the OSC controls. I explain. When you move an OSC slider, a bunch of commands are sent. Not just the start position and the end position, but many position behind these last two. On the Marvin robot, the commands are received and computed by the Raspberry Pi then send to the Arduino board through the serial port. The problem is at this point. The serial command are very slow, and there are queued. So when I moved my thumbs to accelerate it take a while to the robot to get to the speed. Worse, when I hit the panic break button, it has the queue all the commands sent before.

So I manage to put all the commands in a list. Them only send the last one when the serial port is ready. Look a bit easy, but I had to learn a bit more of Python and understand how to create threads. The fun thing? I had fun doing it : )