5. Creating a cloud-
managed product today
is expensive and
difficult…
Complex software systems are involved.
Most platforms are proprietary and
expensive to license.
6. … but it doesn’t need to be that way.
What if IoT software were free,
readily-available, and easy-to-use?
7. Canopy makes it simple to develop
commercially-viable smart products.
We
Solve the common
system engineering
You
Focus on what your
business does best.system engineering
challenges with IoT.
Sensor data storage.
Communication protocols.
REST APIs & client libraries.
Authorization.
Security.
business does best.
Market-specific hardware.
Customer engagement.
Services and solutions.
Vertical applications.
Branding.
10. Enable Custom Experiences
Demonstration only. This prototype is not endorsed by anyone.
Canopy provides APIs
& client libraries so
you can build sexy
custom apps for your
product.
11. Low-latency control from anywhere.
Seriously. Any similarity to an actual product is purely coincidental.
12. Low-latency control from anywhere.
Seriously. Any similarity to an actual product is purely coincidental.
13. Low-latency control from anywhere.
Seriously. Any similarity to an actual product is purely coincidental.
14. Low-latency control from anywhere.
Seriously. Any similarity to an actual product is purely coincidental.
Sub-100ms response time!
15. Low-latency control from anywhere.
HTTP POST
Websocket
Home-spun
message-passing
system – “pigeon”
Callback triggered in
firmware code.
17. Sensor Monitoring
Stored in cassandra
cluster.LOD-based
downsampling
for performance.
Historic
data sent in
response.
Pruning for
space.
Sensor sample read in
firmware.
Sent over
websocket
HTTP GET
18. Social
Activity
Maybe you should stop reading the fine print and pay attention to the presentation.
Google Docs-
like sharing and
permissions.
30s ago
MissPiggy set fan to off.
1m ago
Kermit set fan to max.
2m ago
MissPiggy set fan to off.
3m ago
Kermit set fan to max.
4m ago
19. Our Emphasis
Powered Appliances
We assume moderately powerful HW:
• ARM-based SoC
• Internet access over WiFi, ETH0, 3G, or 4G LTE
• Linux-based OS• Linux-based OS
• Websockets & SSL
Enable Key Activities
Monitor Control Share
30. fan.sddl canotool gen fan.sddl
fan.h
fan.c
makefile
Generate Embedded Code
Register your device w/ the server: sudo canotool provision
Compile and run: make run
31. fan.sddl canotool gen fan.sddl
fan.h
fan.c
makefile
Generate Embedded Code
Contains boilerplate code.
Contains stubs.
Register your device w/ the server: sudo canotool provision
Compile and run: make run
43. https://canopy.link/device/<UUID>
Or, using alias:
REST endpoints created for each device
https://canopy.link/gregp/SmartFan
Authentication?
Currently, cookies & BASIC AUTH
over are supported.
OAuth2.0 support is coming soon.
47. GET /device/<UUID>/humidity
200 OK
{
“samples” : [{
“t” : “2014-08-08T15:47:31”,
“v” : 0.34194
}, {
Remember that we
had “sensor humidity”
in our fan.sddl file.
REST: Get historic sensor data
}, {
“t” : “2014-08-08T15:48:31”,
“v” : 0.34022
}, {
“t” : “2014-08-08T15:49:31”,
“v” : 0.33998
}, {
“t” : “2014-08-08T15:50:32”,
“v” : 0.33715
}]
}
48. var fan = canopy.devices[uuid];
fan.properties.speed.setTargetValue(3, {
onSuccess: function() {
Javascript: Control device
onSuccess: function() {
alert(“Fan speed set to MAX”);
}
})
49. var fan = canopy.devices[uuid];
var hum = fan.properties.humidity.value();
Javascript: Get current sensor value
50. var fan = canopy.devices[uuid];
fan.properties.humidity.fetchHistoricData({
onSuccess: function(data) {
Javascript: Get historic sensor data
for (var i = 0; i < data.length; i++) {
console.log(data[i].t);
console.log(data[i].v);
}
}
});
51. var fan = canopy.devices[uuid];
fan.share({
user: “beaker@muppets.com”
Javascript: Sharing a device
});
52. API & client library documentation at http://canopy.link
54. Roadmap
Alpha Aug 31, 2014
End-to-end proof-of-concept.
Completed drafts of all specifications.
Beta Nov 31, 2014
Security.Security.
Scalability.
Completeness.
v1.0 Feb 28, 2015
Incorporate Beta feedback.
Testing.
Robustness.
55. Project Status
Get Involved!
Learn more
http://canopy.link
Connect with me
greg@canopy.link
Follow Canopy on Twitter
@CanopyIoT
Contributor
Sponsor
Partner
Team member
Advocate
Investor
56. Conclusion
• 100% open source.
• SDDL simplifies IoT product
development.
Learn more
http://canopy.link
Connect with me
greg@canopy.link
Follow Canopy on Twitter
@CanopyIoT
development.
• Developer-friendly REST API and client
libraries enable“branded”applications.
• We will work with you to integrate
Canopy into your device. Looking for
partners for“pilot”.