Giter Site home page Giter Site logo

lovebootcaptain / weatherpi_tft Goto Github PK

View Code? Open in Web Editor NEW
78.0 11.0 22.0 8.99 MB

a weather display for a raspberry pi and a TFT display written in python3 and pygame

License: Other

Python 86.84% Shell 13.16%
ili9341 tft-display python raspberry-pi adafruit weather-display weather-icons adafruit-tft raspberry pimoroni

weatherpi_tft's Introduction

WeatherPi_TFT

Working on @pimoroni HyperPixel4 Display and a Raspberry Pi 3 B+ Hardware

Working on @HWHardsoft AZ-Touch-Pi0-Weather with ili9341 Display and a Raspberry Pi Zero W Hardware

so it all began

Hardware

a weather display for a raspberry pi and a adafruit (featherwing) TFT ili9341 display

UPDATE

WeatherPiTFT now runs on every display size... from the smallest 128x128, 128x160, 240x320, 320x480, 480x640, 480x720, 480x800 (pimoroni hyperpixel4 or official Raspberry Pi 7" Touchscreen Display), 720x720 (pimoroni hyperpixel4 square) and above. WeatherPiTFT will always be shown in portrait mode but it also works on a landscape configured display (but still in 3x4 centred on your display). The images have a size of 1000x1000px so it should work even on HD monitors without lost of weather image quality.

written with love in python3.7

WeatherPi_TFT WeatherPi_TFT

comes with 2 themes (default and darcula styled)

OLD Pics before AA

WeatherPi_TFT

all available weather icons in 2 sizes

thx @erikflowers for his awesome weather-icons

I colored them and put a little glitter on it :)

Weather Icons

icons for moonphases

moon phase rendering: credits to @miyaichi for his awesome fork

Hardware and wiring

i wrote this app on a mac with PyCharm and tested it quite a while. since it uses only standard python3 modules and libraries it should work on nearly everything that can run python3 and pygame.

PyCharm IDE by intelliJ jetbrains

this tutorial is basically for running it on a raspberry pi (zero, 1, 2, 3) and a TFT display which matches up with chips like the ones from adafruit. as long as it uses standard spi it should work with the new dtoverlaymodule in the latest jessie versions of raspbian... i think there is no need for a custom kernel. it's just a little bit configuration.

i tested it with following TFT's:

no configuration needed for:

  • official raspberry pi 7" display
  • any HDMI display
  • skip all the TFT setup parts

wiring

wiring

  • this should explain how to wire up your display
SDO (MISO) TFT Data Out SPI_MISO    = GPIO09
SDI (MOSI) TFT Data In  SPI_MOSI    = GPIO10
SCK TFT Clock           SPI_CLK     = GPIO11

CS TFT Chip Select      SPI_CE0_N   = GPIO08
D/C TFT Data / Command              = GPIO24

RESET Reset                         = GPIO23
 
GND Ground                          = GND
VCC 3V3 supply                      = +3V3 or 5V
  • optional if you like to use the included PiButtons script
BUTTON 1    used for restart app    = GPIO19
BUTTON 2    used for shutdown pi    = GPIO26
  • give you the option to put some function on a hardware button (like restart the WeatherPiTFT service, shutdown/reboot your Pi, change display brightness, etc.)
  • feel free to add your own functions in PiButtons.py

buy complete hardware kit

You can also buy a complete set and build it yourself from my friend Hartmut over at his shop AZ Touch PI0 Kit

BUY HERE

Setup your Pi

install jessie to a sd card and update

  • get the latest NOOBS installer
https://www.raspberrypi.org/downloads/noobs/

i used NOOBS v2.1.0 which was the latest version for now

setup the SD card

follow the instructions from raspberrypi.org to setup your sd card and operating system

the first boot

finish your setup by following this guide

enable SPI

enable SPI in raspi-config - Interfacing Options

connect to your WiFi

to connect to a wifi network follow this guide

update all tools

  • when your connected to your wifi open up a terminal and type:
sudo apt-get update -y && sudo apt-get upgrade -y

set up the TFT

for ili9341 displays from adafruit

