SlideShare a Scribd company logo
Full Stack Meat Project
‘GrillLog’
Kevin Kazmierczak
What are we talking about?
Creating a custom built dual probe BBQ
thermometer instead of buying one
Motivation
● Learn Arduino and basic electronics
● Be able to see grill temperatures on my devices
● Get notified when it was ready
● Learn AWS
● I thought it’d be similar in cost...
About Me
● http://www.kevinkaz.com
● @kazmiekr
● Solutions Architect for Universal Mind
● Two Alexa skills published
○ TechBuzz - MBTA Alerts
● 4 Apple Apps - Download them!
Taptronome FuelMate Battle Pet
Galaxy
MadBombz
Demo
Full Stack Meat Project with Arduino Node AWS Mobile
Full Stack Meat Project with Arduino Node AWS Mobile
Version 1
● Built using Parse :(
● Wifi using ESP8266
● Old blog article
Overview
● Arduino
● AWS IoT
● Lambda
● DynamoDB
● API Gateway
● SNS
● Alexa
● iOS
● Web
● Android
Warning
I am not an expert in any of this. Please feel free to add additional
context or information as needed.
Architecture Overview
Arduino Basics
● 14 Digital I/O Pins ( 6 PWM )
● 6 Analog
● 5V
● Embedded code written in C/C++ as a ‘Sketch’
Arduino Yun
● Device details
○ Built in wifi
○ Two processors, traditional ATmega and AR9331 (Linux)
○ Linux processor handles all the more CPU intensive tasks ( wifi / data processing )
○ ATmega handles reading/writing outputs
● How does it compare to others?
● Could you replace this with a RPi?
Fritzing Circuit Diagram
Learn more about Fritzing
GrillLog Implementation
● Every 10 seconds the device reads two
analog inputs
● Using a Steinhart–Hart equation, it
converts the analog resistance to
temperature
● Equation coefficients calibrated by
taking 3 different temperatures and
plugged into an online calculator
● Current readings are dumped to Serial
and the LCD display
Full Stack Meat Project with Arduino Node AWS Mobile
AWS Fine Print
● Sign up for a free tier trial account
● One year of free tier account services
● Some of the core services have very generous free limits even
without a trial account
● Pay for what you use
● Security
○ Ensure that there are roles setup that have access to execute the pieces of the
different services
AWS IoT
● Allows device to communicate over MQTT with encrypted traffic
● MQTT - Lightweight messaging protocol, think JMS or Pub/Sub
● Each device gets a signed certificate to use with messaging
● Devices can have shadows for offline sync
● Compatible devices - Anything that can do secure MQTT
● Use command line mosquitto to simulate device messaging
AWS IoT
AWS IoT Rules
● Rules can filter messages into different channels
● SQL query like syntax to set them up
● Use built in actions
● Lambda is most flexible action
GrillLog Implementation
● Yun has certificates installed
● Yun constructs JSON document of
temps
● Yun posts message on ‘templogs’ topic
● AWS has a rule that all incoming
‘templog’ messages are forwarded to a
lambda function
● Tweaked AWS config to solve memory
issues
AWS Lambda
● Runs code in response to events
● Pay for what you consume
● Develop in Javascript/Java/Python
● No servers to manage or scale
● Core service used to integrate across AWS
● Pricing
○ First 1 million requests per month are free
○ $0.20 per 1 million requests thereafter ($0.0000002 per request)
Lamba Basics
● Can start from one of their many templates
○ Language specific
○ Voice templates
○ Microservices
○ Hello world
● Export a ‘handler’ that takes and event, context, callback
● Do whatever
exports.handler = function(event, context, callback) {
console.log("value1 = " + event.key1);
console.log("value2 = " + event.key2);
callback(null, "some success message");
// or
// callback("some error type");
}
GrillLog Implementation
● Three lambda functions
○ Handle incoming IoT messages
○ Handle web requests
○ Handle voice requests
● All three lambdas just forward
into a custom
controller/service layer written
in Node.js
Custom Service Layer
● AWS supports Node 4.3 (finally!!!)
○ ES2016 (ES6) features
■ Promises/arrow functions/etc - check for support before using
● Controller processes input and utilizes services needed
○ Could swap out service implementations later if needed
● Promise based - AWS sdk methods can return a promise
● Easy to test via command line locally
● Use any packages you need via npm
● Service layer gets packaged with lambda
GrillLog Implementation
● Utilizes the aws-sdk package
● Deployed via shell script
○ Creates a zip file of required files
○ Calls AWS specific CLI tooling
○ Cleans up
● Uploads a zip per each lambda
endpoint
AWS DynamoDB
● NoSQL database similar to MongoDB
○ Schema-less
● Event driven hooks
● Easy to save data, not as easy to query
● Integration with other AWS services with streams/triggers
● Pricing
○ 25 GB in free tier, pay per usage
○ “For a little less than $0.25/day ($7.50/month), you could support an application
that performs 1 million writes and reads per day”
DynamoDB Basics
● Each table has a primary key (hash key) - Most unique
● Optional sort key - What will I most likely sort on?
● Get data out via either a ‘scan’ or ‘query’
○ ‘query’ requires primary key then you add filter criteria
● Indexes are required to speed up queries
● Sorting is tricky
● No date datatype, have to use a timestamp number
● Save whatever!
GrillLog Implementation
● Contains 3 tables
○ DeviceStatus
■ Current status information per device
○ TempLogs
■ Raw temp data from device
○ CookLogs
■ Archived cook data
AWS SNS - Simple Notification Service
● Pub-sub messaging
● Deliver across multiple protocols
○ iOS/Android
○ Email
○ SMS
● Hooks into other services
● Pricing
○ Your first 1 million push requests are free
○ $0.50 per 1 million Amazon SNS requests thereafter.
SNS Basics
● Create platform application
○ Need certificates to handle push integration with Apple/Google
● Devices can register to application with token
● Messages can be sent to the endpoints registered
● Raw or JSON
● Can tie multiple endpoints together via subscriptions
○ Topic could post to email and push together
● Push messages via AWS dashboard
GrillLog Implementation
● Devices are manually registered with
device token on dashboard
● Application endpoint created with
Apple push certificates from iTunes
provisioning portal
● Custom services push JSON formatted
messages for Apple devices
AWS API Gateway
● Deploy a customized API
● Define the resources that can be called
● SDK generation
● Authentication - keys, IAM, CORS
● Pricing
○ Free tier includes one million API calls per month for up to 12 months
○ $3.50 per million API calls received, plus the cost of data transfer out, in gigabytes.
API Gateway Basics
● You can create an API endpoint from the lambda ‘API endpoints’ tab
● Create resources as endpoints like
○ /status or /logs
● Add methods to those resources
○ GET/POST/PUT
● Point those endpoints to a lambda or proxy
● Configure the mappings - How will data pass through
● Customize as needed
● Create multiple ‘stages’ that you can deploy to
GrillLog Implementation
● Exposes REST endpoints
○ status/logs/startgrill/startcook/endgrill
● CORS enabled on status/logs for web
● Mobile clients handle state movement
● Entire request information is
forwarded to a lambda
● Lambda determines what the URL
should do and call proper controller
method in custom services
Alexa Integration
● Registered skill on amazon developer site
● Forward to lambda or custom deployed services (HTTPS)
● Register intents ( voice input formats )
● Deploy to app store - Requires approval
○ They are VERY strict that you follow the guidelines
○ You could get a free t-shirt
● Test on developer site
○ Lets you hear responses and see source JSON
● Detailed skill creation walkthrough
Alexa Skill Configuration
UtterancesIntents
GrillLog Implementation
● Registered skill forwarding to lambda
● Simple ‘what’s the status’ intent
● Calls into custom services to grab
current status
● Converts response into a text string
passed back to voice services
Logging
● Configure services to write CloudWatch logs
● Add alerts if needed
iOS Application
● Apple developer account - $99
○ Be able to deploy to devices and provision
● Configured app in iTunes connect
● Generate APNS certs imported to SNS
● Written in Swift
● Polls for temp status every 10 sec
● Regenerates chart every 30 sec
● Uses ‘Charts’ project for charting
● Sends push notifications
○ Warm temperature threshold
○ Food temperature
● Background fetch to detect offline situations
Web Application
● Deployed on http://grilllog.kevinkaz.com
● Written in ES2016 transpiled in webpack
● Uses D3 to handle charting
● Uses a fetch polyfill
● Styling done in Less
Android Application
● Written by coworker, Chris Scott
● Mortar and Flow for view lifecycles
● Dagger for dependency injection
● RxJava and Retrofit for service integration
Future Plans
● PID Controller for fan controlled temperature
control
● Apple Watch Complication
● Waterproof case
● More notifications
● Review past cooks
● Archive condensed logs
Questions

More Related Content

PDF
Microservices with AWS Lambda and the Serverless Framework
PDF
Open stack ocata summit enabling aws lambda-like functionality with openstac...
PDF
AWS Lambda from the Trenches
PPTX
Serverless Apps with Open Whisk
PDF
Netflix and Containers: Not A Stranger Thing
PDF
NetflixOSS and ZeroToDocker Talk
PDF
Netflix Cloud Platform and Open Source
PDF
New Features of Kubernetes v1.2.0 beta
Microservices with AWS Lambda and the Serverless Framework
Open stack ocata summit enabling aws lambda-like functionality with openstac...
AWS Lambda from the Trenches
Serverless Apps with Open Whisk
Netflix and Containers: Not A Stranger Thing
NetflixOSS and ZeroToDocker Talk
Netflix Cloud Platform and Open Source
New Features of Kubernetes v1.2.0 beta

What's hot (20)

PDF
Triangle Devops Meetup 10/2015
PDF
AWS temporary credentials challenges in prevention detection mitigation
PDF
NetflixOSS Meetup S6E2 - Spinnaker, Kayenta
PPTX
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
PDF
NetflixOSS Meetup S6E1 - Titus & Containers
PDF
Building a Serverless company with Node.js, React and the Serverless Framewor...
PPTX
REAL Expert Alliance OCI series part 4 - OKE
PPTX
End-to-end test automation with Endtest.dev
PDF
CMP376 - Another Week, Another Million Containers on Amazon EC2
PDF
Netflix oss season 1 episode 3
PPTX
Ibm cloud nativenetflixossfinal
PDF
CS80A Foothill College Open Source Talk
PPTX
Netflix OSS Meetup Season 5 Episode 1
PPTX
Icinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
PDF
DCEU 18: From Monolith to Microservices
PPTX
Netflix0SS Services on Docker
PDF
Terrascan - Cloud Native Security Tool
PDF
Netflix Open Source: Building a Distributed and Automated Open Source Program
PDF
NetflixOSS Meetup season 3 episode 1
PPTX
Serverless Architectures
Triangle Devops Meetup 10/2015
AWS temporary credentials challenges in prevention detection mitigation
NetflixOSS Meetup S6E2 - Spinnaker, Kayenta
Part 3 of the REAL Webinars on Oracle Cloud Native Application Development (J...
NetflixOSS Meetup S6E1 - Titus & Containers
Building a Serverless company with Node.js, React and the Serverless Framewor...
REAL Expert Alliance OCI series part 4 - OKE
End-to-end test automation with Endtest.dev
CMP376 - Another Week, Another Million Containers on Amazon EC2
Netflix oss season 1 episode 3
Ibm cloud nativenetflixossfinal
CS80A Foothill College Open Source Talk
Netflix OSS Meetup Season 5 Episode 1
Icinga Camp Kuala Lumpur 2015 Opening By Eric Lippmann
DCEU 18: From Monolith to Microservices
Netflix0SS Services on Docker
Terrascan - Cloud Native Security Tool
Netflix Open Source: Building a Distributed and Automated Open Source Program
NetflixOSS Meetup season 3 episode 1
Serverless Architectures
Ad

Similar to Full Stack Meat Project with Arduino Node AWS Mobile (20)

PDF
IOT Based Smart City: Weather, Traffic and Pollution Monitoring System
PPTX
Reply Bootcamp Rome - Mastering AWS - IoT Bootcamp
PPTX
Unit 6.pptx
PPTX
IoT enable smoker for great BBQ
PDF
UNIT V.pdf
PDF
Intro to AWS IoT - Pop-up Loft London
PDF
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
PDF
AWS Summit Singapore 2019 | AWS Techfest Opening Keynote
PDF
Why your next serverless project should use AWS AppSync
PDF
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
PPTX
IoT Smart Home
PDF
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
PPTX
Using AWS To Build A Scalable Machine Data Analytics Service
PDF
Build a mobile app serverless with AWS Lambda
PDF
AWS Services - Part 1
PDF
Connecting the Unconnected: IoT Made Simple
PDF
House Temperature Monitoring using AWS IoT And Raspberry Pi
PPTX
AWS re:Invent recap
PPTX
Serverless GraphQL. AppSync 101
PDF
GraphQL backend with AWS AppSync & AWS Lambda
IOT Based Smart City: Weather, Traffic and Pollution Monitoring System
Reply Bootcamp Rome - Mastering AWS - IoT Bootcamp
Unit 6.pptx
IoT enable smoker for great BBQ
UNIT V.pdf
Intro to AWS IoT - Pop-up Loft London
AWS IoT 핸즈온 워크샵 - AWS IoT 소개 및  AWS 서비스 연동 방법 (김무현 솔루션즈 아키텍트)
AWS Summit Singapore 2019 | AWS Techfest Opening Keynote
Why your next serverless project should use AWS AppSync
AWS Innovate: Building an Internet Connected Camera with AWS IoT- Tim Cruse
IoT Smart Home
AWS IoT 및 Mobile Hub 서비스 소개 (김일호) :: re:Invent re:Cap Webinar 2015
Using AWS To Build A Scalable Machine Data Analytics Service
Build a mobile app serverless with AWS Lambda
AWS Services - Part 1
Connecting the Unconnected: IoT Made Simple
House Temperature Monitoring using AWS IoT And Raspberry Pi
AWS re:Invent recap
Serverless GraphQL. AppSync 101
GraphQL backend with AWS AppSync & AWS Lambda
Ad

Recently uploaded (20)

PDF
top salesforce developer skills in 2025.pdf
PDF
medical staffing services at VALiNTRY
PDF
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
PDF
Nekopoi APK 2025 free lastest update
PDF
How Creative Agencies Leverage Project Management Software.pdf
PDF
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
PPTX
history of c programming in notes for students .pptx
PPTX
Introduction to Artificial Intelligence
PDF
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
PDF
Design an Analysis of Algorithms I-SECS-1021-03
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
PPTX
Essential Infomation Tech presentation.pptx
PDF
Digital Strategies for Manufacturing Companies
PDF
Internet Downloader Manager (IDM) Crack 6.42 Build 41
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PDF
wealthsignaloriginal-com-DS-text-... (1).pdf
PDF
Design an Analysis of Algorithms II-SECS-1021-03
PDF
Odoo Companies in India – Driving Business Transformation.pdf
PDF
Upgrade and Innovation Strategies for SAP ERP Customers
PDF
How to Migrate SBCGlobal Email to Yahoo Easily
top salesforce developer skills in 2025.pdf
medical staffing services at VALiNTRY
Why TechBuilder is the Future of Pickup and Delivery App Development (1).pdf
Nekopoi APK 2025 free lastest update
How Creative Agencies Leverage Project Management Software.pdf
SAP S4 Hana Brochure 3 (PTS SYSTEMS AND SOLUTIONS)
history of c programming in notes for students .pptx
Introduction to Artificial Intelligence
Audit Checklist Design Aligning with ISO, IATF, and Industry Standards — Omne...
Design an Analysis of Algorithms I-SECS-1021-03
Internet Downloader Manager (IDM) Crack 6.42 Build 42 Updates Latest 2025
Essential Infomation Tech presentation.pptx
Digital Strategies for Manufacturing Companies
Internet Downloader Manager (IDM) Crack 6.42 Build 41
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
wealthsignaloriginal-com-DS-text-... (1).pdf
Design an Analysis of Algorithms II-SECS-1021-03
Odoo Companies in India – Driving Business Transformation.pdf
Upgrade and Innovation Strategies for SAP ERP Customers
How to Migrate SBCGlobal Email to Yahoo Easily

Full Stack Meat Project with Arduino Node AWS Mobile

  • 1. Full Stack Meat Project ‘GrillLog’ Kevin Kazmierczak
  • 2. What are we talking about? Creating a custom built dual probe BBQ thermometer instead of buying one
  • 3. Motivation ● Learn Arduino and basic electronics ● Be able to see grill temperatures on my devices ● Get notified when it was ready ● Learn AWS ● I thought it’d be similar in cost...
  • 4. About Me ● http://www.kevinkaz.com ● @kazmiekr ● Solutions Architect for Universal Mind ● Two Alexa skills published ○ TechBuzz - MBTA Alerts ● 4 Apple Apps - Download them! Taptronome FuelMate Battle Pet Galaxy MadBombz
  • 8. Version 1 ● Built using Parse :( ● Wifi using ESP8266 ● Old blog article
  • 9. Overview ● Arduino ● AWS IoT ● Lambda ● DynamoDB ● API Gateway ● SNS ● Alexa ● iOS ● Web ● Android
  • 10. Warning I am not an expert in any of this. Please feel free to add additional context or information as needed.
  • 12. Arduino Basics ● 14 Digital I/O Pins ( 6 PWM ) ● 6 Analog ● 5V ● Embedded code written in C/C++ as a ‘Sketch’
  • 13. Arduino Yun ● Device details ○ Built in wifi ○ Two processors, traditional ATmega and AR9331 (Linux) ○ Linux processor handles all the more CPU intensive tasks ( wifi / data processing ) ○ ATmega handles reading/writing outputs ● How does it compare to others? ● Could you replace this with a RPi?
  • 14. Fritzing Circuit Diagram Learn more about Fritzing
  • 15. GrillLog Implementation ● Every 10 seconds the device reads two analog inputs ● Using a Steinhart–Hart equation, it converts the analog resistance to temperature ● Equation coefficients calibrated by taking 3 different temperatures and plugged into an online calculator ● Current readings are dumped to Serial and the LCD display
  • 17. AWS Fine Print ● Sign up for a free tier trial account ● One year of free tier account services ● Some of the core services have very generous free limits even without a trial account ● Pay for what you use ● Security ○ Ensure that there are roles setup that have access to execute the pieces of the different services
  • 18. AWS IoT ● Allows device to communicate over MQTT with encrypted traffic ● MQTT - Lightweight messaging protocol, think JMS or Pub/Sub ● Each device gets a signed certificate to use with messaging ● Devices can have shadows for offline sync ● Compatible devices - Anything that can do secure MQTT ● Use command line mosquitto to simulate device messaging
  • 20. AWS IoT Rules ● Rules can filter messages into different channels ● SQL query like syntax to set them up ● Use built in actions ● Lambda is most flexible action
  • 21. GrillLog Implementation ● Yun has certificates installed ● Yun constructs JSON document of temps ● Yun posts message on ‘templogs’ topic ● AWS has a rule that all incoming ‘templog’ messages are forwarded to a lambda function ● Tweaked AWS config to solve memory issues
  • 22. AWS Lambda ● Runs code in response to events ● Pay for what you consume ● Develop in Javascript/Java/Python ● No servers to manage or scale ● Core service used to integrate across AWS ● Pricing ○ First 1 million requests per month are free ○ $0.20 per 1 million requests thereafter ($0.0000002 per request)
  • 23. Lamba Basics ● Can start from one of their many templates ○ Language specific ○ Voice templates ○ Microservices ○ Hello world ● Export a ‘handler’ that takes and event, context, callback ● Do whatever exports.handler = function(event, context, callback) { console.log("value1 = " + event.key1); console.log("value2 = " + event.key2); callback(null, "some success message"); // or // callback("some error type"); }
  • 24. GrillLog Implementation ● Three lambda functions ○ Handle incoming IoT messages ○ Handle web requests ○ Handle voice requests ● All three lambdas just forward into a custom controller/service layer written in Node.js
  • 25. Custom Service Layer ● AWS supports Node 4.3 (finally!!!) ○ ES2016 (ES6) features ■ Promises/arrow functions/etc - check for support before using ● Controller processes input and utilizes services needed ○ Could swap out service implementations later if needed ● Promise based - AWS sdk methods can return a promise ● Easy to test via command line locally ● Use any packages you need via npm ● Service layer gets packaged with lambda
  • 26. GrillLog Implementation ● Utilizes the aws-sdk package ● Deployed via shell script ○ Creates a zip file of required files ○ Calls AWS specific CLI tooling ○ Cleans up ● Uploads a zip per each lambda endpoint
  • 27. AWS DynamoDB ● NoSQL database similar to MongoDB ○ Schema-less ● Event driven hooks ● Easy to save data, not as easy to query ● Integration with other AWS services with streams/triggers ● Pricing ○ 25 GB in free tier, pay per usage ○ “For a little less than $0.25/day ($7.50/month), you could support an application that performs 1 million writes and reads per day”
  • 28. DynamoDB Basics ● Each table has a primary key (hash key) - Most unique ● Optional sort key - What will I most likely sort on? ● Get data out via either a ‘scan’ or ‘query’ ○ ‘query’ requires primary key then you add filter criteria ● Indexes are required to speed up queries ● Sorting is tricky ● No date datatype, have to use a timestamp number ● Save whatever!
  • 29. GrillLog Implementation ● Contains 3 tables ○ DeviceStatus ■ Current status information per device ○ TempLogs ■ Raw temp data from device ○ CookLogs ■ Archived cook data
  • 30. AWS SNS - Simple Notification Service ● Pub-sub messaging ● Deliver across multiple protocols ○ iOS/Android ○ Email ○ SMS ● Hooks into other services ● Pricing ○ Your first 1 million push requests are free ○ $0.50 per 1 million Amazon SNS requests thereafter.
  • 31. SNS Basics ● Create platform application ○ Need certificates to handle push integration with Apple/Google ● Devices can register to application with token ● Messages can be sent to the endpoints registered ● Raw or JSON ● Can tie multiple endpoints together via subscriptions ○ Topic could post to email and push together ● Push messages via AWS dashboard
  • 32. GrillLog Implementation ● Devices are manually registered with device token on dashboard ● Application endpoint created with Apple push certificates from iTunes provisioning portal ● Custom services push JSON formatted messages for Apple devices
  • 33. AWS API Gateway ● Deploy a customized API ● Define the resources that can be called ● SDK generation ● Authentication - keys, IAM, CORS ● Pricing ○ Free tier includes one million API calls per month for up to 12 months ○ $3.50 per million API calls received, plus the cost of data transfer out, in gigabytes.
  • 34. API Gateway Basics ● You can create an API endpoint from the lambda ‘API endpoints’ tab ● Create resources as endpoints like ○ /status or /logs ● Add methods to those resources ○ GET/POST/PUT ● Point those endpoints to a lambda or proxy ● Configure the mappings - How will data pass through ● Customize as needed ● Create multiple ‘stages’ that you can deploy to
  • 35. GrillLog Implementation ● Exposes REST endpoints ○ status/logs/startgrill/startcook/endgrill ● CORS enabled on status/logs for web ● Mobile clients handle state movement ● Entire request information is forwarded to a lambda ● Lambda determines what the URL should do and call proper controller method in custom services
  • 36. Alexa Integration ● Registered skill on amazon developer site ● Forward to lambda or custom deployed services (HTTPS) ● Register intents ( voice input formats ) ● Deploy to app store - Requires approval ○ They are VERY strict that you follow the guidelines ○ You could get a free t-shirt ● Test on developer site ○ Lets you hear responses and see source JSON ● Detailed skill creation walkthrough
  • 38. GrillLog Implementation ● Registered skill forwarding to lambda ● Simple ‘what’s the status’ intent ● Calls into custom services to grab current status ● Converts response into a text string passed back to voice services
  • 39. Logging ● Configure services to write CloudWatch logs ● Add alerts if needed
  • 40. iOS Application ● Apple developer account - $99 ○ Be able to deploy to devices and provision ● Configured app in iTunes connect ● Generate APNS certs imported to SNS ● Written in Swift ● Polls for temp status every 10 sec ● Regenerates chart every 30 sec ● Uses ‘Charts’ project for charting ● Sends push notifications ○ Warm temperature threshold ○ Food temperature ● Background fetch to detect offline situations
  • 41. Web Application ● Deployed on http://grilllog.kevinkaz.com ● Written in ES2016 transpiled in webpack ● Uses D3 to handle charting ● Uses a fetch polyfill ● Styling done in Less
  • 42. Android Application ● Written by coworker, Chris Scott ● Mortar and Flow for view lifecycles ● Dagger for dependency injection ● RxJava and Retrofit for service integration
  • 43. Future Plans ● PID Controller for fan controlled temperature control ● Apple Watch Complication ● Waterproof case ● More notifications ● Review past cooks ● Archive condensed logs