[Version 2 Release] RaspberryPints - Digital Taplist Solution

Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum

Help Support Homebrew Talk - Beer, Wine, Mead, & Cider Brewing Discussion Forum:

This site may earn a commission from merchant affiliate links, including eBay, Amazon, and others.
Just setting up rpints on a raspberry pi. Going through the step by step I get the following error when trying to install rpints. Any help would be appreciated.
MVIMG_20200811_210948.jpg
 
Super NOOB question, I have a Pi 4 on the way. Do the instructions on Raspberry Pints website still apply/work for the Buster OS?
 
following error when trying to install rpints
I will retry the nginx installation on my test box, if there is a specific reason you are using nginx then I recommend trying to remove it then installing with apache.

to remove
sudo apt-get remove nginx
 
Do the instructions on Raspberry Pints website still apply/work for the Buster OS?
I recommend just running this from the terminal
curl -L install.rpints.com | sudo bash

that will run an install script that will guide you through the process and do all the installation for you. The original Rpints code wont work on Buster because php depreciated the calls used to access the database. during installation you will be prompted what version to install: mine (more features then the original), Tobor's (original that works on new Raspbian) or the original (wont work)
 
No foam issues here using a six-pack of SF800 meters...

Cheers!
Quick question. I am building my pi/arduino as I write this. I have a 6 pack of the SF800 flow meters as well. My question is how did you connect them up? all 6 to one arduino, or 1 arduino per meter? I am struggling through this. Also, I am a complete noob to this, I have 0 programming ability. I can usually figure stuff out, but I don't want to waste any more money/time then I have to! Thanks!
 
connect them up? all 6 to one arduino
All the flow meters go to one Arduino then the Arduino gets configured with the pins the meters are connected to (original RPints you had to modify the Arduino sketch, in my version you can configure it through the tap list admin page)

Wire all the positive wires together and connect to the +5v pin on the Arduino, wire all the negative wires together and connect to the ground pin on the Arduino. the pulse wire is what gets connected to the numbered pins on the Arduino.
 
I will retry the nginx installation on my test box, if there is a specific reason you are using nginx then I recommend trying to remove it then installing with apache.

to remove
sudo apt-get remove nginx
No preference, and honestly I don’t know enough about these things to have a preference. If you say it works with Apache then I’ll try that when I get home. I’ll uninstall nginx like you said above and then follow steps to install Apache and give rpints a go again. I’m super new to web hosting and raspberry pi so I’m following tutorials online for all this.
 
I will retry the nginx installation on my test box, if there is a specific reason you are using nginx then I recommend trying to remove it then installing with apache.

to remove
sudo apt-get remove nginx
So I tried uninstalling nginx and it gave me an error. I then tried http://localhost and it worked. I tried to install Apache2 and it was already installed. So I ran the rpints script again and it gave me the option of Apache or nginx, so I chose Apache and this is what I get. I'm lost. May need to wipe the disk and reinstall a fresh copy of raspberry pi and try again.
 

Attachments

  • 15972213438686998385625856596380.jpg
    15972213438686998385625856596380.jpg
    1.6 MB · Views: 14
So I tried uninstalling nginx and it gave me an error. I then tried http://localhost and it worked. I tried to install Apache2 and it was already installed. So I ran the rpints script again and it gave me the option of Apache or nginx, so I chose Apache and this is what I get. I'm lost. May need to wipe the disk and reinstall a fresh copy of raspberry pi and try again.
Update. I tried it again and it worked, at least I think it did. it went through everything and then it rebooted. Now it loads to the Apache2 Debian default page. Not sure what I'm supposed to do now.
 
I tried it again and it worked, at least I think it did
Did you get a prompt like "Where do you want to install RaspberryPints"?

it sounds like it installed all the programs needed but never actually got Rpints installed
 
All the flow meters go to one Arduino then the Arduino gets configured with the pins the meters are connected to (original RPints you had to modify the Arduino sketch, in my version you can configure it through the tap list admin page)

Wire all the positive wires together and connect to the +5v pin on the Arduino, wire all the negative wires together and connect to the ground pin on the Arduino. the pulse wire is what gets connected to the numbered pins on the Arduino.
Thank you! Next question. With all of the positive and negatives connected together (I will have 6 of each) do you put an individual 2200 Ohm resistor for each flow meter? (looking at the Swiss Flow meter diagram they have a 2200 Ohm resistor for 5V)?
 