for other displays like this you may have to build your own kernel module or find it from your seller.

  • in /boot/config.txt, add in the following at the bottom
# TFT display and touch panel
dtoverlay=rpi-display
dtparam=rotate=0
  • change /boot/cmdline.txt to add the following to the end of the existing line
fbcon=map:10 fbcon=font:VGA8x8 logo.nologo

for Pimoroni Hyperpixel4

just change "FRAMEBUFFER": "/dev/fb1" to "FRAMEBUFFER": "/dev/fb0" later in your config file

you can also change "FPS" to 60 and "AA" to true for mx quality and frames per second. but 30 is more than enough.

it's just needed for the particle simulation for precipitation types like rain and snow.

Everything from 15-30 fps should give you decent animations.

install and configure WeatherPi_TFT

git clone https://github.com/LoveBootCaptain/WeatherPi_TFT.git
cd WeatherPi_TFT

install the dependencies in python3

since the script has to be run by a root user you have to install the dependencies with sudo

sudo pip3 install -r requirements.txt

create a ram disk to protect your sd card

NEW PLEASE UPDATE

WeatherPiTFT will write a json file to your Pi after updating the weather data from the api provider.

this process will reduce writing to your sd card, cause we're writing it only to RAM.

ramdisk will only be used in production mode. means you have set your "ENV" to "Pi" which is default when you followed this guide.

you may also consider using great tooling for writing all logs to ram from @azlux: log2ram

sudo mkdir /mnt/ramdisk
sudo nano /etc/fstab

add the following line right at the end of the opened file

size=5M specifies the size of the reserved ram (5M is more than enough)

tmpfs /mnt/ramdisk tmpfs nodev,nosuid,size=5M 0 0

CTRL-O to save and CTRL-X to quit nano

finally mount the ram disk and reboot your Pi

sudo mount -a
sudo reboot

while your Pi reboots grep your API key ...

get an api key from weatherbit.io

add API key and other options to the config file

when your Pi has rebooted

create a new config-file

cd
cd WeatherPi_TFT
cp example.config.json config.json

edit the config.json file

nano config.json

configure your display options

  "DISPLAY": {
    "WIDTH": 240,
    "HEIGHT": 320,
    "FPS": 30,
    "AA": false,
    "ANIMATION": false,
    "FRAMEBUFFER": "/dev/fb1",
    "PWM": false,
    "SHOW_FPS": true,
    "SHOW_API_STATS": true,
    "MOUSE": true
  },
  • as long as you configure a 3:4 ratio the dashboard will be scaled
  • FPS is used for pygame internal ticks - 30 fps is more than enough to render clock transitions and precipitation animations smoothly
  • AA turns antialiasing on and off (leave it on a Pi Zero off, it is performance heavy on higher FPS)
  • ANIMATION enables the little particle simulation for precipitation, disable will show an image instead
  • set FRAMEBUFFER according to your display, some use fb0 (e.g. @pimoroni HyperPixel4) some fb1 (most ili9341 from @adafruit), for local development or HDMI displays set it to false
  • set PWM to your GPIO pin if your display support pwm brightness (HyperPixel supports GPIO 19 for pwm brightness) - may need some code adjustments on your side depending on your display (some are bright enough with pwm 25, some ore not) otherwise set it to false
  • SHOW_FPS show the current fps on the display
  • SHOW_API_STATS show how many API calls are left over (resets every midnight UTC)
  • MOUSE enable/disable mouse pointer - needed for local development, better leave it disabled

configure weatherbit.io settings

  • replace xxxxxxxxxxxxxxxxxxxxxxxxx in "WEATHERBIT_IO_KEY": "xxxxxxxxxxxxxxxxxxxxxxxxx" with your own API key
  • replace en in "WEATHERBIT_LANGUAGE": "en" with your preferred language
  • replace de in "WEATHERBIT_COUNTRY": "de" with your country
  • replace 10178 in "WEATHERBIT_POSTALCODE": 10178 with your zip code / postal code (this example-location zip code is from berlin city, germany)
  • for language-support, units, etc please refer to -> weatherbit API Docs

