Kenneth Yang
Published © GPL3+

WhatYouNeed

Here's your solution to knowing WhatYouNeed for the reported weather.

IntermediateFull instructions provided2 hours3,298

Things used in this project

Hardware components

Omega2 Plus
Onion Corporation Omega2 Plus
The Omega2 should also work, although I didn't test if it has enough memory
×1
Expansion Dock
Onion Corporation Expansion Dock
This is optional in the final product, but some Onion dock (with a micro-USB port) may be needed to power the Onion when programming it
×1
Arduino 101
Arduino 101
×1
128x64 Monochrome SPI OLED
Just go to amazon.com and search for "128x64 SPI OLED" and you will be flooded with results that look exactly like this one. If you find a cheaper offer than the one listed here, by all means take it!
×1
SparkFun Serial Enabled 16x2 LCD - White on Black 3.3V
SparkFun Serial Enabled 16x2 LCD - White on Black 3.3V
The Arduino 101 runs on 3.3v so for best performance a 3.3v LCD is recommend, but a regular 5v LCD still works fine.
×1
Potentiometer
Any generic (10k) Potentiometer would work
×1
Resistor 220 ohm
Resistor 220 ohm
×1
Male/Male Jumper wires
26 is the minimum amount that I used
×26

Software apps and online services

Arduino IDE
Arduino IDE
Losant Platform
Losant Platform
DarkSky Weather

Story

Read more

Schematics

Main

Breadboard image of the setup. This image has the displays covering some of the power-bus wires. The other image will show the displays off of the breadboard, allowing you to see the wires and their placement.

Main (uncovered)

Breadboard image of the setup. This image has the displays not covering the power-bus wires.

Code

Main Arduino code

Arduino
What else do you think it is?
#include <LiquidCrystal.h>
#include <Adafruit_SSD1306.h>
#include <CurieTime.h>
#include <SPI.h>


//OLED
#define oledMOSI 7 //D1
#define oledCLK 8 //D0
#define oledDC 6
#define oledCS 10
#define oledRST 13
Adafruit_SSD1306 display(oledMOSI, oledCLK, oledDC, oledRST, oledCS);
#if (SSD1306_LCDHEIGHT != 64)
#error("height incorrect, please fix Adafruit_SSD1306");
#endif

//LCD
#define bri 9
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

//RTC
unsigned int pmin = 0; //previous min, used to test if need to update time

//Serial
int inin = 0;
String stin = "";
int data[5];

//UI
#define scroll A0
unsigned int tshirt = 70;
unsigned int jacket = 40;
unsigned long prevMil = 0;
boolean wn[11] = {false, false, false, false, false, false, false, false, false, false, false};
int pages = 1, prevPage = 1, curPage = 1;
boolean first = false;

#define darkskyWidth 47
static const unsigned char PROGMEM darkskyIcon[] =
{
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0xf, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0xf, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x1e, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x40, 0x2, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x2, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x7, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xf, 0x80, 0x0,
  0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
  0x0, 0x0, 0x0, 0x1f, 0xc0, 0x0,
  0x0, 0x8, 0x0, 0x3f, 0xe0, 0x0,
  0x0, 0x10, 0x0, 0x7f, 0xf0, 0x0,
  0x0, 0x10, 0x0, 0x7f, 0xf0, 0x0,
  0x0, 0x30, 0x0, 0xff, 0xf8, 0x0,
  0x0, 0x70, 0x0, 0xff, 0xfc, 0x0,
  0x0, 0xe0, 0x1, 0xf, 0xfe, 0x0,
  0x1, 0xe0, 0x0, 0x1f, 0xfe, 0x0,
  0x1, 0xe0, 0x0, 0x1f, 0xff, 0x0,
  0x3, 0xe0, 0x0, 0x3f, 0xff, 0x80,
  0x7, 0xe0, 0x0, 0x3f, 0xff, 0x80,
  0x7, 0xe0, 0x0, 0x7f, 0xff, 0xc0,
  0xf, 0xe0, 0x0, 0x7f, 0xff, 0xe0,
  0xf, 0xe0, 0x0, 0xff, 0xff, 0xe0,
  0x1f, 0xe0, 0x0, 0xff, 0xff, 0xf0,
  0x1f, 0xe4, 0x0, 0xff, 0xff, 0xf0,
  0x3f, 0xfc, 0x1, 0xff, 0xff, 0xf0,
  0x3f, 0xfc, 0x1, 0xff, 0xff, 0xf8,
  0x3f, 0xfc, 0x1, 0xff, 0xff, 0xf8,
  0x7f, 0xfc, 0x1, 0xff, 0xff, 0xf8,
  0x7f, 0xfc, 0x1, 0xff, 0xff, 0xfc,
  0x7f, 0xfc, 0x1, 0xff, 0xff, 0xfc,
  0x7f, 0xfc, 0x1, 0x3f, 0xff, 0xfc,
  0x7f, 0xfe, 0x0, 0x3f, 0xff, 0xfc,
  0x7f, 0xfe, 0x0, 0x3f, 0xff, 0xfc,
  0x7f, 0xfe, 0x0, 0x7f, 0xff, 0xfc,
  0x7f, 0xfe, 0x0, 0x7f, 0xff, 0xfc,
  0x7f, 0xfe, 0x0, 0x7f, 0xff, 0xfc,
  0x7f, 0xff, 0x0, 0x7f, 0xff, 0xfc,
  0x7f, 0xff, 0x0, 0x7f, 0xff, 0xfc,
  0x7f, 0xff, 0x20, 0x7f, 0xff, 0xf8,
  0x3f, 0xff, 0xe0, 0x7f, 0xff, 0xf8,
  0x3f, 0xff, 0xe0, 0xff, 0xff, 0xf8,
  0x3f, 0xff, 0xe0, 0xff, 0xff, 0xf8,
  0x1f, 0xff, 0xf0, 0xff, 0xff, 0xf0,
  0x1f, 0xff, 0xf0, 0xff, 0xff, 0xf0,
  0xf, 0xff, 0xf0, 0xff, 0xff, 0xe0,
  0x7, 0xff, 0xf0, 0xff, 0xff, 0xc0,
  0x7, 0xff, 0xf8, 0xff, 0xff, 0xc0,
  0x3, 0xff, 0xf8, 0xff, 0xff, 0x80,
  0x1, 0xff, 0xfc, 0x7f, 0xff, 0x0,
  0x0, 0xff, 0xfc, 0x7f, 0xfe, 0x0,
  0x0, 0x7f, 0xfe, 0x7f, 0xfc, 0x0,
  0x0, 0x3f, 0xfe, 0x7f, 0xf8, 0x0,
  0x0, 0xf, 0xff, 0x7f, 0xe0, 0x0,
  0x0, 0x3, 0xff, 0x7f, 0x80, 0x0,
  0x0, 0x0, 0xff, 0xbe, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x80, 0x0, 0x0
};