- If you run an SF800 on 5V you do not need the current-limiting resistor RS.

- For the RL resistor, the R'Pints Arduino code enables internal pull-up elements for each input specified (ie: the list of pins with meter data lines connected), and there have been folks that have relied on those, apparently successfully. That said, given my installation has roughly 15 feet of wire running through multiple connectors I was not comfortable relying on what could be as high as 50K ohms, so I use 2K ohm pull-ups, one per meter, pulled to the 5V rail.



sf800_-_hook_up.jpg


Cheers!
 
I also use a 2k2 pull-up resistor between the +5V supply from the Arduino and the pulse pin of each flow meter. The pulse pin is then connected to the digital pins on my Arduino.

I also connected the base of a 2N2222 transistor via a 22k resistor to each pulse pin. A LED is connected via a 120 ohm resistor to the transistor's collector and the emitter is connected to ground. The LEDs go on an off as the SF800s turn, which gives me a visual indication as well. The pulses are too fast to see the LEDs flash when you pour, they just go on and off depending on whether the SF800 ends the pour high or low.

I've attached an annotated picture of the breadboard I use for the connections.

IMG_0178.jpeg
 
I like that :mug:
fwiw, I added a few bits to the raspberrypints.ino file (the "classic" version) sketch that lights up the LED attached to Uno GPIO 13 when a pour has been committed...

Cheers!
 
Did you get a prompt like "Where do you want to install RaspberryPints"?

it sounds like it installed all the programs needed but never actually got Rpints installed
I think you're right. I'm trying again and now it's asking me where to install it. Not sure what to put. It just says /var/www/HTML right now.
 
I also use a 2k2 pull-up resistor between the +5V supply from the Arduino and the pulse pin of each flow meter. The pulse pin is then connected to the digital pins on my Arduino.

I also connected the base of a 2N2222 transistor via a 22k resistor to each pulse pin. A LED is connected via a 120 ohm resistor to the transistor's collector and the emitter is connected to ground. The LEDs go on an off as the SF800s turn, which gives me a visual indication as well. The pulses are too fast to see the LEDs flash when you pour, they just go on and off depending on whether the SF800 ends the pour high or low.

I've attached an annotated picture of the breadboard I use for the connections.

View attachment 693626
Thanks, this helps a lot! Just out of curiosity, if the LEDs blink too fast to actually see the pour, do they show the pour happening or only end state of the meter?
 
Just out of curiosity, if the LEDs blink too fast to actually see the pour, do they show the pour happening or only end state of the meter?

You really only see the end state of the pour. My SF800s average 5800 pulses per liter. At my serving pressure a liter pours in about 20 seconds, so during a pour they are running at 290 flashes per second, which is way to fast to see. Still, I find it useful to have an analog indicator that things are working.

One other thing I added was a set up DIP switches that can turn the SF800 pulse pin connection to the Arduino on and off. These allow me to disconnect the SF800 at the start of a keg when I'm flushing StarSan out of the line. The obvious alternative is just to wait until the beer is coming out of the tap before actually putting it on tap in RPints. I just had the DIP switches lying around.
 
that is the default website folder and unless you have a reason to put it elsewhere put it there.
Thanks a ton for your help! Looks like something must of went wrong the first time because all I did is try installing it again and it worked! Now I just have to figure out how to edit all of this.
 

Attachments

  • 15973540822753510639855320637498.jpg
    15973540822753510639855320637498.jpg
    1.7 MB · Views: 22
Once the tap isn't assigned a beer, I go ahead a clean...then have to go into the DB and delete those pours....maybe this is a feature request? A way to clean lines where the recorded pulses aren't included in the pour history, beer statistics, tap statistics, etc. (or maybe a flowmon stop to clean lines button, and a flowmon start in the GUI?)
 
Anyone have issues with Raspberry pints crashing? Everytime I go to add a new beer it crashes. Not sure what is going on.
 
May not apply to modern forks, but these are what I use...
Code:
alias flowstart='sudo /etc/init.d/flowmon start'
alias flowstat='sudo /etc/init.d/flowmon status'
alias flowstop='sudo /etc/init.d/flowmon stop'

I imagine it would be not very hard to put a toggle in the gui to enable/disable the flow monitor service...