localise hardcoded strings and ISO settings

  "LOCALE": {
    "ISO": "en_GB",
    "RAIN_STR": "Rain",
    "SNOW_STR": "Snow",
    "PRECIP_STR": "Precipitation",
    "METRIC": true
  },
  • change "ISO" and "METRIC" according to your needs
  • "METRIC": true will get all weather data units as metric system, change to false if you prefer imperial styled units
    • °C will be °F and km/h will be `mph
    • will also change the request parameter untis for the api request (see weatherbit API Docs for more details)

timer options

  "TIMER": {
    "UPDATE": 420,
    "RELOAD": 30
  },
  • the UPDATE timer defines how often the API will be called in seconds - 7min will give you enough API calls over the day
  • RELOAD defines who often the information on the display will be updated

theme file and theme options

set your theme file [darcula.theme, light.theme or example.theme] in config.json

"THEME": "darcula.theme",
  • inside your THEME you can specify with json file with theming information -> an example for the default theme is in the file example.theme.json
  • you must also try the new darcula.theme.json which is an homage to jetBrains great darcula theme for their IDE's -> see screenshots below
    • you can change some basic theme information
    • change colors of status bar icons and the wind direction icon with the theme colors
      "RED" is used for errors in status bar icons and wind direction
      "BLUE" is used for sync and update in status bar icons and rain precip icon
      "GREEN" is used for everything fine in status bar icons
      
    • change every color of an image by adding a color (r, g, b) to the optional fillcolor parameter in the DrawImage class
    • change the time and date format according to your preferences
      • a good reference for strftime options can be found here Python strftime()
      • for 12h clock with am and pm support you can use "%I:%M:%S %p" instead of "%H:%M:%S" for a 24h clock in yourTheme.DATE_FORMAT.TIME
      • for imperial like date format just change "%A - %d. %b %Y" to "%A - %b %d %Y" in yourTheme.DATE_FORMAT.DATE
    • or create your own theme with your fonts and add it to your config/theme`

setup the services

sadly pygame doesn't like to work well with systemd... so it has to run as init.d service. maybe someone can help to solve this one time.

cd
cd WeatherPi_TFT
sudo cp WeatherPiTFT.sh /etc/init.d/WeatherPiTFT
sudo cp PiButtons.sh /etc/init.d/PiButtons

run python with root privileges

  • this is useful if you like to run your python scripts on boot and with sudo support in python
sudo chown -v root:root /usr/bin/python3
sudo chmod -v u+s /usr/bin/python3

setting up python3 as default interpreter

  • this should start your wanted python version just by typing python in the terminal
  • helps if you have projects in python2 and python3 and don't want to hassle with the python version in your service scripts
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3.4 2

you can always swap back to python2 with:

update-alternatives --config python

and choose your preferred version of python

  • check if python3.x is now default with:
python --version
  • it should say something like:
Python 3.7.x
  • if everything is set up and updated correctly:
sudo reboot

test the services

  • for the WeatherPiTFT Service
sudo service WeatherPiTFT start
sudo service WeatherPiTFT stop
sudo service WeatherPiTFT restart
sudo service WeatherPiTFT status
  • for the PiButtons Service
sudo service PiButtons start
sudo service PiButtons stop
sudo service PiButtons restart
sudo service PiButtons status
  • if this is doing what it should you can run the service every time you boot your pi
sudo update-rc.d WeatherPiTFT defaults
sudo update-rc.d PiButtons defaults

Troubleshooting

  • if you have any issues with setting up your locale please read the issue #1
  • if some special characters of your language is not supported (e.g. like chinese characters) please read the issue #1

WeatherPi_TFT in Chinese

  • a good way to setup for chinese was given from @yifanshu02 here

WeatherPi_TFT in Chinese

credits

screenshots

darcula styled theme with another font

Darcula styled Theme for WeatherPi_TFT

WeatherPi_TFT

weatherpi_tft's People

Contributors

lovebootcaptain 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

weatherpi_tft's Issues

Az touch weather station.

A few of us are having issues with the az touch weather station but we have no response or fix. Seems it randomly works and currently was working fine for me until we had a powercut.

