SlideShare a Scribd company logo
We Power
Connected Things
Hardware development at the speed of software. www.wildernesslabs.co
Bryan Costanich
@bryancostanich
- The dream of connected things
- Controlling household electricity with a
relay
- Exposing control via a web API
- Connecting to that Web API from a
Xamarin App
Building a Netduino Powered
Connected Coffee Maker
Wilderness Labs
Relaunched Netduino in March.
Added Mac support.
Netduino stock at Amazon.com and
Mouser.com (international).
Building a vNext connected things
platform.
Actively working on Netduino.
developer.wildernesslabs.co
community.wildernesslabs.co
Connected Coffee Maker
Solution
Power Control
Household electricity (110V/240V) is
controlled by a relay.
Relays are electromechanical and isolate
circuits.
Controlled by a simple on/off via a digital
I/O pin.
Design @ 3D_Print_Designs repo
Assembly instructions in blog.
OutputPort relay =
new OutputPort(Pins.GPIO_PIN_D2, false);
relay.Write(true);
Web Server
Purpose-built for Netduino.
Modern, RESTful Web API/
Built-in JSON Support.
Maple Web Server Host
public class RequestHandler : RequestHandlerBase {
private static bool _isPowerOn;
public void getStatus() { StatusResponse(); }
public void postTurnOn() { TogglePower(true); StatusResponse(); }
public void postTurnOff() { TogglePower(false); StatusResponse(); }
private void TogglePower(bool val) {
_isPowerOn = val;
Ports.ONBOARD_LED.Write(val);
Ports.GPIO_PIN_D1.Write(val);
}
private void StatusResponse() {
this.Context.Response.ContentType = "application/json";
this.Context.Response.StatusCode = 200;
Hashtable result = new Hashtable { { "isPowerOn", _isPowerOn.ToString().ToLower() } };
this.Send(result);
}
}
get:/Status
post:/TurnOn
post:/TurnOff
Xamarin Mobile App
Xamarin.Forms + HttpClient
async private Task<bool> PowerCommand(string command) {
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("http://" + _hostAddress + "/" + _apiBase);
var response = await client.PostAsync(command, null);
if (response.IsSuccessStatusCode) {
if (command == "turnon") {
App.ApplianceStatus = ApplianceStatus.On;
} else {
App.ApplianceStatus = ApplianceStatus.Off;
}
}
return response.IsSuccessStatusCode;
}
Possible Expansion Projects
On timer.
Feedback loop for heat control w/temp sensor; what temp do
you like your coffee?
Coffee done push notification.
Scheduler.
Thanks.
www.wildernesslabs.co
slideshare.net/bryancostanich
Code here
Github.com/WildernessLabs/Netduino_Samples/Connected_Coffee_Maker

More Related Content

PPTX
Getting Started with Amazon Alexa on the Raspberry Pi
PPTX
Voice controlled home automation
PDF
Hardware hackers - hacking appliances with netduino + xamarin
PDF
Teardown Conference: hacking appliances with netduino + xamarin
PPTX
JavaBin: Reacting to an event driven world
PPTX
Laurentiu macovei meteor. a better way of building apps
PPTX
Offline Webapps
PDF
IRJET- Smart Power Optimization with IoT
Getting Started with Amazon Alexa on the Raspberry Pi
Voice controlled home automation
Hardware hackers - hacking appliances with netduino + xamarin
Teardown Conference: hacking appliances with netduino + xamarin
JavaBin: Reacting to an event driven world
Laurentiu macovei meteor. a better way of building apps
Offline Webapps
IRJET- Smart Power Optimization with IoT

Similar to Hacking your coffee maker; building a connected appliance with Netduino and Xamarin (20)