static const unsigned char PROGMEM usbIcon[] =
{
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfe, 0x0, 0x1f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xfc, 0x0, 0xf, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x3f, 0xe0, 0x0, 0x7, 0xff, 0xe0, 0x0, 0x7, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x3f, 0xf0, 0x0, 0xf, 0xff, 0xc0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x3, 0xff, 0xfe, 0x0, 0x1f, 0xff, 0x80, 0x0, 0x0, 0xff, 0x80, 0x0, 0x3c, 0x0, 0x0, 0x0,
  0x3, 0xff, 0xff, 0x0, 0x1f, 0xff, 0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
  0xf, 0xff, 0xff, 0x80, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0,
  0xf, 0xff, 0xff, 0xc0, 0x3f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0,
  0x3f, 0xff, 0xff, 0xe0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0,
  0x3f, 0xff, 0xff, 0xe0, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x0, 0x0,
  0x7f, 0xff, 0xff, 0xe3, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xf8, 0x0,
  0xff, 0xff, 0xff, 0xe3, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xfc, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
  0x3f, 0xff, 0xff, 0xf0, 0x0, 0x3, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x0,
  0x3f, 0xff, 0xff, 0xe0, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xc0, 0x0,
  0xf, 0xff, 0xff, 0xc0, 0x0, 0x0, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0,
  0xf, 0xff, 0xff, 0x80, 0x0, 0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xf0, 0x0, 0x0,
  0x3, 0xff, 0xff, 0x0, 0x0, 0x0, 0x3f, 0xfc, 0x0, 0xf, 0xff, 0xff, 0x3f, 0x0, 0x0, 0x0,
  0x3, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0xf, 0xff, 0xff, 0x3e, 0x0, 0x0, 0x0,
  0x0, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0x0, 0xf, 0xff, 0xff, 0x30, 0x0, 0x0, 0x0,
  0x0, 0x7f, 0xf0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0x80, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xf8, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xff, 0xfc, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xdf, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0
};

