Beer Flowmeter


This project started when a local entrepreneur needed a proof of concept prototype for his own business intelligence project. Our team accepted the challenge and, in their freetime, they managed to have the first prototype in a week. The goal is, in short, gather beer data consumption for business intelligence engineers, to answer questions like the following:

  • How much beer is served in an average day? ... in a good day? ... in a promotion day?
  • Which is the most popular beer format? ... the one you want to improve?
  • Which are the best time ranges for a promotional campaign? ... for specific beers?
  • What are the results of a specific campaign? ... of a new beer launch?
  • Beer flowmeter

This project proposes to install a flowmeter between the beer barrel and the tap. Each time a beer is served the information is sent to Altair SmartWorks. Then, all data is stored and pushed to external information systems to extract useful information by the smart Business Intelligence guys.

notice  From your beer tap to your dashboard. Over the air with Altair SmartWorks



This Project is composed by the following components:

  • Flowmeter
  • Pulse reader
  • Communication module
  • Altair SmartWorks platform
  • External Information System
  • Custom dashboard
  • Project schema



The flowmeter per-se and a core electronic device for reading pulses and sending data to Altair SmartWorks principally compose project’s hardware.
Flowmeter work is simple; it sends electronic pulses to the connected wire when a fluid passes through its internal blades. More fluid, more pulses. Some easy calibration to have a conversion constant from pulses to a volume unit (ml) and the work is done.

  • Flowmeter

Looking for an accurate pulse read while keeping it simple and accessible to DIYers the best choice was an Arduino board.
When pulses are read, collected information has to be sent to Altair SmartWorks. This task can be done via WiFi, Ethernet or GPRS. Wiring Ethernet next to the beer tap can be quite difficult and in some cases GPRS coverage is not guaranteed, so WiFi is the simplest solution.

Arduino can deal with communications tasks but while doing it pulse reads can be lost. Following the same simplicity and DIYer argument than before Raspberry Pi was the choice to deal with communication issues (WiFi config, retries, etc.).
Information collected can be as complex as wanted including more sensors, but in this case only time, volume and flowmeter ID data are sent securely to Altair SmartWorks.

  • Raspberry Pi board



Project’s software is distributed along the architecture, from Arduino’s and RPi’s code to external platforms passing by Altair SmartWorks configuration. Keeping it simple in each component, all parts are important.

Arduino’s code has a single goal, read pulses and send them to the Raspberry Pi. Then RPi handle reads, keep a log and send data to Altair SmartWorks.

Altair SmartWorks configuration:

  • Listeners: Data streams are interpreted by Altair SmartWorks to assess beer format (small, medium or large) and update format counters. Calibration is also done in Altair SmartWorks.
  • Triggers: They push data directly to external Information System
  • Different apikeys: Using a read-only apikey to export data via Altair SmartWorks REST API and keep data safe

External information system:
Business Intelligence analysts directly manage data pushed by Altair SmartWorks. Data push is made by POSTing queries to an external URL.

Custom dashboard:
The dashboard can be made in any web technology; it only has to talk to Altair SmartWorks via REST API. In this project, our simple dashboard is made with PHP and Javascript.

  • Dashboard screenshot