Internet of Things (IoT) Information Display Benjamin Daszkiewicz - - PowerPoint PPT Presentation
Internet of Things (IoT) Information Display Benjamin Daszkiewicz - - PowerPoint PPT Presentation
Internet of Things (IoT) Information Display Benjamin Daszkiewicz & Jacob Nading Advised by Dr. Aleksander Malinowski Contents Introduction Components Announcements Hardware Advertisements Concept System-Level
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of labor ▪ Future ▪ References
2
Introduction
▪ Multi-facet ▪ Wall-mounted ▪ Touch-screen display ▪ Internet connectivity
Outside Professors’ Offices Displays:
▪ Weather ▪ Calendar ▪ Announcements ▪ Advertisements /
Pictures
3
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of labor ▪ Future ▪ References
4
Concept
▪ Attractive, User-Friendly Interface ▪ Daily Calendar Data ▪ Current and Forecast Weather Data ▪ Announcements / Short Memos ▪ Advertisements, Picture Slideshow ▪ Availability ‘Status’ ▪ Reliable Technologies ▪ Python 3.x ▪ Openweathermap.org for Python ▪ Google Calendar API for Python ▪ Twitter API for Python
5
IoT Information Display
Figure 1
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of labor ▪ Future ▪ References
6
Previous Work (2016-2017)
▪ Cole Lindeman & Jason Morris ▪ IoT Smart Calendar ▪ Browser based interface
▪ php, HTML, etc.
▪ Relies on default view for calendar
7
Figure 2
Similar Projects
DAKboard
▪ Customizable
Interface
▪ Photos, Calendar,
and Weather 8 Smart Mirror
▪ (Amazon) Alexa
Option
▪ 2-way mirror with
Monitor attached
Raspberry Pi Framed Informational Display
▪ Monitor enclosed
within a frame
▪ Buttons on side to
toggle between sections
Figure 3 Figure 4 Figure 5
Research/Initial Design
▪ wxPython
▪ Learning curve too steep
▪ AppJar and Tk
▪ High level ▪ Easy event handling ▪ Easy timer interrupts ▪ setPollTime(ms) ▪ registerEvent(function) 9
Figure 6
10
Research/Initial Design- DFD
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of labor ▪ Future ▪ References
11
Components - Hardware
▪ Raspberry Pi Model 3B
12
▪ 13” Multi-touch LCD Monitor
13
System-Level Diagram
14
Mounting Diagram
Front View Side View Figure 7
Components - Software
▪ Debian Rasbian Stretch OS ▪ Python 3.6 ▪ appJar and Tk GUI Module ▪ Google Calendar API ▪ Twitter API ▪ OpenWeatherMap.org API ▪ Surise-Sunset.org API ▪ Support modules
▪ urllib2 ▪ datetime ▪ PIL ▪ os 15
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of labor ▪ Future ▪ References
16
Modes of Operation
▪ Power off
▪ Raspberry Pi and monitor are completely powered off
▪ Operating system
▪ Raspberry Pi and monitor are on, but IoT Display program is not running ▪ Raspbian Debian Stretch will be running
▪ Home page
▪ IoT Display program is running ▪ Times out after 10 minutes of no activity
▪ Advertisement loop
▪ Full screen class advertisements display after 10 minutes of no user input ▪ User input will close advertisement and return to home page
17
Modes of Operation Diagram
Power off Operating system Power up RPi Power down RPi Power up RPi Power down RPi Home page User touch input 10 min. timeout
Advertisement
18
Figure 8
Functionality
▪ Google Calendar ▪ Weather
▪ Dynamic Background & Icon
▪ Twitter Announcements
▪ Availability ‘Status’
19
Figure 9
Functionality – Google Calendar
▪ UTC time data sent through api
▪ Creates ‘morning’ start time ▪ Creates ‘night’ end time ▪ To pull calendar events from
▪ Hardcoded API keys to pull event
data
▪ Start time ▪ End time ▪ Event title ▪ colorId
▪ 4 Day View ▪ Colors based on original ▪ Setup document for API is on website
20
Figure 10
Functionality - Weather
▪ HTTP request using URL
from weather.gov
▪ URL includes location and
settings bits
▪ Generates .png file ▪ Saved and displayed in
GUI using urllib2
21
Figure 11
Functionality – Twitter Announcements
▪ Displays more tweets from
timeline
▪ ‘Status’ updates based on
specific strings:
▪ *available ▪ *away ▪ *busy ▪ *hide or *offline
▪ Setup document for API is
- n website
22
Figure 12
Functionality – Advertisements / Pictures
23
Figure 13
24
GUI Process Diagram
Figure 14
25
GUI Process Diagram (1)
Figure 15
26
GUI Process Diagram (2)
Figure 16
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of labor ▪ Future ▪ References
27
Parts List
28
Qty Item Description Source Price/Unit Price 1 Eleduino 13.3” 1080P IPS Capacitive Touch Display (sky black) Amazon.com $198.00 $189.00 2 CanaKit Raspberry Pi 3 Kit Amazon.com $49.99 $99.98 2 SanDisk Ultra 8GB Class 10 UHS-I MicroSDHC Amazon.com $9.99 $19.98 1 Rankie Micro HDMI to HDMI Cable, 10 Feet Amazon.com $9.99 $9.99 1 Micro USB Cable, 3 Pack 10 ft Braided High Speed USB 2.0 A Male to Micro B Amazon.com $10.99 $10.99 Subtotal: $329.94
Table 1
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of Labor ▪ Future ▪ References
29
Work as Scheduled (Fall 2017)
30
Date It Item m Due / Requir iremen ement t Met et Fall 2017 11/16/17 Proposal presentation draft * 11/30/17 Project proposal and presentation * 12/7/17 Website with proposal presentation and report * 12/7/17 Non-functional, rough layout prototype for display written in Python 12/7/17 Majority of graphical project aspects created * Department deliverable deadline Project completion milestone Table 2
31
Date It Item Due / Requir irement ement Met et Spring 2018 2/16/18 Working calendar and announcements prototype (API work) with home screen and functional weather icon 2/23/18 Added advertisements and display mounted 3/9/18 Student expo registration * 3/16/18 Paging functionality (Geofence work) 3/23/18 Weather/radar screen 3/29/18 Final report * 4/5/18 Student Expo poster * 4/19/18 Final presentation draft * 5/1/18 All materials completed and uploaded to website * * Department deliverable deadline Project completion milestone
Work As Scheduled (Spring 2018)
Table 3
Work As Completed (Spring 2018)
32
Week Ben’s Work Jacob’s Work Spring 2018 2/5 weather.py module completed Weather icons completed 2/12 Homepage GUI design with wxPython Weather backgrounds completed 2/19 Homepage GUI design with wxPython Google api research 2/26 Research/experiment with GUI modules Basic Google api foundation along with working code and call functions 3/5 Homepage GUI design with appJar Calling and analyzing more data sent from the Google api code 3/12 Spring break Spring Break 3/19 Display weather on homepage Start research on Twitter api; Google api ‘endtime’ variable functions correctly Table 4
Work As Completed (Spring 2018)
33
Week Ben’s Work Jacob’s Work Spring 2018 3/26 Convert homepage background and graphics to canvas elements Base Twitter api completed; Google api configured with newly configured ‘colorId’ variable 4/2 Display calendar on home page Cleaning Google api, fixing ‘morning’ and ‘night’ times to help configure UTC time 4/9 Timer interrupts and interrupt handler Cleaning of Twitter api code 4/16 Create popup content boxes and display Twitter on home page Twitter ‘status’ variable created and amended to the api code 4/23 Created ads using timer interrupts Fill popup content boxes for calendar, weather, and announcements Complete clean, configuring, setup/installation guide, and uploading to GitHub complete 4/30 TODO: Finalize website and deliverables Table 5
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of Labor ▪ Future ▪ References
34
Division of Labor
Benjamin Daszkiewicz
▪ GUI Programming ▪ Main page script will pull returned
values of all other functions for display
▪ Weather functionality ▪ Weather change based on current
conditions
▪ Forecast page
Jacob Nading
▪ Graphic components ▪ Icon/component/background
design
▪ Layout and visual design ▪ Google
▪ Google Calendar API
▪ Twitter ▪ Twitter API ▪ ‘Status’ system
35
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of Labor ▪ Future ▪ References
36
Future Direction
▪ Geofencing via cellular data ▪ Automatic offline or hide for status after a set period of time ▪ Voice Capabilities?
▪ Amazon Alexa ▪ Google Voice
▪ Creating Tweets or Calendar Events on the device? ▪ Show pictures via Twitter
37
Future Direction Continued
▪ Sensors ▪ Camera ▪ Door sensor ▪ Online Expansion ▪ Remote usability ▪ Get notified on certain updates in an easy-to-read format ▪ See a broader week schedule without having to look in-person ▪ Email and/or text instructor from Display ▪ Appointment Scheduler
▪ Youcanbookme api 38
Contents
▪ Introduction ▪ Concept ▪ Research & prior work ▪ Previous Project ▪ Similar Projects ▪ Research ▪ Components ▪ Hardware ▪ System-Level Diagram ▪ Mounting Diagram ▪ Software ▪ Functionality ▪ Modes of Operation ▪ Calendar ▪ Weather ▪ Announcements ▪ Advertisements
▪ GUI Process Diagram
▪ Parts list ▪ Schedule ▪ Division of Labor ▪ Future ▪ References
39
References
▪ Google Calendar API
▪ https://developers.google.com/google-apps/calendar/
▪ Twitter API
▪ https://developer.twitter.com/en/docs ▪ https://pypi.org/project/twitter/
▪ Weather request
▪ https://www.weather.gov/
▪ appJar
▪ http://appjar.info/
▪ Project Website
▪ http://ee.bradley.edu/projects/proj2018/iot_display/
40
41