PDF
Embedded web server application based automation and monitoring system
PDF
Ionic event: March 2021
PPTX
Home Energy Management Gateway
PPTX
VJUG - Reacting to an event driven world
PPTX
FYP PPT
PDF
HyPPO - Hybrid Performance-aware Power-capping Orchestrator
PPTX
A Globally controlled Embedded Switch node for Electrical Devices at Home by...
PPTX
A Globally controlled Embedded Switch node for Electrical Devices at Home by...
PDF
Graduation Project on "SMART HOMES & RENEWABLE ENERGY" PowerPoint Presentation
PDF
DOC
Automation of residential electricity cut off using network embedded controller
PDF
IOT: Home Automation using Android Application
PDF
vensoft technologies http://www.ieeedeveloperslabs.in/ pc controlled pick an...
PDF
Development of Smart Home security system using Raspberry Pi
PPTX
Controlling the world with Arduino & JavaScript
PPTX
Controlling the World with Arduino,JavaScript & Azure
PPTX
Karsten Held: Internet Of Things (IOT), SmartBuilding & SmartHome Research (J...
PPTX
Jfokus - Reacting to an event-driven world
PDF
Embedded Web Server based Home Automation using Raspberry PI
PPTX
Home automation under wi fi through android apps from any smart phone
Embedded web server application based automation and monitoring system
Ionic event: March 2021
Home Energy Management Gateway
VJUG - Reacting to an event driven world
FYP PPT
HyPPO - Hybrid Performance-aware Power-capping Orchestrator
A Globally controlled Embedded Switch node for Electrical Devices at Home by...
A Globally controlled Embedded Switch node for Electrical Devices at Home by...
Graduation Project on "SMART HOMES & RENEWABLE ENERGY" PowerPoint Presentation
Automation of residential electricity cut off using network embedded controller
IOT: Home Automation using Android Application
vensoft technologies http://www.ieeedeveloperslabs.in/ pc controlled pick an...
Development of Smart Home security system using Raspberry Pi
Controlling the world with Arduino & JavaScript
Controlling the World with Arduino,JavaScript & Azure
Karsten Held: Internet Of Things (IOT), SmartBuilding & SmartHome Research (J...
Jfokus - Reacting to an event-driven world
Embedded Web Server based Home Automation using Raspberry PI
Home automation under wi fi through android apps from any smart phone

More from bryan costanich (7)

PPTX
Futures in Computing
PPT
Advanced android app lifecycle + Patterns
PPT
C# rocks
PPT
Cross Platform Mobile Development with Xamarin
KEY
Going mobile - A Technical Job Prep for Vassar Students
PPT
Cross-Platform Mobile Development in Visual Studio
KEY
Cross Platform Development with Xamarin
Futures in Computing
Advanced android app lifecycle + Patterns
C# rocks
Cross Platform Mobile Development with Xamarin
Going mobile - A Technical Job Prep for Vassar Students
Cross-Platform Mobile Development in Visual Studio
Cross Platform Development with Xamarin

Recently uploaded (20)

PDF
Machine learning based COVID-19 study performance prediction
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Electronic commerce courselecture one. Pdf
PDF
Encapsulation theory and applications.pdf
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Machine Learning_overview_presentation.pptx
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
NewMind AI Weekly Chronicles - August'25-Week II
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Machine learning based COVID-19 study performance prediction
Assigned Numbers - 2025 - Bluetooth® Document
Electronic commerce courselecture one. Pdf
Encapsulation theory and applications.pdf
Spectral efficient network and resource selection model in 5G networks
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Machine Learning_overview_presentation.pptx
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
NewMind AI Weekly Chronicles - August'25-Week II
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025

Hacking your coffee maker; building a connected appliance with Netduino and Xamarin

  • 1. We Power Connected Things Hardware development at the speed of software. www.wildernesslabs.co Bryan Costanich @bryancostanich
  • 2. - The dream of connected things - Controlling household electricity with a relay - Exposing control via a web API - Connecting to that Web API from a Xamarin App Building a Netduino Powered Connected Coffee Maker
  • 3. Wilderness Labs Relaunched Netduino in March. Added Mac support. Netduino stock at Amazon.com and Mouser.com (international). Building a vNext connected things platform. Actively working on Netduino.
  • 7. Power Control Household electricity (110V/240V) is controlled by a relay. Relays are electromechanical and isolate circuits. Controlled by a simple on/off via a digital I/O pin. Design @ 3D_Print_Designs repo Assembly instructions in blog. OutputPort relay = new OutputPort(Pins.GPIO_PIN_D2, false); relay.Write(true);
  • 8. Web Server Purpose-built for Netduino. Modern, RESTful Web API/ Built-in JSON Support.
  • 9. Maple Web Server Host public class RequestHandler : RequestHandlerBase { private static bool _isPowerOn; public void getStatus() { StatusResponse(); } public void postTurnOn() { TogglePower(true); StatusResponse(); } public void postTurnOff() { TogglePower(false); StatusResponse(); } private void TogglePower(bool val) { _isPowerOn = val; Ports.ONBOARD_LED.Write(val); Ports.GPIO_PIN_D1.Write(val); } private void StatusResponse() { this.Context.Response.ContentType = "application/json"; this.Context.Response.StatusCode = 200; Hashtable result = new Hashtable { { "isPowerOn", _isPowerOn.ToString().ToLower() } }; this.Send(result); } } get:/Status post:/TurnOn post:/TurnOff
  • 10. Xamarin Mobile App Xamarin.Forms + HttpClient async private Task<bool> PowerCommand(string command) { HttpClient client = new HttpClient(); client.BaseAddress = new Uri("http://" + _hostAddress + "/" + _apiBase); var response = await client.PostAsync(command, null); if (response.IsSuccessStatusCode) { if (command == "turnon") { App.ApplianceStatus = ApplianceStatus.On; } else { App.ApplianceStatus = ApplianceStatus.Off; } } return response.IsSuccessStatusCode; }
  • 11. Possible Expansion Projects On timer. Feedback loop for heat control w/temp sensor; what temp do you like your coffee? Coffee done push notification. Scheduler.

Editor's Notes

  • #3: Imagine waking up, grabbing your phone, and turning on your coffee pot from bed.
  • #4: We’re building the world’s first Connected Things OS. Secure, ultra low power features, over the air updates, managed from the cloud. Runs on real connected things hardware; microcontrollers like the ARM Cortex-M series. Full .NET standard apps + Javascript support. Developer Platform: Target .NET developers first. Full .NET Standard 2.0 Support. Then JavaScript (Node + Johnny Five) Open OS for other platforms.
  • #5: Great Netduino documentation Electronics tutorial Etc.
  • #6: A place to get help and meet other netduino developers