I followed his instructions again and now it gets stuck hear.
20220819_185305

after a reboot the TFT cannot start the Weahter UI

hi,
after a reboot the UI for weather forecast is not starting - no icons displayed - AZ Touch TFT Display remains dark.

I can see all messages during startup, but when the UI shall start, nothing happens .

I have had the same issue 4 weeks ago: After several reboots the UI was starting again - everything seemed to work as usual...until yesterday.

Now I don't wont to wait for a miracle and that's why I kindly ask for your support. I haven't done any operating system upgrades because I have red this may have conflicts with the UI.

I would appreciate any kind of feedback and help. I did a look into the logfiles, but I was unable to find something helpful. Additional I tried to restart Weather TFT: sudo sh ./WeatherPiTFT.sh restart

[....] Stopping system WeatherPiTFT daemon:start-stop-daemon: warning: failed to kill 444: No such process
No process in pidfile '/var/run/WeatherPiTFT.pid' found running; none killed.
failed!
[ ok ] Starting system WeatherPiTFT daemon:.

libSDL and framebuffer display

I have a Raspberry Pi 3 Model B v1.2 running the latest (32-bit) version of Raspberry Pi OS:

Linux raspberrypi 5.4.51-v7+ #1333 SMP Mon Aug 10 16:45:19 BST 2020 armv7l GNU/Linux

and Python 3.7.3. For a display, I have a SPI-attached ILI9341-based TFT LCD panel, specifically this one:

http://www.lcdwiki.com/3.2inch_SPI_Module_ILI9341_SKU:MSP3218

that I do have working with a dtoverlay, creating /dev/fb1 upon which I can render images (via fbi) or play movies (via mplayer).

Pulling the latest WeatherPi_TFT, however, I cannot get it to display on /dev/fb1. Instead, it always ends up rendering on the HDMI display (/dev/fb0). The same is true for other Python programs that make use of pygame and rely, as WeatherPi_TFT appears to, upon the environment variables $SDL_FBDEV and $SDL_VIDEODRIVER to "direct" libSDL to make use of a framebuffer directly.

Googling around about the issue, I came across this posting from early 2019 on the Raspberry Pi forums:

Issue using Python3/pygame to output to /dev/fb1 targeting a 2.8" TFT screen
https://www.raspberrypi.org/forums/viewtopic.php?t=234087

In a follow-up post, that author states the following:

Why not using pygame/SDL1.2.x as instructed in many forums and the adafruit TFT manual?

First, it doesn't work, at all. I have tried a gazillion versions of libsdl and its dependencies and they all failed consistently. I've tried forcing some libsdl versions downgrades, same with pygame version, just to try to get back to what the software was when my TFT screen was released (~2014). Then I aslo tried switching to C and handle SDL2 primitives directly.

Furthermore, SDL1.2 is getting old and I believe it is bad practice to build new code on top of old one. That said, I am still using pygame-1.9.4...

So why not SDL2? Well, they have stopped (or are about to stop) supporting framebuffers. I have not tried their alternative to framebuffers, EGL, as it got more complex the further I digged and it did not look too engaging (so old it felt like necro-browsing). Any fresh help or advice on that would be greatly appreciated BTW.

I was wondering if you had any insights into this matter? Have you tried WeatherPi_TFT under the latest Raspberry Pi OS? Do you know if libSDL is indeed deprecating / dropping support for framebuffers?

I ask since I would like to get WeatherPi_TFT working on my RPi3, as well as figure out what changes are necessary for my small project (kodi_panel) to make use of /dev/fb1.

Thanks!

WeatherPi_TFT.py uses CrLf instead of LF

The code does not run as a service, the file needs to be converted to use LF.

Current behavior:
$ sudo service WeatherPiTFT restart
$ sudo service WeatherPiTFT status
● WeatherPiTFT.service - LSB: WeatherPiTFT
Loaded: loaded (/etc/init.d/WeatherPiTFT; generated)
Active: active (exited) since Sat 2020-05-09 11:59:16 CEST; 10s ago
Docs: man:systemd-sysv-generator(8)
Process: 1266 ExecStart=/etc/init.d/WeatherPiTFT start (code=exited, status=0/SUCCESS)

