Giter VIP home page Giter VIP logo

berryio's Introduction

NOTE: Do not upgrade to version 2.0 unless you have Raspbian Stretch or newer!

BerryIO

  • Description: BerryIO is a web browser based control system for the RaspberryPi
  • Project Website: GitHub
  • License: GPL Version 3
  • Platform: Tested on Raspbian Stretch (2017-09-07 and newer) may work on others
  • Requirements: A Raspberry Pi running Raspbian and a web browser (Internet Explorer versions before 8 are not supported)

overview

Getting Started

Project Details

The long term aim of BerryIO is to enable developers to control the Raspberry Pi and its GPIO ports remotely from any device with a browser, without ever needing to connect a screen or keyboard to the Pi itself. The new API mode extends this further enabling mobile apps, etc to be produced and control BerryIO.

The way BerryIO works is once the Raspberry Pi has booted up (or if the connectivity changes) it automatically connects to the main wired or one of the predefined wireless networks and emails the owner with a web link. They can then click the link and open the control panel in a browser (with their username and password).

There is also a command line interface, so you can issue commands directly to it over SSH or in scripting should you wish to.

For those interested in the technical details it's mostly written in PHP which runs the back end for both the command line and the web browser interface (which is served with Apache). SPI control is written in C, the emailing is done with msmtp and the network can be managed by Raspians wpagui (although I hope to include functions in BerryIO to configure the network at some point).

Features

  • Full GPIO control including input/output mode switching and on off toggling.
  • Support for Raspberry Pi Zero, Model A, Model B revision 1 and 2 (including both 256MB and 512MB versions) and Model B+.
  • Ability to take photos and adjust camera settings (video coming soon).
  • SPI DAC control and ADC values display.
  • Control of HDD44780 or KS0066U compatible LCD's (and VFD's).
  • Realtime CPU information display, including temperature.
  • Realtime disk and memory usage information.
  • Network status view showing connectivity, signal strength, etc.
  • Command line interface which offers the same level of control as the web browser interface.
  • Email notification with a link to the BerryIO web browser interface.
  • Integrated upgrade system.
  • API system for developing mobile apps.

License Information

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Credits

SPI module based on code from the Gertboard test suite: Copyright (C) Gert Jan van Loo & Myra VanInwegen 2012

berryio's People

Contributors

adambutler avatar neonhorizon avatar truefurby avatar wdjc100 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

berryio's Issues

issues with latest raspistill/raspivid

so with the new version of raspistill/vid the -t option has changed.
a -t 0 will continuously take pictures/video whereas your code is assuming
this to mean dont wait at all. Using -t 1 for a 1 millisecond wait is good enough
it seems.

also when calling setup_camera the part that checks to see if the raspivid is
working (with -t 1) returns something other then your python is expecting.
So it always thinks it fails. I just commented out the checks and all
is well.

with "sudo berryio email_ip" comes errors! anyone can help me?

i just follow the "INSTALLATION INSTRUCTIONS " to do the berryio function ,when it comes to the last step ,i input "sudo berryio email_ip" system comes errors like this:
pi@raspberrypi ~ $ sudo berryio email_ip
msmtp: authentication failed (method PLAIN)
msmtp: server message: 535-5.7.8 Username and Password not accepted. Learn more at
msmtp: server message: 535 5.7.8 http://support.google.com/mail/bin/answer.py?answer=14257 q4sm50897126pba.12 - gsmtp
msmtp: could not send mail (account default from /etc/msmtprc)
ERROR: Email could not be sent, please check your logs

is there anyone can help me? thanks!

Instalation error

I got this error when i try to install berryio

Invalid command 'php_admin_value', perhaps misspelled or defined by a module not included in the server configuration ...fail!

Searching for help i found out that i need to install additional package libapache2-mod-php5 for this to work. When i instaled it, i sucessfuly instaled berryio

Web GPIO Status interface doesn't respond

Hi, I have installed berryio on a Raspberry Pi B+, latest Raspbian, fully updated. I followed the berryio install instructions. I have a Slice of Relay board installed. I can activate the relays using the command line:
sudo berryio gpio_set_mode 24 out; sudo berryio gpio_set_value 24 1; sudo berryio gpio_set_value 24 0
but when I access the web page I can get no response from the GPIO Status GUI elements. Although I get an indication that 'Not In Use', 'In' and 'Out' are clickable, when I click them nothing happens.
I have looked at the /etc/berryio/gpio.php but I can't see where to edit the In/Out status. When I use the gpio_set_mode command nothing seems to be saved; I have to repeat the command after a reboot.
I have javascript enabled in browser. The rest of the graphic elements (e.g. 'System') seem to work OK. Can you give me an idea what I need to do to get the GPIO Status GUI to work?
Thanks for this very useful programme.
Thanks, Ken

GPIO permission denied from web

Another error, now with GPIO from web.

[Wed Jul 24 17:18:45 2013] [error] [client 192.168.1.102] PHP Warning: file_get_contents(/sys/class/gpio/gpio8/direction): failed to open stream: Permission denied in /usr/share/berryio/includes/functions/gpio.php on line 139, referer: http://192.168.1.106:81/welcome

I'm accessing from another PC on same network (192.168.1.102 is that pc) and raspbery have different IP on same network (106)

Uninstall script

I need to rip down a raspberry pi and remove Berryio without having to do a clean install. The usual

sudo apt-get uninstall berryio

obviously doesn't work, and Debian and I aren't that familiar to be able to figure out the uninstall process. I like having the pi's email me on wakeup, but I have some conflicts to resolve, so would like to have an uninstall process. thanks

A CONTRIBUTE.md file

It's awesome that the repository has a file that sets the guidelines for contributing (CONTRIBUTING_CODE.README.txt).

