Git Product home page Git Product logo

sensehat-startup-ip's Introduction

sensehat-startup-ip

A script to automatically print out a Raspberry Pi's IP address on a connected SenseHAT when the device boots up.

Behavior

graph TD
  boot("System boot")
  wait("Wait for IP\nShow 'no connection' icon")
  stop("Give up :(")
  show("Scroll IP address")
  user("User detected\nDormant")
  quiet("Quiet")
  
  boot --> wait
  wait -. "Timeout (3min)" .-> stop
  wait -- "IP assigned" --> show
  show == "SSH connected" ==> user
  show == "HDMI connected" ==> user
  user -- "Disconnected" --> show
  show -. "Timeout (3min)" .-> quiet
  show == "Joystick" ==> quiet
  quiet == "Joystick" ==> show
Loading

In the "dormant" state, nothing will be shown until all indicators of user presence are gone.

In the "quiet" state, a joystick middle-click event will reset the 3-minute timeout on the IP address scrolling across the screen. Any other joystick event will just show the IP once.

Installation

As root:

  1. Move boot_sense_ip.py into your Pi's /etc/ directory (do not set the executable bit on it)
  2. Edit /etc/rc.local to include this line: /usr/bin/env python3 /etc/boot_sense_ip.py &

Testing + Debugging

If you need to kill the process that started at boot, use ps aux | grep python to find the offending process, usually running as root.

You can also run this script manually like any normal python script. There are a handful of command line flags useful for testing and debugging without forcing a reboot, run with -h to get a usage message.

Optional improvements to your rc.local file:

  1. Have it log output to a file: exec 1>/tmp/rc.local.log.$$ 2>&1 (print with tail /tmp/rc.local.log.*)
  2. Print the background job's ID after it's spawned: jobs -p

sensehat-startup-ip's People

Contributors

hunterknepshield avatar

Watchers

 avatar

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.