• Stars
    star
    115
  • Rank 305,916 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created almost 5 years ago
  • Updated about 2 years ago

Reviews

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

Repository Details

Get a daily random inspirational quote delivered direct to your desk with Inkyshot. Build multiple Inkyshots and share the inspiration with your friends, family and loved ones ❤️

Inkyshot - a shot of inspiration to start the day

Get a daily random inspirational quote delivered direct to your desk with Inkyshot. Build multiple Inkyshots and share the inspiration with your friends, family and loved ones ❤️

Hardware required

Setup & Installation

Running this project is as simple as deploying it to a balenaCloud application. You can do it in just one click by using the button below:

You can also deploy in the traditional manner using the balena CLI and balena push command. For more information check out the docs.

Customization

Your fleet of Inkyshots can all be managed centrally via balenaCloud. Try any of the environment variables below to add some customization.

Update time

Inkyshot wants to deliver a shot of inspiration to start your day, and by default will do this at 9AM/0900 hours UTC. You can change the hour that the update will happen with the UPDATE_HOUR variable; set it anywhere from 0 to 23.

Timezone

In order for the update time to work correctly, you'll of course have to tell Inkyshot what timezone you'd like to use. Set the TZ environment variable to any IANA timezone, e.g. Europe/London, America/Los_Angeles, Asia/Taipei etc.

This timezone is also used for displaying the correct date when the environment variable MODE is set to weather.

Message override

Is there a special occasion in your family? Override the daily quote with a shot of celebration by setting the INKY_MESSAGE environment variable. Try Happy birthday Sister!, Congratulations on the new job, mate!, or Happy mother's day!.

Quote of the day category

The quote api has several quote categories available. Use the QOD_CATEGORY environment variable to change the type of quote retreived. Available categories: inspire (default), management, sports, life, funny, love, art, students.

Font

There are a few fonts built in that you can try. The default is AmaticSC, but you can use the FONT variable and set it to any of: FredokaOne, HankenGrotesk, Intuitive, SourceSerifPro, SourceSansPro, Caladea, Roboto and Grand9KPixel. You're welcome to PR more options into the project!

Font size

Inkyshot will automatically choose the largest font size for your message that still fits on the display. Too big? Override it with the FONT_SIZE variable and Inkyshot will use this as a maximum and continue to resize downwards if your message doesn't fit.

Test character

When figuring out what size font to use, Inkyshot (invisibly) fills the screen with the a character to see how many will fit. You can override this by setting the TEST_CHARACTER environment variable with any wider (w) or slimmer (i) characters of your choosing to adjust this behavior.

Rotation

If Inkyshot is living in a different house where things aren't necessarily always the same way up, use the ROTATE environment variable to rotate the output by 180 degrees.

Weather

To enable the weather display, set the environment variable MODE to weather.

Next, use either LATLONG (e.g. 39.9199,32.8543) or WEATHER_LOCATION (e.g. Ankara, Turkey) environment variables to define the location for weather information. Entering only an empty WEATHER_LOCATION is also sufficient and in this case Inkyshot will lookup the latitude and longitude information from device's IP address.

Set SCALE environment variable to F to display the temperature values in Fahrenheit scale. The default is Celcius scale.

Use the WEATHER_FONT variable to customize the font used in weather display mode.

Use the WEATHER_INVERT variable to invert the Image being displayed - WAVESHARE specific.

LOCALE variable allows to display the date of temperature reading in any language supported by the date library.

Finally, you can set the environment variable MODE to alternate for Inkyshot to rotate between quote and weather modes. You can put number of minutes in the ALTERNATE_FREQUENCY environment variable in order to configure Inkyshot to update periodically. By default, the first display is quote mode and you can instead chose weather by setting current_display tag to weather on the device.

Hostname

By default the device will be assigned the hostname inkyshot so it can be easily found on a network. This can be changed with the SET_HOSTNAME environment variable.

Wifi Connect

As from v1.2.0 this project includes wifi-connect which is a utility for dynamically setting the WiFi configuration on a Linux device via a captive portal. If your device is not connected to the internet, an access point will be created. You can refer to the docs here for customizing the different settings for wifi-connect.

Case

STL files are included within the assets folder of the project for you to 3D print your own case.

The case has two positions for a captive M3 nut, and can be fastened together with two countersunk 8mm M3 machine screws. If you're using design 2, the screws you'll need are something like this.

A position is open in the rear of the case for the use of a micro USB PCB socket, allowing for direct connection of power to the back of a Raspberry Pi Zero.

Contributing & Commit structure

When submitting a pull request, please use the guidance outlined below.

Each commit message should consist of a body and a footer, structured in the following format:

<scope (optional)>: <subject (mandatory)>
--BLANK LINK--
(optional) <body>
--BLANK LINE--
(optional) Connects-to: #issue-number
(mandatory) Change-type: major | minor | patch
(optional) Signed-off-by: Foo Bar <[email protected]>

Credits

Quotes are delivered from the theysaidso.com They Said So® REST API.

Location information based on IP address is retrieved from ipinfo.io.

We use Norwegian Meteorological Institute's weather API to get the weather forecast of the day. Weather symbols are customized from yr.no's repository.

More Repositories

1

balena-dash

Build a Raspberry Pi based desktop dashboard for stats, photos, videos and more!
Shell
431
star
2

balena-sense

Take readings from a BME680 or similar sensor on a Raspberry Pi, store with InfluxDB and view with Grafana
Shell
284
star
3

wifi-repeater

Easily create a WiFi Access Point or WiFi repeater with balenaOS
TypeScript
189
star
4

balena-cam

Network Camera with Raspberry Pi and WebRTC. Tutorial:
JavaScript
174
star
5

rosetta-at-home

EJS
80
star
6

balena-node-red

a node-red application with balena-supervisor support, can be managed remotely via balena publicURL
JavaScript
60
star
7

audio

Audio building block for balenaOS, based on pulseaudio.
Shell
31
star
8

bluetooth

Optimized bluetooth agent for balenaOS. Based on BlueZ 5.0.
Python
23
star
9

dashboard

Grafana dashboard block with auto-visualization of InfluxDB databases to get your data visualized instantly!
Python
23
star
10

connector

Auto-configured data connector block based on Telegraf
Python
15
star
11

xserver

A simple X11 server block
Shell
15
star
12

sensor

Auto-detects connected i2c sensors and published data on HTTP or MQTT.
Python
14
star
13

fbcp

fbcp driver for SPI based displays for Raspberry Pis via fbcp-ili9341
Dockerfile
14
star
14

multiroom

Set up multiroom audio for your fleet of devices. Uses the Snapcast audio player.
Shell
9
star
15

autohupr

Automatically keep your balenaOS host release up-to-date with this block!
TypeScript
8
star
16

plate-recognizer

Using balena to easily deploy Plate Recognizer to one or more Raspberry Pi 4 devices.
Shell
7
star
17

log2screen

Shell
7
star
18

project-template

Project template for new Balena projects
Dockerfile
7
star
19

dbus

Shell
6
star
20

pulse

A block for counting pulses on a Raspberry Pi GPIO pin.
Python
4
star
21

video-capture

Provide an RTSP stream for a connected video source.
C
3
star
22

browsercontrol

HTML
3
star
23

logwatcher

TypeScript
3
star
24

balena-openvino

experiments aimed at creating an openvino balena block
C
1
star
25

lockr-block

Create or remove application update locks with the return code of any command.
TypeScript
1
star