static const unsigned char PROGMEM ClearDay[] =
{
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x2, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x2, 0x0, 0x40, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x0, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x1, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x83, 0xc0, 0x0, 0x0,
  0x0, 0xc, 0x7, 0x87, 0xc0, 0x0, 0x0,
  0x0, 0xe, 0xf, 0x87, 0xc0, 0x10, 0x0,
  0x0, 0xf, 0xf, 0x87, 0xc0, 0x30, 0x0,
  0x0, 0xf, 0x87, 0x83, 0x80, 0xf0, 0x0,
  0x0, 0xf, 0x80, 0x0, 0x1, 0xe0, 0x0,
  0x0, 0xf, 0x80, 0xfc, 0x3, 0xe0, 0x0,
  0x0, 0x7, 0x8f, 0xff, 0xc3, 0xe0, 0x0,
  0x6, 0x3, 0x1f, 0xff, 0xe3, 0xe0, 0x0,
  0x3, 0xc0, 0x7f, 0xff, 0xf9, 0xc0, 0x0,
  0x3, 0xf0, 0xff, 0xff, 0xfc, 0x0, 0x0,
  0x1, 0xf1, 0xff, 0xff, 0xfe, 0x3, 0xe0,
  0x1, 0xf3, 0xff, 0xff, 0xff, 0xf, 0xc0,
  0x0, 0xf3, 0xff, 0xff, 0xff, 0x1f, 0xc0,
  0x0, 0x67, 0xff, 0xff, 0xff, 0x9f, 0x80,
  0x0, 0x7, 0xff, 0xff, 0xff, 0x9f, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xc4, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x7f, 0x8f, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x3f, 0xdf, 0xff, 0xff, 0xff, 0xe0, 0x0,
  0x1f, 0xdf, 0xff, 0xff, 0xff, 0xe7, 0x80,
  0xf, 0xdf, 0xff, 0xff, 0xff, 0xef, 0xe0,
  0x3, 0x9f, 0xff, 0xff, 0xff, 0xef, 0xf0,
  0x0, 0x1f, 0xff, 0xff, 0xff, 0xef, 0xc0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xc7, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x0, 0xef, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x3, 0xf7, 0xff, 0xff, 0xff, 0x9c, 0x0,
  0x7, 0xf7, 0xff, 0xff, 0xff, 0xbf, 0x0,
  0x1f, 0xf3, 0xff, 0xff, 0xff, 0x3f, 0x0,
  0x1, 0xe1, 0xff, 0xff, 0xfe, 0x3f, 0x80,
  0x0, 0x1, 0xff, 0xff, 0xfc, 0x1f, 0xc0,
  0x0, 0x0, 0x7f, 0xff, 0xf8, 0x0, 0x0,
  0x0, 0x2, 0x3f, 0xff, 0xf3, 0x80, 0x0,
  0x0, 0xf, 0x9f, 0xff, 0xc7, 0xc0, 0x0,
  0x0, 0xf, 0x83, 0xff, 0x7, 0xe0, 0x0,
  0x0, 0x1f, 0x80, 0x0, 0x7, 0xe0, 0x0,
  0x0, 0x3f, 0x7, 0x3, 0x83, 0xe0, 0x0,
  0x0, 0x3e, 0xf, 0x87, 0xc0, 0xf0, 0x0,
  0x0, 0x60, 0xf, 0x87, 0xc0, 0x30, 0x0,
  0x0, 0x0, 0xf, 0x83, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x83, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x1, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x6, 0x0, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x6, 0x0, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x4, 0x0, 0x40, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM ClearNight[] =
{
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x70, 0x0, 0x80, 0x0, 0x0,
  0x0, 0x3, 0xe0, 0x0, 0xc0, 0x0, 0x0,
  0x0, 0xf, 0xc0, 0x0, 0xc0, 0x0, 0x0,
  0x0, 0x1f, 0x80, 0x1, 0xc0, 0x0, 0x0,
  0x0, 0x3f, 0x80, 0x1, 0xe0, 0x0, 0x0,
  0x0, 0x7f, 0x0, 0x7, 0xf8, 0x0, 0x0,
  0x0, 0xff, 0x0, 0x7f, 0xff, 0x80, 0x0,
  0x1, 0xff, 0x0, 0x1f, 0xfc, 0x0, 0x0,
  0x3, 0xfe, 0x0, 0x3, 0xe0, 0x0, 0x0,
  0x7, 0xfe, 0x0, 0x1, 0xc0, 0x0, 0x0,
  0xf, 0xfe, 0x0, 0x0, 0xc0, 0x6, 0x0,
  0xf, 0xfc, 0x0, 0x0, 0xc0, 0x6, 0x0,
  0x1f, 0xfc, 0x0, 0x0, 0x80, 0x1f, 0x80,
  0x1f, 0xfc, 0x0, 0x0, 0x80, 0x3f, 0xc0,
  0x3f, 0xfc, 0x0, 0x0, 0x0, 0x6, 0x0,
  0x3f, 0xfc, 0x0, 0x0, 0x0, 0x6, 0x0,
  0x7f, 0xfc, 0x0, 0x0, 0x0, 0x4, 0x0,
  0x7f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x7f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x7f, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xfc, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xfe, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xff, 0x0, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
  0xff, 0xff, 0x80, 0x0, 0x0, 0x0, 0x0,
  0x7f, 0xff, 0xc0, 0x0, 0x0, 0x0, 0x0,
  0x7f, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
  0x7f, 0xff, 0xe0, 0x0, 0x0, 0x0, 0x0,
  0x3f, 0xff, 0xf0, 0x0, 0x0, 0x0, 0x0,
  0x3f, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x0,
  0x3f, 0xff, 0xfc, 0x0, 0x0, 0x0, 0x0,
  0x1f, 0xff, 0xfe, 0x0, 0x0, 0x0, 0x0,
  0x1f, 0xff, 0xff, 0x80, 0x0, 0x0, 0x0,
  0xf, 0xff, 0xff, 0xc0, 0x0, 0x0, 0x0,
  0x7, 0xff, 0xff, 0xf0, 0x0, 0x0, 0x0,
  0x7, 0xff, 0xff, 0xfe, 0x0, 0x0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xe0, 0xc, 0x0,
  0x1, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
  0x0, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x0, 0x7f, 0xff, 0xff, 0xff, 0xe0, 0x0,
  0x0, 0x3f, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0x80, 0x0,
  0x0, 0x7, 0xff, 0xff, 0xfe, 0x0, 0x0,
  0x0, 0x1, 0xff, 0xff, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x3f, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xfe, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM Rain[] =
{
  0x0, 0x0, 0x0, 0x0, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xf, 0xfe, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x3f, 0xff, 0x80, 0x0,
  0x0, 0x0, 0x0, 0x7e, 0x1f, 0xc0, 0x0,
  0x0, 0x0, 0x1, 0xf0, 0x3, 0xe0, 0x0,
  0x0, 0x0, 0xe1, 0xe0, 0x0, 0xf0, 0x0,
  0x0, 0x7, 0xff, 0xc0, 0x0, 0x78, 0x0,
  0x0, 0x1f, 0xff, 0x80, 0x0, 0x38, 0x0,
  0x0, 0x3f, 0x1f, 0x0, 0x0, 0x3c, 0x0,
  0x0, 0x7c, 0x7, 0x0, 0x0, 0x1c, 0x0,
  0x0, 0x70, 0x0, 0x0, 0x0, 0x1e, 0x0,
  0x0, 0xf0, 0x0, 0x0, 0x0, 0xe, 0x0,
  0x0, 0xe0, 0x0, 0x0, 0x0, 0xe, 0x0,
  0x0, 0xe0, 0x0, 0x0, 0x0, 0xe, 0x0,
  0x1, 0xc0, 0x0, 0x0, 0x0, 0xe, 0x0,
  0x3, 0xc0, 0x0, 0x0, 0x0, 0xf, 0x80,
  0xf, 0xc0, 0x0, 0x0, 0x0, 0xf, 0xe0,
  0x1f, 0x80, 0x0, 0x0, 0x0, 0x3, 0xf0,
  0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
  0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3c,
  0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
  0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
  0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
  0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
  0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
  0x1e, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf8,
  0x1f, 0xc0, 0x0, 0x0, 0x0, 0x3, 0xf0,
  0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
  0x0, 0x3f, 0xff, 0xff, 0xff, 0xfc, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x4, 0x0, 0x0, 0x8, 0x0, 0x0,
  0x0, 0x1c, 0x0, 0x0, 0x18, 0x4, 0x0,
  0x0, 0x3c, 0x0, 0x0, 0x38, 0xe, 0x0,
  0x0, 0x7c, 0x0, 0x0, 0x38, 0x3e, 0x0,
  0x0, 0xfc, 0x0, 0x0, 0x38, 0x7e, 0x0,
  0x0, 0xfc, 0x18, 0x0, 0x0, 0x7e, 0x0,
  0x0, 0xfc, 0x38, 0x6, 0x0, 0xfc, 0x0,
  0x0, 0x7c, 0x38, 0xe, 0x0, 0xfc, 0x0,
  0x0, 0x0, 0x38, 0x3e, 0x0, 0x7c, 0x0,
  0x0, 0x0, 0x0, 0x7e, 0x0, 0x38, 0x0,
  0x0, 0x0, 0x0, 0x7e, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x7c, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x10, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM Snow[] =
{
  0x0, 0x0, 0x3, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0xc3, 0x86, 0x0, 0x0,
  0x0, 0x1, 0xf3, 0x9f, 0x0, 0x0,
  0x0, 0x1, 0xff, 0xfe, 0x0, 0x0,
  0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0,
  0x0, 0xc0, 0x1f, 0xf0, 0xc, 0x0,
  0x0, 0xe0, 0x7, 0xc0, 0xe, 0x0,
  0x0, 0xe0, 0x3, 0x80, 0xe, 0x0,
  0x40, 0xe0, 0x3, 0x80, 0xe, 0xc,
  0xf0, 0xe0, 0x3, 0x80, 0xe, 0x1e,
  0xfc, 0xe0, 0x3, 0x80, 0xe, 0x7e,
  0x7f, 0xe0, 0x3, 0x80, 0xf, 0xfc,
  0x1f, 0xe0, 0xf, 0xe0, 0xf, 0xf0,
  0x7, 0xe0, 0x3f, 0xf0, 0xf, 0xc0,
  0x7, 0xf8, 0x7f, 0xfc, 0x3f, 0xc0,
  0xf, 0xff, 0xfc, 0x7f, 0xff, 0xe0,
  0x1f, 0xff, 0xf0, 0x1f, 0xfb, 0xf0,
  0x7e, 0x1f, 0xc0, 0x7, 0xf0, 0xf8,
  0x78, 0x7, 0x80, 0x3, 0xc0, 0x7c,
  0x30, 0x7, 0x3, 0x83, 0xc0, 0x18,
  0x0, 0x7, 0x7, 0xc1, 0xc0, 0x0,
  0x0, 0x7, 0xf, 0xe1, 0xc0, 0x0,
  0x0, 0x7, 0xf, 0xe1, 0xc0, 0x0,
  0x0, 0x7, 0xf, 0xe1, 0xc0, 0x0,
  0x0, 0x7, 0x7, 0xc1, 0xc0, 0x0,
  0x30, 0x7, 0x3, 0x81, 0xc0, 0x18,
  0x78, 0x7, 0x80, 0x3, 0xc0, 0x7c,
  0x7e, 0x1f, 0xc0, 0x7, 0xe0, 0xf8,
  0x1f, 0xff, 0xf0, 0x1f, 0xfb, 0xf0,
  0xf, 0xff, 0xfc, 0x7f, 0xff, 0xe0,
  0x7, 0xf8, 0x7f, 0xfc, 0x3f, 0xc0,
  0x7, 0xe0, 0x3f, 0xf8, 0xf, 0xc0,
  0x1f, 0xe0, 0xf, 0xe0, 0xf, 0xf0,
  0x7f, 0xe0, 0x3, 0x80, 0xf, 0xfc,
  0xfc, 0xe0, 0x3, 0x80, 0xe, 0x7e,
  0xf0, 0xe0, 0x3, 0x80, 0xe, 0x1e,
  0x40, 0xe0, 0x3, 0x80, 0xe, 0xc,
  0x0, 0xe0, 0x3, 0x80, 0xe, 0x0,
  0x0, 0xe0, 0x7, 0xc0, 0xe, 0x0,
  0x0, 0xc0, 0x1f, 0xf0, 0xc, 0x0,
  0x0, 0x0, 0x7f, 0xfc, 0x0, 0x0,
  0x0, 0x1, 0xff, 0xfe, 0x0, 0x0,
  0x0, 0x1, 0xf3, 0x9f, 0x0, 0x0,
  0x0, 0x0, 0xc3, 0x86, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM Sleet[] =
{
  0x0, 0x0, 0x0, 0x3, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x3f, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x7f, 0xfe, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xff, 0xff, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xf0, 0x1f, 0x80, 0x0,
  0x0, 0x0, 0x7, 0xc0, 0x7, 0xc0, 0x0,
  0x0, 0x0, 0x7, 0x80, 0x3, 0xe0, 0x0,
  0x0, 0x1, 0xff, 0x0, 0x1, 0xe0, 0x0,
  0x0, 0x7, 0xfe, 0x0, 0x0, 0xf0, 0x0,
  0x0, 0xf, 0xfe, 0x0, 0x0, 0xf0, 0x0,
  0x0, 0x1f, 0x80, 0x0, 0x0, 0x70, 0x0,
  0x0, 0x3e, 0x0, 0x0, 0x0, 0x7c, 0x0,
  0x0, 0x3c, 0x0, 0x0, 0x0, 0x7f, 0x0,
  0x0, 0x78, 0x0, 0x0, 0x0, 0x7f, 0x80,
  0x0, 0xf0, 0x0, 0x0, 0x0, 0xf, 0xc0,
  0x7, 0xf0, 0x0, 0x0, 0x0, 0x3, 0xe0,
  0xf, 0xf0, 0x0, 0x0, 0x0, 0x1, 0xe0,
  0x1f, 0xf0, 0x0, 0x0, 0x0, 0x0, 0xf0,
  0x3e, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
  0x7c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
  0x78, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
  0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
  0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
  0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
  0x78, 0x0, 0x0, 0x0, 0x0, 0x1, 0xe0,
  0x7c, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0,
  0x3e, 0x0, 0x0, 0x0, 0x0, 0xf, 0xc0,
  0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
  0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x4, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0,
  0x0, 0x30, 0x0, 0x0, 0x0, 0x7c, 0x0,
  0x0, 0xf0, 0x0, 0x0, 0x0, 0xfc, 0x0,
  0x1, 0xf0, 0x0, 0x40, 0x1, 0xfc, 0x0,
  0x7, 0xf0, 0x0, 0x40, 0x1, 0xfc, 0x0,
  0x7, 0xf0, 0x4, 0x44, 0x1, 0xfc, 0x0,
  0xf, 0xf0, 0x6, 0x4c, 0x1, 0xfc, 0x0,
  0xf, 0xf0, 0x3, 0xf8, 0x0, 0xf8, 0x0,
  0x7, 0xe0, 0x1, 0xf0, 0x0, 0x20, 0x0,
  0x3, 0xc0, 0x1f, 0xff, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xf0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xf0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xf8, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x6, 0x4c, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x4, 0x44, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM Windy[] =
{
  0x0, 0x0, 0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x1f, 0xf8, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x3f, 0xfe, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x7f, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xff, 0xff, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xfe, 0x7f, 0x80, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xf8, 0x1f, 0x80, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xf8, 0xf, 0xc0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xf8, 0xf, 0xc0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xf8, 0x7, 0xc0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xf0, 0xf, 0xc0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xe0, 0xf, 0xc0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0xf, 0xc0, 0x1, 0xfe, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x1f, 0x80, 0x7, 0xff, 0x0,
  0x0, 0x0, 0x0, 0x0, 0xff, 0x80, 0x7, 0xff, 0xc0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0x0, 0xf, 0xff, 0xc0,
  0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x1f, 0xff, 0xe0,
  0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x1f, 0x87, 0xe0,
  0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x1f, 0x3, 0xf0,
  0x7f, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x1f, 0x3, 0xf0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x83, 0xf0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1f, 0x83, 0xf0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x83, 0xf0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf, 0x87, 0xe0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0x1f, 0xe0,
  0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0,
  0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
  0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
  0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
  0x0, 0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x1, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
  0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x1, 0x81, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x3, 0xc0, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x7, 0xc0, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x7, 0xc1, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x7, 0xe3, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x3, 0xff, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x1, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0xff, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x3f, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM Foggy[] =
{
  0x0, 0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
  0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x3f, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
  0x7f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
  0x7f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
  0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
  0xff, 0xff, 0xff, 0xf1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
  0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0, 0x0,
  0x7f, 0xff, 0xff, 0xe0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
  0x3f, 0xff, 0xff, 0xc0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
  0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
  0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
  0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
  0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x0,
  0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
  0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x0,
  0x0, 0x0, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x0, 0x0,
  0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x0, 0x0,
  0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x0, 0x0,
  0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x0, 0x0,
  0x7, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe1, 0xff, 0xff, 0x0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc0, 0xff, 0xfe, 0x0, 0x0,
  0x0, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80, 0x7f, 0xfc, 0x0, 0x0
};
static const unsigned char PROGMEM Cloudy[] =
{
  0x0, 0x0, 0x0, 0x0, 0xfe, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xf, 0xff, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x3f, 0x1, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x7c, 0x0, 0x78, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xf0, 0x0, 0x1e, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xc0, 0x0, 0xf, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x80, 0x0, 0x7, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x0, 0x0, 0x3, 0x80, 0x0,
  0x0, 0x1, 0xe7, 0x0, 0x0, 0x1, 0xc0, 0x0,
  0x0, 0x7, 0xfe, 0x0, 0x0, 0x0, 0xc0, 0x0,
  0x0, 0x1f, 0xfe, 0x0, 0x0, 0x0, 0xe0, 0x0,
  0x0, 0x38, 0xc, 0x0, 0x0, 0x0, 0x60, 0x0,
  0x0, 0x30, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0,
  0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x60, 0x0,
  0x0, 0x60, 0x0, 0x0, 0x0, 0x0, 0x70, 0x0,
  0x0, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x0,
  0x3, 0xe0, 0x0, 0x0, 0x0, 0x0, 0x70, 0x0,
  0x7, 0x80, 0x0, 0x0, 0x0, 0x0, 0x7f, 0x0,
  0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7f, 0xc0,
  0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0,
  0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
  0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x18,
  0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
  0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x6,
  0x60, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xc,
  0x30, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1c,
  0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x38,
  0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x78,
  0xf, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
  0x7, 0xc0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xe0,
  0x1, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x80,
  0x0, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xfc, 0x0
};

static const unsigned char PROGMEM PartlyCloudyDay[] =
{
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0, 0x0,
  0x3, 0x80, 0x4, 0x0, 0x38, 0x0, 0x0,
  0x3, 0xc0, 0x0, 0x0, 0x78, 0x0, 0x0,
  0x3, 0xe0, 0x0, 0x0, 0xf8, 0x0, 0x0,
  0x1, 0xe0, 0x0, 0x0, 0xf0, 0x0, 0x0,
  0x0, 0xe0, 0x3f, 0x80, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0xff, 0xe0, 0x40, 0x0, 0x0,
  0x0, 0x3, 0xff, 0xf8, 0x0, 0x0, 0x0,
  0x0, 0x7, 0xe0, 0xfc, 0x0, 0x0, 0x0,
  0x0, 0xf, 0x80, 0x3e, 0x0, 0x0, 0x0,
  0x0, 0xf, 0x0, 0x1e, 0x0, 0x0, 0x0,
  0x0, 0x1e, 0x0, 0xf, 0x0, 0x0, 0x0,
  0x0, 0x1c, 0x0, 0x7, 0x0, 0x0, 0x0,
  0x0, 0x3c, 0x0, 0x7, 0x80, 0x0, 0x0,
  0x0, 0x38, 0x0, 0x3, 0x80, 0x0, 0x0,
  0xfc, 0x38, 0x0, 0x3, 0x87, 0xe0, 0x0,
  0xfe, 0x38, 0x0, 0x3, 0x8f, 0xe0, 0x0,
  0xfc, 0x38, 0x0, 0x3, 0x87, 0xe0, 0x0,
  0x0, 0x38, 0x0, 0x3, 0xfc, 0x0, 0x0,
  0x0, 0x3c, 0x0, 0x7, 0xff, 0x0, 0x0,
  0x0, 0x1c, 0x0, 0xf, 0xff, 0xc0, 0x0,
  0x0, 0x1e, 0x0, 0x1f, 0xff, 0xe0, 0x0,
  0x0, 0xf, 0x0, 0x3e, 0x1, 0xf0, 0x0,
  0x0, 0xf, 0x80, 0x78, 0x0, 0xf8, 0x0,
  0x0, 0x7, 0xe0, 0xf0, 0x0, 0x78, 0x0,
  0x0, 0x3, 0xff, 0xf0, 0x0, 0x3c, 0x0,
  0x0, 0x0, 0xff, 0xe0, 0x0, 0x3c, 0x0,
  0x0, 0xe0, 0x7f, 0xe0, 0x0, 0x1c, 0x0,
  0x1, 0xf0, 0x7c, 0x0, 0x0, 0x1c, 0x0,
  0x3, 0xe0, 0x78, 0x0, 0x0, 0x1f, 0x0,
  0x3, 0xc0, 0x70, 0x0, 0x0, 0x1f, 0x80,
  0x3, 0x80, 0x70, 0x0, 0x0, 0x7, 0xc0,
  0x0, 0x0, 0x70, 0x0, 0x0, 0x1, 0xe0,
  0x0, 0x0, 0xf0, 0x0, 0x0, 0x0, 0xf0,
  0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x70,
  0x0, 0x3, 0xe0, 0x0, 0x0, 0x0, 0x78,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x38,
  0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x38,
  0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x38,
  0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x38,
  0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x78,
  0x0, 0x7, 0x80, 0x0, 0x0, 0x0, 0x70,
  0x0, 0x3, 0x80, 0x0, 0x0, 0x0, 0xf0,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x1, 0xe0,
  0x0, 0x1, 0xf0, 0x0, 0x0, 0x7, 0xe0,
  0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xc0,
  0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0x0,
  0x0, 0x0, 0x1f, 0xff, 0xff, 0xfc, 0x0
};
static const unsigned char PROGMEM PartlyCloudyNight[] =
{
  0x0, 0x0, 0x18, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3f, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3f, 0xe0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1f, 0xf0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xf, 0xf8, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0xfc, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xbe, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xdf, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xcf, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xc7, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xc7, 0x80, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xc3, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xc3, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xc1, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xc1, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x81, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x81, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x81, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0x81, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0xf, 0x1, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0xf, 0x1, 0xfc, 0x0, 0x0,
  0x0, 0x0, 0x1e, 0x1, 0xff, 0xc0, 0x0,
  0x0, 0x0, 0x3e, 0x3, 0xff, 0xf0, 0x0,
  0x0, 0x0, 0x7c, 0x7, 0xff, 0xf8, 0x0,
  0x0, 0x0, 0xf8, 0xf, 0x80, 0xfc, 0x0,
  0x0, 0x1, 0xf0, 0x1f, 0x0, 0x3e, 0x0,
  0x0, 0x3, 0xe0, 0x3e, 0x0, 0x1e, 0x0,
  0x40, 0xf, 0xc1, 0xfc, 0x0, 0xf, 0x0,
  0xf8, 0x3f, 0x87, 0xf8, 0x0, 0xf, 0x0,
  0xff, 0xff, 0xf, 0xf8, 0x0, 0x7, 0x80,
  0x7f, 0xfc, 0x1f, 0xf0, 0x0, 0x7, 0x80,
  0x7f, 0xf0, 0x3e, 0x0, 0x0, 0x7, 0x80,
  0x3f, 0x80, 0x3c, 0x0, 0x0, 0x3, 0xe0,
  0x1f, 0xc0, 0x38, 0x0, 0x0, 0x3, 0xf0,
  0x7, 0xff, 0xf8, 0x0, 0x0, 0x1, 0xf8,
  0x3, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x7c,
  0x0, 0xff, 0xf8, 0x0, 0x0, 0x0, 0x3e,
  0x0, 0x1f, 0xf8, 0x0, 0x0, 0x0, 0x1e,
  0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0xf,
  0x0, 0x3, 0xc0, 0x0, 0x0, 0x0, 0x1e,
  0x0, 0x1, 0xe0, 0x0, 0x0, 0x0, 0x3e,
  0x0, 0x1, 0xf0, 0x0, 0x0, 0x0, 0x7c,
  0x0, 0x0, 0xff, 0xff, 0xff, 0xff, 0xf8,
  0x0, 0x0, 0x7f, 0xff, 0xff, 0xff, 0xf0,
  0x0, 0x0, 0x3f, 0xff, 0xff, 0xff, 0xe0,
  0x0, 0x0, 0xf, 0xff, 0xff, 0xff, 0x80
};
static const unsigned char PROGMEM Hail[] =
{
  0x0, 0x0, 0x3f, 0x80, 0x0, 0x0, 0x0,
  0x0, 0x1, 0xff, 0xe0, 0x0, 0x0, 0x0,
  0x0, 0x7, 0xc0, 0xf8, 0x0, 0x0, 0x0,
  0x0, 0xe, 0x0, 0x1c, 0x0, 0x0, 0x0,
  0x0, 0x1c, 0x0, 0xe, 0x0, 0x0, 0x0,
  0x0, 0x38, 0x0, 0x7, 0x7e, 0x0, 0x0,
  0x0, 0x70, 0x0, 0x3, 0xff, 0x80, 0x0,
  0x0, 0x60, 0x0, 0x1, 0x81, 0xe0, 0x0,
  0x0, 0xe0, 0x0, 0x0, 0x0, 0x70, 0x0,
  0x0, 0xc0, 0x0, 0x0, 0x0, 0x38, 0x0,
  0x0, 0xc0, 0x0, 0x0, 0x0, 0x18, 0x0,
  0x0, 0xc0, 0x0, 0x0, 0x0, 0x1c, 0x0,
  0x0, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
  0x1, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
  0x3, 0xc0, 0x0, 0x0, 0x0, 0xc, 0x0,
  0xf, 0x80, 0x0, 0x0, 0x0, 0xc, 0x0,
  0x1c, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
  0x38, 0x0, 0x0, 0x0, 0x0, 0xc, 0x0,
  0x30, 0x0, 0x0, 0x0, 0x0, 0xf, 0x0,
  0x60, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80,
  0x60, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0,
  0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x60,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
  0xc0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x30,
  0xc0, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x30,
  0x60, 0x0, 0x7, 0xfe, 0x0, 0x0, 0x30,
  0x60, 0x0, 0x6, 0x3, 0x0, 0x0, 0x30,
  0x70, 0x0, 0xe, 0x3, 0x0, 0x0, 0x60,
  0x30, 0x0, 0xc, 0x3, 0x0, 0x0, 0x60,
  0x18, 0x0, 0xc, 0x1, 0x80, 0x0, 0xc0,
  0xe, 0x0, 0x1c, 0x1, 0x80, 0x3, 0xc0,
  0x7, 0xc0, 0x1c, 0x1, 0x80, 0xf, 0x0,
  0x1, 0xfc, 0xe, 0x7, 0x83, 0xfe, 0x0,
  0x0, 0x7c, 0x7, 0xe, 0x3, 0xf0, 0x0,
  0x0, 0x0, 0x3, 0xfc, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x60, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x7f, 0xe0, 0x0, 0x7f, 0xe0, 0x0,
  0x0, 0x7f, 0x60, 0x0, 0x7f, 0xe0, 0x0,
  0x0, 0x60, 0x70, 0x0, 0xc0, 0x60, 0x0,
  0x0, 0xc0, 0x30, 0x0, 0xc0, 0x30, 0x0,
  0x0, 0xc0, 0x30, 0x0, 0xc0, 0x30, 0x0,
  0x0, 0xc0, 0x18, 0x1, 0x80, 0x30, 0x0,
  0x1, 0x80, 0x18, 0x1, 0x80, 0x18, 0x0,
  0x1, 0xc0, 0x18, 0x1, 0xc0, 0x38, 0x0,
  0x0, 0xe0, 0x70, 0x1, 0xe0, 0x70, 0x0,
  0x0, 0x78, 0xe0, 0x0, 0x71, 0xe0, 0x0,
  0x0, 0x1f, 0xc0, 0x0, 0x3f, 0x80, 0x0,
  0x0, 0xf, 0x0, 0x0, 0xf, 0x0, 0x0,
  0x0, 0x6, 0x0, 0x0, 0x6, 0x0, 0x0
};
static const unsigned char PROGMEM Thunderstorm[] =
{
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x3c, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xff, 0x0, 0x0, 0x0,
  0x0, 0x3, 0xf0, 0xff, 0x80, 0x0, 0x0,
  0x0, 0xf, 0xfc, 0xff, 0xd0, 0x0, 0x0,
  0x0, 0x1f, 0xfe, 0x7f, 0xfe, 0x0, 0x0,
  0x0, 0x3f, 0xff, 0x1, 0xff, 0x0, 0x0,
  0x0, 0x3f, 0xff, 0xb8, 0x7f, 0xe0, 0x0,
  0x0, 0x7f, 0xff, 0xff, 0x3f, 0xfc, 0x0,
  0x0, 0x7f, 0xff, 0xff, 0x9f, 0xfe, 0x0,
  0x0, 0x7f, 0xff, 0xff, 0xc1, 0xfe, 0x0,
  0x0, 0x7f, 0xff, 0xff, 0xe0, 0x3f, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0x9f, 0x0,
  0xf, 0xff, 0xff, 0xff, 0xff, 0xcf, 0x0,
  0x1f, 0xff, 0xff, 0xff, 0xff, 0xe7, 0x0,
  0x3f, 0xff, 0xff, 0xff, 0xff, 0xf2, 0x0,
  0x3f, 0xff, 0xff, 0xff, 0xff, 0xfa, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x7f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x3f, 0xff, 0xff, 0xff, 0xff, 0xf8, 0x0,
  0x3f, 0xff, 0xff, 0xff, 0xff, 0xf0, 0x0,
  0x1f, 0xff, 0xff, 0xff, 0xff, 0xe0, 0x0,
  0xf, 0xff, 0xff, 0xff, 0xff, 0xc0, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x1, 0xe0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0xe0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x7, 0xc0, 0x20, 0x0, 0x0,
  0x0, 0x10, 0xf, 0x80, 0x20, 0x0, 0x0,
  0x0, 0x18, 0xf, 0x0, 0x20, 0x0, 0x0,
  0x0, 0x38, 0x1e, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x38, 0x3f, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x18, 0x7f, 0x80, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x3, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x6, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x4, 0xc, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x8, 0x1c, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x10, 0x38, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x20, 0x70, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0xf8, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x30, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x20, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x40, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};
static const unsigned char PROGMEM Tornado[] =
{
  0x0, 0x0, 0x1f, 0xf8, 0x0, 0x0,
  0x0, 0x3f, 0xff, 0xff, 0xfc, 0x0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x1f, 0xff, 0xff, 0xff, 0xff, 0xf8,
  0x3b, 0xff, 0xff, 0xff, 0xff, 0xde,
  0x6f, 0xc7, 0xf8, 0x7f, 0xc6, 0xe7,
  0xee, 0xbc, 0x0, 0x0, 0x73, 0x77,
  0x6f, 0xff, 0xff, 0xff, 0xff, 0xe6,
  0x3f, 0xff, 0xff, 0xff, 0xff, 0x9c,
  0xf, 0xff, 0xff, 0xff, 0xff, 0xf8,
  0x3, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x4, 0x3f, 0xff, 0xff, 0xff, 0xc8,
  0x1, 0xf0, 0x3, 0xc1, 0xff, 0x30,
  0x0, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0x90,
  0x0, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x3, 0xff, 0xff, 0xff, 0xff, 0x90,
  0x0, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x1, 0xff, 0xff, 0xff, 0xff, 0x90,
  0x0, 0xff, 0xff, 0xff, 0xff, 0xe0,
  0x0, 0x3f, 0xff, 0xff, 0xff, 0x80,
  0x0, 0x3f, 0xff, 0xff, 0xfc, 0xc0,
  0x0, 0x1f, 0xff, 0xff, 0xff, 0x0,
  0x0, 0xf, 0xff, 0xff, 0xfc, 0xc0,
  0x0, 0xb, 0xff, 0xff, 0xff, 0x80,
  0x0, 0x7, 0xff, 0xff, 0xfe, 0x40,
  0x0, 0x3, 0xff, 0xff, 0xff, 0x80,
  0x0, 0x0, 0xff, 0xff, 0xff, 0x20,
  0x0, 0x0, 0x27, 0xff, 0xe3, 0x80,
  0x0, 0x0, 0x7, 0xff, 0xff, 0x20,
  0x0, 0x0, 0x0, 0x7f, 0xf1, 0xc0,
  0x0, 0x0, 0x0, 0x7f, 0xff, 0xf0,
  0x0, 0x0, 0x0, 0x1, 0xff, 0xf0,
  0x0, 0x0, 0x0, 0xf, 0xff, 0xf0,
  0x0, 0x0, 0x0, 0xf, 0xff, 0xf0,
  0x0, 0x0, 0x0, 0x7, 0xff, 0xf0,
  0x0, 0x0, 0x0, 0x7, 0xff, 0xe0,
  0x0, 0x0, 0x0, 0x1, 0xfc, 0xf0,
  0x0, 0x0, 0x0, 0x1, 0xff, 0xa0,
  0x0, 0x0, 0x0, 0x1, 0xff, 0xe0,
  0x0, 0x0, 0x0, 0x0, 0x3f, 0x80,
  0x0, 0x0, 0x0, 0x0, 0x1, 0x80,
  0x0, 0x0, 0x0, 0x1, 0xbe, 0x0,
  0x0, 0x0, 0x0, 0x7, 0xfe, 0x0,
  0x0, 0x0, 0x0, 0x11, 0xf8, 0x0,
  0x0, 0x0, 0x0, 0x8e, 0x0, 0x0,
  0x0, 0x0, 0x8, 0x68, 0xc0, 0x0,
  0x0, 0x0, 0xf, 0xb0, 0x0, 0x0,
  0x0, 0x0, 0xe, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xc, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x4, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x2, 0x0, 0x0, 0x0,
  0x0, 0x0, 0x0, 0x0, 0x0, 0x0
};

static const unsigned char PROGMEM ttshirt[] =
{
  0x0, 0x0, 0xe, 0x0, 0x7, 0x0, 0x0, 0x0,
  0x0, 0x0, 0xff, 0x0, 0xf, 0xf0, 0x0, 0x0,
  0x0, 0x3, 0xff, 0x0, 0xf, 0xfc, 0x0, 0x0,
  0x0, 0xf, 0xc3, 0x80, 0x1c, 0x3f, 0x0, 0x0,
  0x0, 0x1f, 0x1, 0xc0, 0x38, 0xf, 0x80, 0x0,
  0x0, 0x7c, 0x1, 0xe0, 0x78, 0x3, 0xe0, 0x0,
  0x0, 0xf0, 0x0, 0xff, 0xf0, 0x0, 0xf0, 0x0,
  0x1, 0xe0, 0x0, 0x3f, 0xc0, 0x0, 0x78, 0x0,
  0x3, 0x80, 0x0, 0x0, 0x0, 0x0, 0x1c, 0x0,
  0x7, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe, 0x0,
  0xe, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x0,
  0x1c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x7, 0x80,
  0x3c, 0x0, 0x0, 0x0, 0x0, 0x0, 0x3, 0xc0,
  0x38, 0x0, 0x0, 0x0, 0x0, 0x0, 0x1, 0xc0,
  0x70, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xe0,
  0xe0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x70,
  0xf0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xf0,
  0x78, 0x1, 0x0, 0x0, 0x0, 0x8, 0x1, 0xe0,
  0x3e, 0x3, 0x0, 0x0, 0x0, 0xc, 0x7, 0xc0,
  0xf, 0x7, 0x0, 0x0, 0x0, 0xe, 0xf, 0x0,
  0x7, 0xcf, 0x0, 0x0, 0x0, 0xf, 0x3e, 0x0,
  0x1, 0xff, 0x0, 0x0, 0x0, 0xf, 0xf8, 0x0,
  0x0, 0xff, 0x0, 0x0, 0x0, 0xf, 0xf0, 0x0,
  0x0, 0x3b, 0x0, 0x0, 0x0, 0xd, 0xc0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0x0, 0x0, 0x0, 0xc, 0x0, 0x0,
  0x0, 0x3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
  0x0, 0x3, 0xff, 0xff, 0xff, 0xfc, 0x0, 0x0,
  0x0, 0x1, 0xff, 0xff, 0xff, 0xf8, 0x0, 0x0
};
static const unsigned char PROGMEM ljacket[] =
{
  0x0, 0x0, 0x1f, 0xff, 0xc0, 0x0, 0x0,
  0x0, 0x0, 0x3f, 0xff, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x3c, 0x3, 0xe0, 0x0, 0x0,
  0x0, 0x0, 0x7c, 0x3, 0xf0, 0x0, 0x0,
  0x0, 0x0, 0x6e, 0x7, 0x30, 0x0, 0x0,
  0x0, 0x0, 0xe6, 0x6, 0x38, 0x0, 0x0,
  0x0, 0x0, 0xc7, 0xe, 0x18, 0x0, 0x0,
  0x0, 0x3, 0xe3, 0x1c, 0x3e, 0x0, 0x0,
  0x0, 0x7, 0xe3, 0x98, 0x3f, 0x0, 0x0,
  0x0, 0xe, 0x79, 0xf9, 0xf3, 0x80, 0x0,
  0x0, 0x1c, 0x3f, 0xff, 0xe1, 0xc0, 0x0,
  0x0, 0x38, 0xf, 0xff, 0x80, 0xe0, 0x0,
  0x0, 0xf0, 0x1, 0xf0, 0x0, 0x78, 0x0,
  0x1, 0xe0, 0x0, 0xe0, 0x0, 0x3c, 0x0,
  0x1, 0x80, 0x0, 0xc0, 0x0, 0xc, 0x0,
  0x1, 0x80, 0x0, 0xc0, 0x0, 0xc, 0x0,
  0x3, 0x80, 0x0, 0xc0, 0x0, 0xc, 0x0,
  0x3, 0x0, 0x0, 0xc0, 0x0, 0x6, 0x0,
  0x3, 0x0, 0x0, 0xc0, 0x0, 0x6, 0x0,
  0x3, 0x0, 0x0, 0xc0, 0x0, 0x6, 0x0,
  0x3, 0x0, 0x0, 0xc7, 0xe0, 0x6, 0x0,
  0x3, 0x6, 0x0, 0xc7, 0xe3, 0x6, 0x0,
  0x7, 0x7, 0x0, 0xc0, 0x7, 0x7, 0x0,
  0x6, 0x6, 0x0, 0xc0, 0x7, 0x3, 0x0,
  0x6, 0x6, 0x0, 0xc0, 0x7, 0x3, 0x0,
  0x6, 0xe, 0x0, 0xc0, 0x7, 0x83, 0x0,
  0x6, 0xe, 0x0, 0xc0, 0x7, 0x83, 0x0,
  0xe, 0xe, 0x0, 0xc0, 0x7, 0x83, 0x0,
  0xe, 0xe, 0x0, 0xc0, 0x7, 0x83, 0x80,
  0xc, 0xe, 0x0, 0xc0, 0x7, 0x83, 0x80,
  0xc, 0x1e, 0x0, 0xc0, 0x7, 0x81, 0x80,
  0xc, 0x1e, 0x0, 0xc0, 0x7, 0xc1, 0x80,
  0xc, 0x1e, 0x0, 0xc0, 0x7, 0xc1, 0x80,
  0x1c, 0x1e, 0x0, 0xc0, 0x7, 0xc1, 0xc0,
  0x1c, 0x1e, 0x0, 0xc0, 0x7, 0xc1, 0xc0,
  0x18, 0x3e, 0x0, 0xc0, 0x7, 0xe0, 0xc0,
  0x18, 0x36, 0x0, 0xc0, 0x7, 0x60, 0xc0,
  0x18, 0x36, 0x6, 0xc3, 0x7, 0x60, 0xc0,
  0x18, 0x36, 0xe, 0xc3, 0x87, 0x60, 0xc0,
  0x38, 0x36, 0x1c, 0xc1, 0xc7, 0x60, 0xe0,
  0x30, 0x76, 0x38, 0xc0, 0xe7, 0x70, 0xe0,
  0x30, 0x66, 0x70, 0xc0, 0x77, 0x30, 0x60,
  0x30, 0x66, 0x60, 0xc0, 0x37, 0x30, 0x60,
  0x30, 0x66, 0x0, 0xc0, 0x7, 0x30, 0x60,
  0x30, 0xe6, 0x0, 0xc0, 0x7, 0x38, 0x60,
  0x70, 0xe6, 0x0, 0xc0, 0x7, 0x38, 0x60,
  0x7f, 0xc7, 0xff, 0xff, 0xff, 0x1f, 0xf0,
  0x7f, 0xc7, 0xff, 0xff, 0xff, 0x1f, 0xf0,
  0x3f, 0x83, 0xff, 0xff, 0xfe, 0xf, 0xe0,
  0x31, 0x80, 0xc0, 0x0, 0x18, 0xc, 0x60,
  0x3b, 0x81, 0xc0, 0x0, 0x18, 0xe, 0xe0,
  0x3f, 0x81, 0xff, 0xff, 0xf8, 0xf, 0xe0,
...

This file has been truncated, please download it to see its full contents.

Omega Code

Python
To connect to Losant and send data to the Arduino
import time
import serial
from losantmqtt import Device

device = Device("xxxxx","xxxxx-xxxxx-xxxxx-xxxxx","xxxxx")
ser = serial.Serial(port='/dev/ttyS1', baudrate=9600, timeout=None)


def on_command(device, command):
	payload = ""
	spayload = ""
	print "Update recieved:"
	print command["name"]
	if command["name"] == "update":
		payload = str(command["payload"])
		print payload
	else:
		spayload = str(command["payload"])
		print spayload

	if spayload != "":
		intData = {"humi":"", "uvin":"","temp":"", "clco":""}
		summ = 0

		com=0
		for l in payload:
			if l != ",":
				com+=1
			else:
				break
		intData["humi"] = payload[10:com]

		payload = payload[com+11 : len(payload)]
		com=0
		for l in payload:
			if l != ",":
				com+=1
			else:
				break
		intData["uvin"] = payload[0 : com]

		payload = payload[com+11 : len(payload)]
		com=0
		for l in payload:
			if l != ",":
				com+=1
			else:
				break
		intData["temp"] = payload[0 : com]

		intData["clco"] = payload[com+11 : len(payload)-1]

		summ = spayload[9 : len(spayload)-1]
		print ""
		print summ
		print intData
		
		ser.write("u")
		while True:
			inn= ser.read(ser.inWaiting())
			if inn == "sUpdate":
				ser.write("y")
				break
			ser.reset_input_buffer()

		while True:
			inn= ser.read(ser.inWaiting())
			if inn == "uTemp":
				break
			ser.reset_input_buffer()
		ser.write(intData["temp"])

		while True:
			inn= ser.read(ser.inWaiting())
			if inn == "uHum":
				break
			ser.reset_input_buffer()
		ser.write(intData["humi"])

		while True:
			inn= ser.read(ser.inWaiting())
			if inn == "uCloud":
				break
			ser.reset_input_buffer()
		ser.write(intData["clco"])

		while True:
			inn= ser.read(ser.inWaiting())
			if inn == "uUV":
				break
			ser.reset_input_buffer()
		ser.write(intData["uvin"])

		while True:
			inn= ser.read(ser.inWaiting())
			if inn == "uSum":
				break
			ser.reset_input_buffer()
		ser.write(str(summ))

device.add_event_observer("command", on_command)

device.connect(blocking = False)

print "Connected"

while True:
	inn= ser.read(ser.inWaiting())
	if inn == "ReadyToStart":
		ser.write("y")
		break
	ser.reset_input_buffer()

print "heard"
while True:	
	device.loop()
	time.sleep(0.03)

Credits

Kenneth Yang

Kenneth Yang

8 projects • 100 followers
Maker, developer, 3D content creator

Comments