Mai 09 11:59:16 piwetter systemd[1]: Starting LSB: WeatherPiTFT...
Mai 09 11:59:16 piwetter WeatherPiTFT[1266]: Starting system WeatherPiTFT daemon:.
Mai 09 11:59:16 piwetter systemd[1]: Started LSB: WeatherPiTFT.

WeatherPiTFT.py locale.Error: unsupported locale setting

Hi Captain

Have tried everything.
But unable to get the python script to recognise the file LC_ALL.

get this error
pygame 1.9.4.post1
Hello from the pygame community. https://www.pygame.org/contribute.html
Traceback (most recent call last):
File "/media/pi/rootfs/home/pi/WeatherPi_TFT/WeatherPiTFT.py", line 85, in
locale.setlocale(locale.LC_ALL, (config['LOCALE']['ISO'], 'UTF-8'))
File "/usr/lib/python3.7/locale.py", line 604, in setlocale
return _setlocale(category, locale)
locale.Error: unsupported locale setting

/etc/default/locale contains the following.

LC_ALL=en_GB.UTF-8
LANG=en_GB

I have read both closed items
#6

and

#1

I am in the UK.
also if i try to set my postal code in the config.json
Uk uses alpha numeric postal codes...
mine is SO302SX, the script errors.
Can you please advise what i am doing wrong.

Many thanks

Perhaps I should add I am using a Raspberry pi 0 W. with San Disk Ultra PLUS 32GB memory.
I have tried Reformatting the card and reloading the image using RASPI Imager several times. I am using Putty SSH to edit.
@LoveBootCaptain

modularisation of the app

in order to do some more development in this project i want to rewrite the app and modularize the code

Pygame version

In the readme you state pygame version 2.0.0.dev8 is required but in the requirements.txt is
pygame~=2.0.0.dev8. Which is it? If that version is indeed required, using pip won't work as the latest version I see on PyPI is 1.9.6.
Needless to say my python installation is a wreck trying to figure out all the things that went wrong after following this installation guide.

Problems with Python3.7 and

Hi,
I want to use your weather station code but when I try to start the code under Python 3.7 I will get an error - see attached picture.

grafik

Localisation is set to UTF-8 and 'de' for Germany.
What can I do?

Thx for your help

Problem with Python 3

I've set up and updated a fresh new Raspbian. Then followed the instructions exactly.

My hardware is a Pi4 with an official 7 inch touchscreen.

I start the WeatherPiTFT service first and then the script but unfortunately the following error message:

pygame 1.9.6 Hello from the pygame community. https://www.pygame.org/contribute.html Traceback (most recent call last): File "/home/pi/WeatherPi_TFT/./WeatherPiTFT.py", line 68, in <module> config = json.loads(config_data) File "/usr/lib/python3.9/json/__init__.py", line 346, in loads return _default_decoder.decode(s) File "/usr/lib/python3.9/json/decoder.py", line 337, in decode obj, end = self.raw_decode(s, idx=_w(s, 0).end()) File "/usr/lib/python3.9/json/decoder.py", line 353, in raw_decode obj, end = self.scan_once(s, idx) json.decoder.JSONDecodeError: Expecting ',' delimiter: line 18 column 29 (char 429)

Solved.....

Wrong postal code.
I live in Saxony / Germany (04425 in Germany)
If the zip code begins with a 0 then the zip code must be in "" in config.json.

fbcon not available

tried to run WeatherPiTFT but i get the output:

File "WeatherPiTFT.py", line 118, in
pygame.display.init()
pygame.error: fbcon not available

Not showing up on screen?

I have followed all the instructions on how to install WeatherPi_TFT but when i start the service nothing happens. The screen is still just on the command line prompt. I am using a generic ili9341 display with a raspberry pi 0 with Jessie minimal.
Any help would be appreciated!

What if Weatherbit doesn't support my city?

Hello Everyone,

I got the kit for building the AZ Touch PI-Zero weather station. All the installation procedures went fine.

