Saturday, January 3, 2015

Moteino Node Talking to Host

After about two weeks off for the holidays, I spent time at the Milwaukee Makerspace working on the Moteinos for my Home Environmental Sensor Array.

3D Print of a Battery Holder
As part of the node solution for the HESA, I want to have a complete stand-alone package that includes a holder for the battery.  Also, I want to have 6v battery for the power supply since the Moteino needs at least a 3.2v input.

I have a 6v Lithium battery from Energizer.  I made a case for it but it is not ideal and not reproducible.  I found a Thing on Thingiverse to 3D print a holder for a Panasonic Lithium battery.

I printed the holder on the Cube Pro Trio 3D printer at the Makerspace.  The printer is very easy to use.  I was hoping it would be more reliable than the other printers we have but my first print failed.  I printed the holder in draft mode and it finished but the corners pealed up a bit.  Also, I found out that the Panasonic battery is longer than the Energizer and the terminals are in different spots.  So, I won't be able to use the holder and will have to find a different solution.

On the plus side, I learned how to use the CubePro Trio printer.  This is a professional-grade 3D printer that should make high quality prints.

ACK Testing
The last time I played around with the Moteino, the node was sending data to the host but the node was never getting an ACK back from the host.  I tested combinations of all three Moteinos with the same results.  I posted something on the Moteino forum and the response was that it should work. I finally got back to testing the ACK feature and was able to get it working -- sort-of.

I think the original problem is that I did not have the antennas attached to the Moteinos.  I soldered antennas onto all three Moteinos, and they now send and receive ACKs properly.

However, this gets more and more unreliable as the distance between the node and host increases.  When the distance is less than 20 feet, the ACKs are almost always received.  At 50 feet, ACKs are received about 50% of the time.  If I go over 100 yards away, almost no ACKs are received.

I posted a message on the Moteino forum to see what the problem is.  However, I also decided that I don't care about ACKs for the HESA.  For now, I can continue without this feature.

Finally, I created a sketch for a node on the HESA network.  The sketch will read and transmit the following information to the host:
  • Notification that it is on-line on bootup
  • Battery voltage
  • Temperature from the RF69 chip or from a DHT sensor if installed.
  • Humidity from DHT sensor if installed
The code is flexible enough to request ACKs or not when sending data.  The device will also sleep between sends.  This should make the battery last longer.

The next step is to connect the host to a Raspberry Pi and have the Pi read the serial inputs.  Then, I need design a circuit board and complete solution for the node.  Finally, I need to make the HESA python program on the RPi send node data to the SQL database.