Skip to main content

Adafruit PyPortal from Twitter to weather

I have had the Adafruit PyPortal for a while and finally got around to playing with it. The PyPortal cames as part the Adabox011 



1. Getting going

PyPortal contains a colour TFT touch screen; speaker; NeoPixel; sensors for light and temperature sensor;  microSD slot; ports for I2C and pins for either analogue or digital; with built-in 8MB flash memory. It uses both CircuitPython and Arduino. In this post, CircuitPython is used. A more detailed overview of the device is available at https://learn.adafruit.com/adafruit-pyportal 

To set it up I started from https://learn.adafruit.com/adafruit-pyportal/updating-your-pyportal, I already had CircuitPython installed so skipped ahead after updating the firmware to PyPortal CircuitPython Setup and then the enjoyable bit Internet Connect! 


2 From Twitter to Weather
Time to play. There is an interesting example, developed by John Parks (https://learn.adafruit.com/users/johnpark) PyPortal Twitter Follows Trophy (https://learn.adafruit.com/pyportal-twitter-follows-trophy) which turns the PyPortal into a 'scoreboard' for twitter follows. The first few sections describing setting the system up in terms of CircuitPython, internet connection and updating the firmware, similar to the links above. The code starts at https://learn.adafruit.com/pyportal-twitter-follows-trophy/code-pyportal-with-circuitpython the description is really useful and essentially uses JSON information about followers and displays it on the PyPortal.

Using this code as the core of a new project, the device was changed to collect weather data for the current weather (and yes I do know I can just look out of the window but this seems like fun) from a website. 

To get started a source of the data was needed and a company Weather Unlocked: https://developer.weatherunlocked.com/ provides a service for local current weather information via their 'Local Weather API' in JSON form.  You need to sign in and create an APP_ID and APP_KEY, these are needed in the next stage. In the code, modify DATA_SOURCE = "https://cdn.syndication.twimg.com/widgets/followbutton/info.json?screen_names="+TWITTER_NAME to something like DATA_SOURCE = "http://api.weatherunlocked.com/api/current/51.50,-0.12?app_id={APP_ID}&app_key={APP_KEY}" with APP_ID and APP_KEY substituted and 51.50,-0.12 changed to the longitude and Latitude of your choice.

Using the URL Code Beautify (https://codebeautify.org/jsonviewer) and you can look at the JSON output to get a sense of how the data is structured and see the information produced.
There is a weather description wx_desc, so the code was changed to use DATA_LOCATION = ["wx_desc"] the rest is minor tweaks on the original John Parks code.



Change to DATA_LOCATION = ["temp_c"] and get (not surprsingly) the temperature.

The code used is here:





3. Overview
I enjoyed playing with this so far and look forward to playing with it a bit more. Thank you to John Parks for such a good starting point and WeatherUnlocked for such a useful feed.


All opinions in this blog are the Author's and should not in any way be seen as reflecting the views of any organisation the Author has any association with. Twitter @scottturneruon

Comments

Popular posts from this blog

Robot Software

In the previous blog posts for this 'series' "It is a good time...."  Post 1  looked at the hardware unpinning some of this positive rise in robots; Post 2  looked at social robots; Post 3  looked at a collection of small robots; Post 4 looked at further examples of small robots Robots, such as the forthcoming Buddy and JIBO, will be based some established open sourceand other technologies. Jibo will be based around various technologies including Electron and JavaScript (for more details see:  http://blog.jibo.com/2015/07/29/jibo-making-development-readily-accessible-to-all-developers/ ). Buddy is expected to be developed around tools for Unity3d, Arduino and OpenCV, and support Python, C++, C#, Java and JavaScript (for more details see http://www.roboticstrends.com/article/customize_your_buddy_companion_robot_with_this_software_development_kit ).  This post contin ues with some of the software being used with the smaller robots.  A number ...

Speech Recognition in Scratch 3 - turning Hello into Bonjour!

The Raspberry Pi Foundation recently released a programming activity Alien Language , with support Dale from Machine Learning for Kids , that is a brilliant use of Scratch 3 - Speech Recognition to control a sprite in an alien language. Do the activity, and it is very much worth doing, and it will make sense! I  would also recommend going to the  machinelearningforkids.co.uk   site anyway it is full of exciting things to do (for example loads of activities  https://machinelearningforkids.co.uk/#!/worksheets  ) . Scratch 3 has lots of extensions that are accessible through the Extension button in the Scratch 3 editor (see below) which add new fun new blocks to play with. The critical thing for this post is  Machine Learning for Kids  have created a Scratch 3 template with their own extensions for Scratch 3 within it  https://machinelearningforkids.co.uk/scratch3/ . One of which is a Speech to Text extension (see below). You must use this one ...

Escape the Maze with a VR robot - Vex VR

You don't need to buy a robot to get programming a robot, now there are a range of free and relatively simple to start with robot simulators to play with. Three examples are listed below: - Make code for Lego EV3  https://robotsandphysicalcomputing.blogspot.com/2020/05/programming-robots-virtually-3-lego-ev3.html   - i Robot simulator  https://robotsandphysicalcomputing.blogspot.com/2020/04/programming-robots-virtually-2-irobot.html - Vex robotics Vexcode VR   https://robotsandphysicalcomputing.blogspot.com/2020/04/programming-robots-virtually-1-vexcode.html   It is the last one of these ( https://www.vexrobotics.com/vexcode-vr ) that is the focus of this post and return to hit, after an earlier discussion in  https://robotsandphysicalcomputing.blogspot.com/2020/04/programming-robots-virtually-1-vexcode.html   .  Two of the nice things about the package, apart from being free, are it uses a Scratch-like programming language and it provides a ...