However, since there is a movement which tries to standardize a CONTRIBUTE.MD file and GitHub also treats it well I believe it would make sense to move this file to at least CONTRIBUTING and also consider whether it would not make sense to convert that file to Markdown for better readability and nicer output on GitHub.

No momentary-on (pulse output) support for GPIO output pins.

I'm trying to add momentary-on (pulse output) support for GPIO pins.
This is to replace a function that was available in WebIOPi.
I use to to momentarily close a relay that simulates pressing a button. One click should send a momentary pulse.

So, I'm trying to tweak the images and code. I want to change the GPIO mode switches to be four-way switches instead of three-way switches, to include a momentary-out option.
Anybody have the source (Photoshop/Gimp?) images for those in usr\share\berryio\www\images\gpio\mode ?
out

Or, is there a better way to do this?

Installer bug

There was a mistake in the install script in version 1.5.1 which meant it neglected to create the empty log file directories. This caused a problem when starting Apache and possibly msmtp (used for emails).

I have just fixed this, apologies if you tried to install BerryIO during the first week of January and it failed, please follow the instructions in here and try the installation again:
https://github.com/NeonHorizon/berryio/blob/master/INSTALL.README.txt

If you were upgrading this bug will not have affected you.

Working on php 7.0 and Ubuntu Mate 16.04!

It` seems to be working with php7.0 and Ubuntu Mate 16.04(.02 in my case). Just had to change the paths and the names of the packages into the install script. (Sorry, the code tag isn't working with this ahah) [EDIT] I've fixed the Markdown :)

apt-get -y install ethtool wireless-tools msmtp apache2 php libapache2-mod-php pwauth git || { echo -e "Install failed!" 1>&2; exit 1; }

echo -e "\nRemoving any old copies of BerryIO...."
rm -fr /usr/share/berryio || { echo -e "Install failed!" 1>&2; exit 1; }

echo -e "\nRetrieving latest copy of BerryIO from GitHub...."
git clone https://github.com/NeonHorizon/berryio.git /usr/share/berryio/

echo -e "\nCopying in the default config...."
cp -R /usr/share/berryio/default_config/berryio /etc || { echo -e "Install failed!" 1>&2; exit 1; }
cp -R /usr/share/berryio/default_config/apache2 /etc || { echo -e "Install failed!" 1>&2; exit 1; }
cp /usr/share/berryio/default_config/php5/apache2/conf.d/* /etc/php/7.0/apache2/conf.d || { echo -e "Install failed!" 1>&2; exit 1; }
cp /usr/share/berryio/default_config/php5/cli/conf.d/* /etc/php/7.0/cli/conf.d || { echo -e "Install failed!" 1>&2; exit 1; }

I think you can simply adapt the script, put a switch to know on wich OS you are installing it, and it will work fine as expected. Anyway this could be a "wishlist" label.

Not working on Buster

After several good installs on stretch, I'm finding the Rpi4 doesn't want to work.

Trying to crete a new tile to execute a shell command

Hello,

I'm using BerryIO + the nicholas smartapp

I was able to duplicate the reboot tile which launches api_command/reboot

I replced it with another command api_commnd/sudo ps4-waker

But its not working...

Can you please help point out what should I do?>

Not working with new Raspbian and PHP 7.4 w/fix

Just to note that BerryIO isn't working with the new PHP 7.4. Per the fix noted for 7.3, you must now run the below and restart the Pi.

sudo cp /etc/php/7.0/apache2/conf.d/berryio.ini /etc/php/7.4/apache2/conf.d/berryio.ini

sudo cp /etc/php/7.0/apache2/conf.d/msmtp.ini /etc/php/7.4/apache2/conf.d/msmtp.ini

sudo cp /etc/php/7.0/cli/conf.d/berryio.ini /etc/php/7.4/cli/conf.d/berryio.ini

sudo cp /etc/php/7.0/cli/conf.d/msmtp.ini /etc/php/7.4/cli/conf.d/msmtp.ini

Why no php opening tags on any php files?

When i run "berryio" it just prints the file on the terminal... i examine the file and it looks to be a php file with no <?php tag at the beggining... only <?

My understanding of php is that if there is no <?php tag it will interpret at html and thus just print the file. I examined more of the .php files and non of them have the opening tag. Please explain, im sure I am missing something.

berryio

i am trying to install berryio on my pi3. have done sudo apt-get update and sudo apt-get upgrade, installed apache2, but when i try and run the berryio_install.sh as per the installation instructions in the INSTALL.README.txt
I get the following output in terminal.

pi@TankPi:~ $ chmod +x berryio_install.sh
pi@TankPi:~ $ sudo ./berryio_install.sh

BerryIO Installer

Installing the prerequisites....
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

Package libapache2-mod-php5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'php5' has no installation candidate
E: Package 'libapache2-mod-php5' has no installation candidate
Install failed!

Can i get some help please

Web GPIO Status interface doesn't respond

Hi,
after installing Berryio on RPI B and 2B (Jessie, with kernel 4.1.13 from November 2015)
GPIO access via web interface works fine. Second Step, applying camera_setup.
Camera works fine but GPIO Access via Web is no longer possible. No reaction, no change on
web site.

With user pi on console I can modify gpio ports with berryio commands.

Seems to be a grant problem for www-data after doing "sudo berryio camera_setup".
www-data is still member of gpio.

Every time I re-run installing berryio and camera-setup, same result.

Any idea?

Thanks
Ludger

CONTRIBUTING_CODE.README.txt is not correct

The CONTRIBUTING_CODE.README is missing some steps as I didn't realise that 3rd parties have to set up their own separate repo and a pull request rather than simply push a branch into the main repo. wdjc100 has kindly offered to work with me on this to correct it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.