Skip to content

lucansky/hexamon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Hexamon.io - modular wireless beehive weighting system

Beehive monitoring - solves data acquisition from load cells placed under the beehives, data transport to server and data visualization for user.

Architecture overview

Master

Master unit consist of a Raspberry Pi with a CAN shield with RJ12 connector. CAN shield is a board with SPI MCP2515 CAN controller and SN65HVD23x CAN transceiver.

Power management

The system is powered through a 18V solar panel, charging 12V battery. Enclosure with master unit has power management board for charging circuit with under-voltage protection, as well as 5V USB ports for output.

20W solar panel was selected for a prototype, due to it's ability to supply sufficient energy even during cloudy days for a Raspberry Pi.

Bus unit

Under each beehive, assuming that whole chain of beehives is no longer than 100m, is placed platform with load cells for measuring the weight and bus unit in an enclosure. First beehive in chain contains Master and Bus unit at once.

Bus unit has STM32F042F6P6 in an TSSOP20 package with CAN transceiver and two RJ12 connectors for daisy-chaining to other bus units, as well as two holders for HX711 breakout boards. Converters boards can be purchased through eBay or AliExpress.

Schematics & board design can be found in boards directory.

Weight acquisition

As an ADC with differential amplifier was selected chip HX711 integrated on a beakout board with all the necessary electronics around.

Hardware

Platform

Simple two-rail platform consists of three components:

  • Load cell Zemic L6E or equivalent
  • 2x Spacer
  • 50x50mm 45cm L profile with drilled holes to match load-cell

Middle bars may be optional, depending on the situation:

  • 2x Rectangle aluminium profile 25x15x3mm 25cm
  • 2x Rectangle aluminium profile 25x30x3mm 25cm These fit perfectly together. By drilling holes, pitch can be adjusted.

As the platform was not part of the project assignment, contact me in case of interest.

Load cells

During development, Zemic L6E were selected. For deployment, L6G are used.

Modularity

Several beehives can be chained together with a telephone cable with RJ12 jack through Bus unit under beehive, while master unit is sending captured data wirelessly to server through WiFi (3G/GSM modem option was tested and implemented, but is not further described, wvdial utility & whole ecosystem of linux drivers for modems make it diffucult for set-up).

Software

Master unit

Raspberry Pi 3 running Raspbian system, with an SPI overlay, provides can0 network interface which can be easily interfaced through linux socket. Main program is written in Haskell and is basically flipping frames received on CAN bus to HTTP requests to webservers where the data are further processed.

Bus unit

STM32F042 MCU on board has 32kB of Flash memory and 6kB SRAM. Ivory language has been selected for generation of the C code, and Ivory framework as a hardware abstraction layer, message passing and RTOS interaction. Therefore whole project is 100% Haskell except the web. Firmware can be found HERE.

Web

Web interface provides charts for all sensors connected to the network as well as dashboard defined by user for aggregated statistics. Each setup requires separate instance of the web with database. Source code can be found HERE

Results

System is deployed on a few beehives, needs a bit more tweaking (grounding of the metal platform with beehives, as interference is generated during thunderstorm) and better cable management.

candump can be seed on monitor of the laptop of the deployment set. Battery is already charging from solar panel.

Future work

Due to over-engineered solution, next iteration will be with SIGFOX - one module per beehive (just load cell cable connected to small box, 2xAA battery, optionally DS18B20 temperature sensor). Currently waiting for a better signal coverage in Slovakia, which is the reason SIGFOX was not considered from the beginning.