Cheers!
 
I may need a self deprecating, you can do this Garz Button....kinda like the Easy Button, but Easier.

Not to ignore you @sigel619, but no, that's not normal behavior. /var/log/apache2/error.log ....the man that can help has arrived!
 
I may need a self deprecating, you can do this Garz Button....kinda like the Easy Button, but Easier.

Not to ignore you @sigel619, but no, that's not normal behavior. /var/log/apache2/error.log ....the man that can help has arrived!
Ha! Thanks. I do not feel ignored. However, I think I fixed it myself. Lots of Google searches made me try switching the HDMI cable out and it hasn't crashed since. So it leads me to believe it was something with the cable.
 
Once the tap isn't assigned a beer, I go ahead a clean...then have to go into the DB and delete those pours....maybe this is a feature request? A way to clean lines where the recorded pulses aren't included in the pour history, beer statistics, tap statistics, etc. (or maybe a flowmon stop to clean lines button, and a flowmon start in the GUI?)
I found if you go to the taps table and delete the old tap row that is no longer active it'll cascade and remove all the entries in the pours table. You obviously lose all the history of your taps and pours except those that are active but to me it just makes it easier to look at the pours table in case something goes awry.
 
I found if you go to the taps table and delete the old tap row that is no longer active it'll cascade and remove all the entries in the pours table. You obviously lose all the history of your taps and pours except those that are active but to me it just makes it easier to look at the pours table in case something goes awry.

So, the logic is querying the database and taking first to last. Removing a row, say row 3, bumps up the remaining rows.

In my experience, it's always best, and most perferred, to resolve an issue/error, instead of kludging things.
 
Just a gentle reminder for all you users - RUN A BACKUP of your card occasionally. A few weeks ago I was having issue with one of my taps not registering and after some debugging thought I had it figured out, soldered the connections and retested and it failed again. Frustrated I rolled up the line and put it in the keezer to avoid blowing a fuse. However in doing that I must have crossed something and smelled something - I touched the Pi and my memory card was HOT to the touch. Sure enough I somehow fried it. Luckily I had a backup from about year ago - reloaded a new card, put it in, crossed my fingers and everything came back up. I was cringing at the thought of redoing the install on my 3-4 year old setup with new OS, software, hardware etc - luckily I avoided all of that with a backup. BACKUP BACKUP BACKUP
 
Just a gentle reminder for all you users - RUN A BACKUP of your card occasionally. A few weeks ago I was having issue with one of my taps not registering and after some debugging thought I had it figured out, soldered the connections and retested and it failed again. Frustrated I rolled up the line and put it in the keezer to avoid blowing a fuse. However in doing that I must have crossed something and smelled something - I touched the Pi and my memory card was HOT to the touch. Sure enough I somehow fried it. Luckily I had a backup from about year ago - reloaded a new card, put it in, crossed my fingers and everything came back up. I was cringing at the thought of redoing the install on my 3-4 year old setup with new OS, software, hardware etc - luckily I avoided all of that with a backup. BACKUP BACKUP BACKUP

Absolutely! I detail the steps, in pain staking detail (reads worse than it actually takes to do), here (see the Clone microSD card.txt)

http://github.com/Tobor-8thMan/RaspberryPints
 
So, the logic is querying the database and taking first to last. Removing a row, say row 3, bumps up the remaining rows.

In my experience, it's always best, and most perferred, to resolve an issue/error, instead of kludging things.
The logic is querying the taps table by ACTIVE taps and ordering by tapNumber. Removing a row does absolutely nothing to the what is returned since its a non ACTIVE tap.

There is an ACTIVE column and a unique tap ID (not tapNumber) on the table. Once you kick the keg the ACTIVE flag is turned off and the data is never queried again. I would have just deleted the row when the keg is kicked which would have cascaded the delete to the pours table but to each their own. There is nothing Kludgy about this. With proper unique id management they've avoided any issues with removing a row in this table and its good DB design. I personally don't see the need to keep 1000s of records of pours from beers I had on tap 6 years ago - that's just DB bloat and makes queries run slower. Nothing wrong with keeping them there but you'll never see those records again.

If someone wants to clean up the pours table I was just offering a potentially faster (and maybe safer) option than accidently removing rows from active taps in the pours table and messing up the amount poured for active kegs.
 
Back
Top