• Stars
    star
    416
  • Rank 104,068 (Top 3 %)
  • Language
    JavaScript
  • Created almost 12 years ago
  • Updated almost 5 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Add a UI to your standalone Raspberry Pi project using your Android phone

piui

Add a UI to your standalone Raspberry Pi project using your Android or iOS phone

Demo

Watch Demo Video

Demo Video Screengrab

Install PiUi

pip install piui

Setup Instructions (to prepare your Raspberry Pi)

The easy way (using a pre-prepared SD card image)

Download the piui_plus_examples.zip file from github.com/dps/piui-sdcards. Unzip it and you'll find a 4Gb sd card image named piui_plus_examples.img. Write it to an SD card by following the usual Raspberry Pi instructions. At present, this image is based on Occidentalis 0.2.

Assuming you have the same wifi adapter I do, this will work out of the box. If not, read the Pi-Point docs to configure for your own hardware.

On first boot, you can sync the latest piui source with:

cd piui
git pull origin

and start the demo app with:

python piui_demo.py

The do-it-yourself way

Start with the latest release of Raspbian or (better as it's ready for hardware projects) Occidentalis.

Follow the Pi-Point documentation to turn your Pi into a wifi access point. Note that if you use the Adafruit wifi adapter, these instructions do not work in full as the nl80211 driver does not support that device (which uses a Realtek chipset). This blog post explains how to make it work - thanks Paul!

Add an entry to /etc/hosts mapping the DNS name piui to the address you configured for the Pi in the step above. Assuming it's 192.168.1.1, then you should add the following to /etc/hosts

192.168.1.1     piui

Install nginx - nginx is an HTTP server and reverse proxy, we use it to multiplex requests to your app and the piui-supervisor.

sudo apt-get install nginx

Configure nginx using the config file in the PiUi github repo - copy this to /etc/nginx/nginx.conf and restart nginx.

sudo /etc/init.d/nginx restart

Get the piui source code from github

cd /home/pi
git clone https://github.com/dps/piui.git

Arrange for the piui-supervisor to run on boot.

sudo cp /home/pi/piui/supervisor/piui-supervisor /etc/init.d
sudo update-rc.d piui-supervisor defaults

Done! Run the demo app:

cd piui
python piui_demo.py

Connect your phone to the wifi AP and navigate to 'http://piui/'.

Known limitations / work in progress

  • only works for one concurrently connected phone right now
  • upon reconnection, all historical updates to page elements are made in sequence - should collapse updates to the same element

Copyright and License (BSD 2-clause)

Copyright (c) 2013, David Singleton All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

More Repositories

1

nnrccar

nnrccar
C++
234
star
2

remarkable-keywriter

QML
183
star
3

rust-raytracer

๐Ÿ”ญ A simple ray tracer in Rust ๐Ÿฆ€
Rust
180
star
4

remarkable-wikipedia

QML
142
star
5

go-xml-parse

Streaming XML parser example in go
Go
126
star
6

rpi-timelapse

Timelapse Camera Controller for Raspberry Pi
Python
104
star
7

montesheet

JavaScript
13
star
8

piui-sdcards

sdcard images for piui
8
star
9

unhumanize

a simple python library to convert humanized time intervals (e.g. 'an hour ago') into timedeltas
7
star
10

northbelt

A belt that buzzes north
Arduino
6
star
11

SwiftUI-Recipes

๐Ÿฝ A SwiftUI demo app showing how to fetch data from the server to populate list views, navigate to detailed results and wire in a search field.
Swift
6
star
12

piui-timelapse

PiUi version of rpi-timelapse
Python
4
star
13

spreadsheet

JavaScript
4
star
14

shortest-sudoku

A collection of tiny Sudoku solvers
Java
4
star
15

android-vector-climacons

Android vector drawable resources for @adamwhitcroft 's Climacons
3
star
16

aoc

Python
3
star
17

recipes

recipes
Python
2
star
18

wear-exchangerates

Exchange Rates complication data provider for Android Wear 2.0
Java
2
star
19

laserUp

๐Ÿ” Create 3D relief map slices for Glowforge. ๐ŸŒŽGenerate input files at
Python
2
star
20

go-zim

Pure Go reader for the ZIM file format
Go
2
star
21

wixel

Wixel Apps
C
2
star
22

lasercut

A collection of laser cutter designs. Most made for my kids.
Python
1
star
23

wordgrid

1
star
24

multihttp

A multiplexing http notifier in golang
Go
1
star
25

webalert

Python
1
star
26

remarkable-ambient-launcher

A launcher for reMarkable
QMake
1
star
27

gcal-cruncher

Crunches .ics files exported from Google calendar to show you where your time has been spent
Ruby
1
star
28

dial.fyi.complications

dial.fyi complications
Java
1
star
29

hotdog

HTML
1
star
30

sundial

A sundial laser-cutter template generator
Python
1
star
31

dial.fyi

Java
1
star
32

simplescheduler

A simple task scheduler using redis for python
Python
1
star