However, what if Weatherbit doesn't support the city where I am? I live in Novi Sad, Serbia, and I can't get weather info from Weatherbit. To be honest, I couldn't fid PIN codes for Serbia.

If I use the default configuration (Berlin, Germany) everything runs smooth. For instance, at the moment, I see on the display the information for Berlin. Actually, I'm writing this paragraph just to keep it clear that it's not a problem with configuration, Weatherbit API, hardware, and so on.

After saying this, my question is, is there support to other weather backend service?

Thanks!

AZ-Touch Pi0 with Kernel >5.4

Hello,
maybe i am making a mistake i don´t get, but i is it possible that the external display from the AZ-Touch Pi0 does not work with the current kernel version?

I tried several times to set the system up acccording to the readme and everything works fine (display has power, weatherdisplay on hdmi works well, variables are set properly....), except it does not show up on the external displayl.

I would be thankful for any hint.

regards
Matthias

The file '/lib/lsb/init-functions' does not exist.

hello, I am new to python and I am interested in your project, but I am facing following errors : The file '/lib/lsb/init-functions' does not exist.
python error
I don't know what's the problem. By the way, I am currently living and working in china and I don't have language issue.

locale.Error: unsupported locale setting in Python3.5.2 window7

hi @LoveBootCaptain ,
i saw your project by twitter, and at the same i see this project here.i'm a beginner in python,too. So i try to build this project. And i encounter an error:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\WeatherPi_TFT-master\WeatherPi_TFT.py", line 16, in <module>
    locale.setlocale(locale.LC_ALL, locale.getdefaultlocale())
  File "D:\Python35\lib\locale.py", line 594, in setlocale
    return _setlocale(category, locale)
locale.Error: unsupported locale setting

i dont know where is wrong.However,i annotate return _setlocale(category, locale) in "D:\Python35\lib\locale.py", line 594
and the error is gone
But there is a new error:

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\WeatherPi_TFT-master\WeatherPi_TFT.py", line 637, in <module>
    loop()
  File "C:\Users\Administrator\Desktop\WeatherPi_TFT-master\WeatherPi_TFT.py", line 602, in loop
    Update.run()
  File "C:\Users\Administrator\Desktop\WeatherPi_TFT-master\WeatherPi_TFT.py", line 410, in run
    Update.update_json()
  File "C:\Users\Administrator\Desktop\WeatherPi_TFT-master\WeatherPi_TFT.py", line 212, in update_json
    config = json.loads(config_data)
  File "D:\Python35\lib\json\__init__.py", line 319, in loads
    return _default_decoder.decode(s)
  File "D:\Python35\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "D:\Python35\lib\json\decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 3 column 1 (char 59)

i have no idea about it...

PS: i can get defaultlocale by locale.getdefaultlocale():

>>> locale.getdefaultlocale()
('zh_CN', 'cp936')

Do you have a idea?

Update Wiki and remove redundant readme informations

Wiki should be updated by me

  • RaspbianOS has issues - write a warning to use "buster"
  • raspberry website moved some toutorials, update links
  • install instructions should be updated
  • remove redundant and somtimes old readme information and link to wiki instead

Not working for me

Hello I have tired this project on Raspi 0W2 and I have no idea what I'm doing wrong, it is just not working. I did follow the instuctions and I did try it many many times with headless and desktop version of OS and I have failed. Please help if possible.

Conversion of Current Wind Speed from m/s to mph

Hi there,
I'm new to GitHub so am not sure if this is the best way to raise a bug report. In my understanding wind speed from Weatherbit.IO comes as m/s, which to convert to km/h you need to multiply by 3.6, similarly to convert from m/s to mph you need to multiply by 2.24, so in WeatherPiTFT.py the following line, line #731
wind_speed = wind_speed * 3.6 if METRIC else wind_speed
perhaps should be something like
wind_speed = wind_speed * 3.6 if METRIC else wind_speed * 2.2

BTW I love your work on this project,
g0ods.

Flickering Screen & wrong alignment

I have followed all the steps and it works. But the screen keeps disappearing. Maybe I'm missing something am still relatively new to the Raspberry Pi

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.