Arduino、Web 到 IoT

Justin Lin
Justin LinTechnology / Community Evangelist at Free lancer
Arduino、Web 到 IoT
林信良
caterpillar@openhome.cc
http://openhome.cc 1
內容
• IoT 與 Arduino
• Arduino 與 Web 伺服器
• 硬體上的網路支援
• 雲端 IoT 服務
2
IoT 與 Arduino
• IoT
• Internet of Things
• 物聯網
程
式
硬
體
資料
網路
3
硬體裝置
通訊協定
資料倉儲
商務邏輯
IoT 組成
4
硬體裝置
資料的收集、產生
5
6
通訊協定
http://electronicdesign.com/iot/understanding-protocols-behind-internet-things7
資料倉儲
資料儲存、分析工具與系統
8
9
商務邏輯
Domain knowledge? 10
Arduino
最初是針對不會寫程式,也不懂電子學,沒有任何技術背景的學生而設計,他們是
義大利北部伊夫雷亞(Ivrea)互動設計學院(Interaction Design Institute Ivrea)
的學生,身為Arduino計劃共同開發者之一的Massimo Banzi,曾在〈超越兆赫的
人們〉中提到「我們給了這些學生2到4星期的時間,讓他們製作物理運算的物品,
當時,市售的工具幾乎都是以工程師為對象,所以不管是配件或是跳線、接頭的數
量都很多。這對學生來說,似乎太過複雜,使得學生不知道該如何處置。」為了解
決這些問題,於2005年誕生的就是Arduino!
11
12
CO2 感應模組
LCD 顯示模組
原型擴充板
Arduino
溫濕度感應模組
13
14
https://www.arduino.cc/
15
http://www.arduino.cc/en/Main/Products
16
Arduino 與 Web 伺服器
從 S4A 開始
17
18
Web 伺服器
19
20
Firmware
USB
21
Firmware
USB
瀏覽器
代理程式
22
瀏覽器
網路
23
node-webduino
https://github.com/coopermaa/node-webduino
HTML、JavaScript、CSS
24
〈Interfacing with Other Software〉 25
Arduino and Python
>>> import serial
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> while True:
... print ser.readline()
'1 Hello world!rn'
'2 Hello world!rn'
'3 Hello world!rn'
>>> import serial # if you have not already done so
>>> ser = serial.Serial('/dev/tty.usbserial', 9600)
>>> ser.write('5')
http://playground.arduino.cc/interfacing/python 26
http://playground.arduino.cc/Interfacing/SerialNet 27
硬體上的網路支援
28
Arduino Ethernet Shield
https://www.arduino.cc/en/Main/ArduinoEthernetShield 29
Arduino WiFi Shield
Arduino WiFi Shield 101
30
有批 Wifi 晶片好便宜,有需要就打這個電話吧
31
Arduino Yún
32
MAC 位址
無線基地台模式
arduino
http://www.codedata.com.tw/social-coding/arduino-yun-1-sketch-python-led
33
34
arduino.local (必須支援 Bonjour 服務)
35
36
無線網卡模式
37
無線上傳 Sketch
38
39
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
40
41
#include <Bridge.h>
char state[2];
void setup() {
pinMode(13, OUTPUT);
Bridge.begin();
}
void loop() {
Bridge.get("state", state, 2);
digitalWrite(13, atoi(state));
delay(500);
}
42
Python 點亮光明燈
43
44
import sys
sys.path.insert(0, '/usr/lib/python2.7/bridge/')
from bridgeclient import BridgeClient
state = sys.argv[1]
BridgeClient().put('state', state)
root@arduino:~# python lightUpL13.py 1
root@arduino:~# python lightUpL13.py 0
45
透過瀏覽器點光明燈
http://www.codedata.com.tw/social-coding/arduino-yun-2-
simplehttpserver-yunserver-yunclient/
46
import sys
import SimpleHTTPServer
import SocketServer
sys.path.insert(0, '/usr/lib/python2.7/bridge/')
from bridgeclient import BridgeClient
class LedRequestHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def do_GET(self):
if self.path == '/ledOn':
BridgeClient().put('state', '1')
elif self.path == '/ledOff':
BridgeClient().put('state', '0')
self.path = '/led.html'
return SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)
server = SocketServer.TCPServer(('0.0.0.0', 8000), LedRequestHandler)
server.serve_forever()
47
led.html
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-
type">
<title></title>
</head>
<body>
<p><a href="ledOn">On</a>&nbsp; <a href="ledOff">Off</a></p>
</body>
</html>
48
YunServer 與 YunClient
#include <Bridge.h>
#include <YunServer.h>
#include <YunClient.h>
YunServer server;
void setup() {
pinMode(13,OUTPUT);
digitalWrite(13, HIGH);
Bridge.begin();
server.listenOnLocalhost();
server.begin();
digitalWrite(13, LOW);
}
49
void loop() {
YunClient client = server.accept();
if(client) {
process(client);
client.stop();
}
delay(500);
}
void process(YunClient client) {
String command = client.readStringUntil('r');
if (command == "ledOn") {
digitalWrite(13, HIGH);
}
else if (command == "ledOff") {
digitalWrite(13, LOW);
}
}
50
網路小車
https://www.youtube.com/watch?v=w5cRFU_9a-0
https://gist.github.com/JustinSDK/0c1deeec201afb50a6ab
https://gist.github.com/JustinSDK/70c1152fe0d4d593e23a 51
雲端 IoT 服務
52
Thingspeak
http://community.thingspeak.com/tutorials/arduino/controlling-the-
arduino-yun-with-talkback/
53
54
55
#include "Bridge.h"
#include "HttpClient.h"
//ThingSpeak Settings
String thingSpeakAPI = "api.thingspeak.com";
String talkBackAPIKey = "IIR7WFDPFM7DSHP9";
String talkBackID = "5129";
const int checkTalkBackInterval = 15 * 1000;
// Variable Setup
long lastConnectionTime = 0;
void setup() {
// Setup On-board LED
pinMode(13, OUTPUT);
digitalWrite(13, LOW);
delay(1000);
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
Bridge.begin();
}
void loop() {
checkTalkBack();
delay(checkTalkBackInterval);
}
56
void checkTalkBack() {
HttpClient client;
String talkBackCommand;
char charIn;
String talkBackURL = "http://" + thingSpeakAPI + "/talkbacks/" +
talkBackID + "/commands/execute?api_key=" + talkBackAPIKey;
client.get(talkBackURL);
while (client.available()) {
charIn = client.read();
talkBackCommand += charIn;
}
if (talkBackCommand == “TURN_ON”) {
digitalWrite(13, HIGH);
}
else if (talkBackCommand == “TURN_OFF”) {
digitalWrite(13, LOW);
}
delay(1000);
}
57
Temboo
58
https://temboo.com/arduino/yun/getting-started
59
60
61
/*
IMPORTANT NOTE about TembooAccount.h
TembooAccount.h contains your Temboo account information and must be included
alongside your sketch. To do so, make a new tab in Arduino, call it TembooAccount.h,
and copy this content into it.
*/
#define TEMBOO_ACCOUNT "caterpillar" // Your Temboo account name
#define TEMBOO_APP_KEY_NAME "myFirstApp" // Your Temboo app key name
#define TEMBOO_APP_KEY "e2f55cf1c2524ae59e70a89d3f96f831" // Your Temboo app key
/*
The same TembooAccount.h file settings can be used for all Temboo SDK sketches.
Keeping your account information in a separate file means you can share the
main .ino file without worrying that you forgot to delete your credentials.
*/
TembooAccount.h
62
#include <Bridge.h>
#include <Temboo.h>
#include "TembooAccount.h" // contains Temboo account information, as described below
int numRuns = 1; // Execution count, so this doesn't run forever
int maxRuns = 10; // Maximum number of times the Choreo should be executed
void setup() {
Serial.begin(9600);
// For debugging, wait until the serial console is connected
delay(4000);
while(!Serial);
Bridge.begin();
}
void loop() {
if (numRuns <= maxRuns) {
Serial.println("Running GetWeatherByAddress - Run #" + String(numRuns++));
TembooChoreo GetWeatherByAddressChoreo;
// Invoke the Temboo client
GetWeatherByAddressChoreo.begin();
// Set Temboo account credentials
GetWeatherByAddressChoreo.setAccountName(TEMBOO_ACCOUNT);
GetWeatherByAddressChoreo.setAppKeyName(TEMBOO_APP_KEY_NAME);
GetWeatherByAddressChoreo.setAppKey(TEMBOO_APP_KEY);
// Set Choreo inputs
GetWeatherByAddressChoreo.addInput("Address", "Taipei");
// Identify the Choreo to run
GetWeatherByAddressChoreo.setChoreo("/Library/Yahoo/Weather/GetWeatherByAddress");
// Run the Choreo; when results are available, print them to serial
GetWeatherByAddressChoreo.run();
while(GetWeatherByAddressChoreo.available()) {
char c = GetWeatherByAddressChoreo.read();
Serial.print(c);
}
GetWeatherByAddressChoreo.close();
}
Serial.println("Waiting...");
delay(30000); // wait 30 seconds between GetWeatherByAddress calls
}
透過 USB 連接
TembooAccount.ino
63
64
Parse for IoT
65
https://www.parse.com/apps/quickstart#embedded/arduinoyun 66
67
草稿碼 → Include Library… → Manage Libraries…
parse
安裝 Parse Arduino SDK
68
69
70
#include <Bridge.h>
String revision = "1.0.2-1_ar71xx";
String location =
"https://raw.githubusercontent.com/ParsePlatform/parse-embedded-
sdks/1.0.2/yun/linux_package/";
void downloadPackage(String file) {
Serial.println("Download: " + location + file + revision + ".ipk");
Process p;
p.begin("curl");
p.addParameter("--stderr");
p.addParameter("-");
p.addParameter("-#");
p.addParameter("-s");
p.addParameter("-S");
p.addParameter("-k");
p.addParameter("-o");
p.addParameter("/tmp/" + file + revision + ".ipk");
p.addParameter(location + file + revision + ".ipk");
p.run();
while (p.available()) {
Serial.print((char)p.read());
}
}
71
void installPackage(String file) {
Serial.println("Install: /tmp/" + file + revision + ".ipk");
Process p;
p.begin("opkg");
p.addParameter("install");
p.addParameter("--force-reinstall");
p.addParameter("--force-downgrade");
p.addParameter("/tmp/" + file + revision + ".ipk");
p.run();
while(p.available()) {
Serial.print((char)p.read());
}
}
void setup() {
Bridge.begin();
Serial.begin(115200);
while(!Serial);
Serial.println("Downloading packages");
downloadPackage("parse-embedded_");
downloadPackage("parse-embedded-yun_");
Serial.println("Installing packages");
installPackage("parse-embedded_");
installPackage("parse-embedded-yun_");
Serial.println("nDone.");
} 72
73
儲存物件
#include <Bridge.h>
#include <Parse.h>
void setup() {
// Initialize digital pin 13 as an output.
pinMode(13, OUTPUT);
// Initialize Bridge
Bridge.begin();
// Initialize Serial
Serial.begin(9600);
while (!Serial); // wait for a serial connection
Serial.println("Parse Starter Project");
// Initialize Parse
Parse.begin("dOpHkBs6A2XOToydYC7r7r1BmFxCgd6nU7JQ85Fw",
"BGyFLJuHJvje0LB6Ms9ZN30Mh1DfoKE43V3bq3FN");
74
ParseObjectCreate create;
create.setClassName("TestObject");
create.add("foo", "bar");
ParseResponse response = create.send();
Serial.println("nResponse for saving a TestObject:");
Serial.print(response.getJSONBody());
if (!response.getErrorCode()) {
String objectId = response.getString("objectId");
Serial.print("Test object id:");
Serial.println(objectId);
} else {
Serial.println("Failed to save the object");
}
response.close(); // Do not forget to free the resource
}
75
76
Push 通知
#include <Bridge.h>
#include <Parse.h>
void setup() {
pinMode(13, OUTPUT);
Bridge.begin();
Serial.begin(9600);
while (!Serial);
Serial.println("Parse Starter Project");
Parse.begin("dOpHkBs6A2XOToydYC7r7r1BmFxCgd6nU7JQ85Fw",
"BGyFLJuHJvje0LB6Ms9ZN30Mh1DfoKE43V3bq3FN");
// Start push service
Parse.startPushService();
Serial.print("Push Installation ID:");
Serial.println(Parse.getInstallationId());
}
77
void loop() {
// Check if there is a new push
// A push with message {"alert":"A test push from Parse!"}
// will turn on LED for 3 seconds
if (Parse.pushAvailable()) {
ParsePush push = Parse.nextPush();
String message = push.getJSONBody();
Serial.print("New push message size: ");
Serial.println(message.length());
Serial.print("New push message content: ");
Serial.println(message);
String command = push.getString("alert");
if (command == "A test push from Parse!") {
digitalWrite(13, HIGH); // turn on LED
delay(3000); // wait 3 seconds
digitalWrite(13, LOW); // turn off LED
}
// NOTE: ensure to close current push message
// otherwise next push won't be available
push.close();
}
}
78
79
80
參考
• IoT 和 Big Data 商機的迷思
• Arduino、Web 到 IoT
81
Orz
林信良
caterpillar@openhome.cc
http://openhome.cc 82
1 of 82

Recommended

FwDays 2021: Metarhia Technology Stack for Node.js by
FwDays 2021: Metarhia Technology Stack for Node.jsFwDays 2021: Metarhia Technology Stack for Node.js
FwDays 2021: Metarhia Technology Stack for Node.jsTimur Shemsedinov
2.1K views49 slides
[DefCon 2016] I got 99 Problems, but 
Little Snitch ain’t one! by
[DefCon 2016] I got 99 Problems, but 
Little Snitch ain’t one![DefCon 2016] I got 99 Problems, but 
Little Snitch ain’t one!
[DefCon 2016] I got 99 Problems, but 
Little Snitch ain’t one!Synack
1.4K views31 slides
Beacons, Raspberry Pi & Node.js by
Beacons, Raspberry Pi & Node.jsBeacons, Raspberry Pi & Node.js
Beacons, Raspberry Pi & Node.jsJeff Prestes
12.2K views31 slides
Symfony2 Service Container: Inject me, my friend by
Symfony2 Service Container: Inject me, my friendSymfony2 Service Container: Inject me, my friend
Symfony2 Service Container: Inject me, my friendKirill Chebunin
8.2K views43 slides
Node.js API 서버 성능 개선기 by
Node.js API 서버 성능 개선기Node.js API 서버 성능 개선기
Node.js API 서버 성능 개선기JeongHun Byeon
14.4K views87 slides
Nko workshop - node js crud & deploy by
Nko workshop - node js crud & deployNko workshop - node js crud & deploy
Nko workshop - node js crud & deploySimon Su
2.9K views53 slides

More Related Content

What's hot

iOS Automation Primitives by
iOS Automation PrimitivesiOS Automation Primitives
iOS Automation PrimitivesSynack
965 views38 slides
Generating cross platform .NET based azure IoTdevice by
Generating cross platform .NET based azure IoTdeviceGenerating cross platform .NET based azure IoTdevice
Generating cross platform .NET based azure IoTdeviceAlon Fliess
144 views23 slides
Network security Lab manual by
Network security Lab manual Network security Lab manual
Network security Lab manual Vivek Kumar Sinha
2.9K views21 slides
IT6712 lab manual by
IT6712 lab manualIT6712 lab manual
IT6712 lab manualMadhu Amarnath
4.9K views52 slides
Synack at ShmooCon 2015 by
Synack at ShmooCon 2015Synack at ShmooCon 2015
Synack at ShmooCon 2015Synack
3.7K views56 slides
Network security mannual (2) by
Network security mannual (2)Network security mannual (2)
Network security mannual (2)Vivek Kumar Sinha
290 views22 slides

What's hot(20)

iOS Automation Primitives by Synack
iOS Automation PrimitivesiOS Automation Primitives
iOS Automation Primitives
Synack965 views
Generating cross platform .NET based azure IoTdevice by Alon Fliess
Generating cross platform .NET based azure IoTdeviceGenerating cross platform .NET based azure IoTdevice
Generating cross platform .NET based azure IoTdevice
Alon Fliess144 views
Synack at ShmooCon 2015 by Synack
Synack at ShmooCon 2015Synack at ShmooCon 2015
Synack at ShmooCon 2015
Synack3.7K views
Performance #1: Memory by Yonatan Levin
Performance #1: MemoryPerformance #1: Memory
Performance #1: Memory
Yonatan Levin1.4K views
DEF CON 23: Stick That In Your (root)Pipe & Smoke It by Synack
DEF CON 23: Stick That In Your (root)Pipe & Smoke ItDEF CON 23: Stick That In Your (root)Pipe & Smoke It
DEF CON 23: Stick That In Your (root)Pipe & Smoke It
Synack4.8K views
Architecture for Massively Parallel HDL Simulations by DVClub
Architecture for Massively Parallel HDL Simulations Architecture for Massively Parallel HDL Simulations
Architecture for Massively Parallel HDL Simulations
DVClub469 views
201410 2 fiware-orion-contextbroker by FIWARE
201410 2 fiware-orion-contextbroker201410 2 fiware-orion-contextbroker
201410 2 fiware-orion-contextbroker
FIWARE1.9K views
Synack at AppSec California 2015 - Geolocation Vulnerabilities by Synack
Synack at AppSec California 2015 - Geolocation VulnerabilitiesSynack at AppSec California 2015 - Geolocation Vulnerabilities
Synack at AppSec California 2015 - Geolocation Vulnerabilities
Synack14.1K views
Arduino and the real time web by Andrew Fisher
Arduino and the real time webArduino and the real time web
Arduino and the real time web
Andrew Fisher24.6K views
Virus Bulletin 2015: Exposing Gatekeeper by Synack
Virus Bulletin 2015: Exposing GatekeeperVirus Bulletin 2015: Exposing Gatekeeper
Virus Bulletin 2015: Exposing Gatekeeper
Synack3.6K views
Programming IoT Gateways in JavaScript with macchina.io by Günter Obiltschnig
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.io
Günter Obiltschnig2.2K views
Marrow: A Meta-Framework for Python 2.6+ and 3.1+ by ConFoo
Marrow: A Meta-Framework for Python 2.6+ and 3.1+Marrow: A Meta-Framework for Python 2.6+ and 3.1+
Marrow: A Meta-Framework for Python 2.6+ and 3.1+
ConFoo2.7K views
Networking and Data Access with Eqela by jobandesther
Networking and Data Access with EqelaNetworking and Data Access with Eqela
Networking and Data Access with Eqela
jobandesther1.7K views
Security 202 - Are you sure your site is secure? by ConFoo
Security 202 - Are you sure your site is secure?Security 202 - Are you sure your site is secure?
Security 202 - Are you sure your site is secure?
ConFoo2.5K views

Viewers also liked

行政院簡報 國發會 亞洲矽谷推動方案 by
行政院簡報 國發會 亞洲矽谷推動方案行政院簡報 國發會 亞洲矽谷推動方案
行政院簡報 國發會 亞洲矽谷推動方案releaseey
65.5K views77 slides
Java 8 與 retrolambda by
Java 8 與 retrolambdaJava 8 與 retrolambda
Java 8 與 retrolambdaJustin Lin
5K views45 slides
讓程式展現樂趣 玩出實驗精神與創造力 by
讓程式展現樂趣 玩出實驗精神與創造力讓程式展現樂趣 玩出實驗精神與創造力
讓程式展現樂趣 玩出實驗精神與創造力Justin Lin
3K views45 slides
深入淺出 Web 容器 - Tomcat 原始碼分析 by
深入淺出 Web 容器  - Tomcat 原始碼分析深入淺出 Web 容器  - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析Justin Lin
3.8K views52 slides
OpenSCAD Workshop by
OpenSCAD WorkshopOpenSCAD Workshop
OpenSCAD WorkshopJustin Lin
2.1K views56 slides
物聯網應用全貌以及微軟全球案例 by
物聯網應用全貌以及微軟全球案例物聯網應用全貌以及微軟全球案例
物聯網應用全貌以及微軟全球案例Herman Wu
10.5K views39 slides

Viewers also liked(10)

行政院簡報 國發會 亞洲矽谷推動方案 by releaseey
行政院簡報 國發會 亞洲矽谷推動方案行政院簡報 國發會 亞洲矽谷推動方案
行政院簡報 國發會 亞洲矽谷推動方案
releaseey65.5K views
Java 8 與 retrolambda by Justin Lin
Java 8 與 retrolambdaJava 8 與 retrolambda
Java 8 與 retrolambda
Justin Lin5K views
讓程式展現樂趣 玩出實驗精神與創造力 by Justin Lin
讓程式展現樂趣 玩出實驗精神與創造力讓程式展現樂趣 玩出實驗精神與創造力
讓程式展現樂趣 玩出實驗精神與創造力
Justin Lin3K views
深入淺出 Web 容器 - Tomcat 原始碼分析 by Justin Lin
深入淺出 Web 容器  - Tomcat 原始碼分析深入淺出 Web 容器  - Tomcat 原始碼分析
深入淺出 Web 容器 - Tomcat 原始碼分析
Justin Lin3.8K views
OpenSCAD Workshop by Justin Lin
OpenSCAD WorkshopOpenSCAD Workshop
OpenSCAD Workshop
Justin Lin2.1K views
物聯網應用全貌以及微軟全球案例 by Herman Wu
物聯網應用全貌以及微軟全球案例物聯網應用全貌以及微軟全球案例
物聯網應用全貌以及微軟全球案例
Herman Wu10.5K views
智慧應用與物聯網發展趨勢 (A Development Trend of Smart Applications and IoT) by William Liang
智慧應用與物聯網發展趨勢 (A Development Trend of Smart Applications and IoT)智慧應用與物聯網發展趨勢 (A Development Trend of Smart Applications and IoT)
智慧應用與物聯網發展趨勢 (A Development Trend of Smart Applications and IoT)
William Liang15.3K views
3D 之邏輯與美感交會 - OpenSCAD by Justin Lin
3D 之邏輯與美感交會 - OpenSCAD3D 之邏輯與美感交會 - OpenSCAD
3D 之邏輯與美感交會 - OpenSCAD
Justin Lin1.4K views
網站系統安全及資料保護設計認知 by Justin Lin
網站系統安全及資料保護設計認知網站系統安全及資料保護設計認知
網站系統安全及資料保護設計認知
Justin Lin3.8K views

Similar to Arduino、Web 到 IoT

Arduino práctico ethernet by
Arduino práctico   ethernetArduino práctico   ethernet
Arduino práctico ethernetJose Antonio Vacas
1.4K views10 slides
Introduction to Things board (An Open Source IoT Cloud Platform) by
Introduction to Things board (An Open Source IoT Cloud Platform)Introduction to Things board (An Open Source IoT Cloud Platform)
Introduction to Things board (An Open Source IoT Cloud Platform)Amarjeetsingh Thakur
330 views63 slides
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach... by
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT Meetup
119 views90 slides
Webshield internet of things by
Webshield internet of thingsWebshield internet of things
Webshield internet of thingsRaghav Shetty
223 views14 slides
Node worshop Realtime - Socket.io by
Node worshop Realtime - Socket.ioNode worshop Realtime - Socket.io
Node worshop Realtime - Socket.ioCaesar Chi
2.3K views59 slides
WebRTC 101 - How to get started building your first WebRTC application by
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationDan Jenkins
1.4K views50 slides

Similar to Arduino、Web 到 IoT(20)

Introduction to Things board (An Open Source IoT Cloud Platform) by Amarjeetsingh Thakur
Introduction to Things board (An Open Source IoT Cloud Platform)Introduction to Things board (An Open Source IoT Cloud Platform)
Introduction to Things board (An Open Source IoT Cloud Platform)
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach... by Athens IoT Meetup
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT meetup #7 - Create the Internet of your Things - Laurent Ellerbach...
Athens IoT Meetup119 views
Webshield internet of things by Raghav Shetty
Webshield internet of thingsWebshield internet of things
Webshield internet of things
Raghav Shetty223 views
Node worshop Realtime - Socket.io by Caesar Chi
Node worshop Realtime - Socket.ioNode worshop Realtime - Socket.io
Node worshop Realtime - Socket.io
Caesar Chi2.3K views
WebRTC 101 - How to get started building your first WebRTC application by Dan Jenkins
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC application
Dan Jenkins1.4K views
node.js - Eventful JavaScript on the Server by David Ruiz
node.js - Eventful JavaScript on the Servernode.js - Eventful JavaScript on the Server
node.js - Eventful JavaScript on the Server
David Ruiz3.4K views
Socket Programming it-slideshares.blogspot.com by phanleson
Socket  Programming it-slideshares.blogspot.comSocket  Programming it-slideshares.blogspot.com
Socket Programming it-slideshares.blogspot.com
phanleson1.6K views
Formatul Portable Executable by DefCamp
Formatul Portable Executable Formatul Portable Executable
Formatul Portable Executable
DefCamp1.2K views
Internet of things the salesforce lego machine cloud by andyinthecloud
Internet of things   the salesforce lego machine cloudInternet of things   the salesforce lego machine cloud
Internet of things the salesforce lego machine cloud
andyinthecloud1.4K views
Ports and Adapters Architecture - solid by ofir attal
Ports and Adapters Architecture - solidPorts and Adapters Architecture - solid
Ports and Adapters Architecture - solid
ofir attal503 views
Micro app-framework - NodeLive Boston by Michael Dawson
Micro app-framework - NodeLive BostonMicro app-framework - NodeLive Boston
Micro app-framework - NodeLive Boston
Michael Dawson347 views
[4] 아두이노와 인터넷 by Chiwon Song
[4] 아두이노와 인터넷[4] 아두이노와 인터넷
[4] 아두이노와 인터넷
Chiwon Song907 views
Tamir Dresher - What’s new in ASP.NET Core 6 by Tamir Dresher
Tamir Dresher - What’s new in ASP.NET Core 6Tamir Dresher - What’s new in ASP.NET Core 6
Tamir Dresher - What’s new in ASP.NET Core 6
Tamir Dresher134 views

More from Justin Lin

Ch14 簡介 Spring Boot by
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring BootJustin Lin
872 views22 slides
Ch13 整合 Spring MVC/Security by
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/SecurityJustin Lin
280 views58 slides
Ch12 Spring 起步走 by
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走Justin Lin
274 views31 slides
Ch11 簡介 JavaMail by
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMailJustin Lin
157 views8 slides
Ch10 Web 容器安全管理 by
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理Justin Lin
153 views30 slides
Ch09 整合資料庫 by
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫Justin Lin
233 views92 slides

More from Justin Lin(20)

Ch14 簡介 Spring Boot by Justin Lin
Ch14 簡介 Spring BootCh14 簡介 Spring Boot
Ch14 簡介 Spring Boot
Justin Lin872 views
Ch13 整合 Spring MVC/Security by Justin Lin
Ch13 整合 Spring MVC/SecurityCh13 整合 Spring MVC/Security
Ch13 整合 Spring MVC/Security
Justin Lin280 views
Ch12 Spring 起步走 by Justin Lin
Ch12 Spring 起步走Ch12 Spring 起步走
Ch12 Spring 起步走
Justin Lin274 views
Ch11 簡介 JavaMail by Justin Lin
Ch11 簡介 JavaMailCh11 簡介 JavaMail
Ch11 簡介 JavaMail
Justin Lin157 views
Ch10 Web 容器安全管理 by Justin Lin
Ch10 Web 容器安全管理Ch10 Web 容器安全管理
Ch10 Web 容器安全管理
Justin Lin153 views
Ch09 整合資料庫 by Justin Lin
Ch09 整合資料庫Ch09 整合資料庫
Ch09 整合資料庫
Justin Lin233 views
Ch08 自訂標籤 by Justin Lin
Ch08 自訂標籤Ch08 自訂標籤
Ch08 自訂標籤
Justin Lin133 views
Ch07 使用 JSTL by Justin Lin
Ch07 使用 JSTLCh07 使用 JSTL
Ch07 使用 JSTL
Justin Lin161 views
Ch06 使用 JSP by Justin Lin
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
Justin Lin250 views
Ch05 Servlet 進階 API、過濾器與傾聽器 by Justin Lin
Ch05 Servlet 進階 API、過濾器與傾聽器Ch05 Servlet 進階 API、過濾器與傾聽器
Ch05 Servlet 進階 API、過濾器與傾聽器
Justin Lin204 views
Ch04 會話管理 by Justin Lin
Ch04 會話管理Ch04 會話管理
Ch04 會話管理
Justin Lin238 views
Ch03 請求與回應 by Justin Lin
Ch03 請求與回應Ch03 請求與回應
Ch03 請求與回應
Justin Lin236 views
Ch02 撰寫與設定 Servlet by Justin Lin
Ch02 撰寫與設定 ServletCh02 撰寫與設定 Servlet
Ch02 撰寫與設定 Servlet
Justin Lin352 views
CH1. 簡介 Web 應用程式 by Justin Lin
CH1. 簡介 Web 應用程式CH1. 簡介 Web 應用程式
CH1. 簡介 Web 應用程式
Justin Lin1.2K views
14. 進階主題 by Justin Lin
14. 進階主題14. 進階主題
14. 進階主題
Justin Lin406 views
13.並行、平行與非同步 by Justin Lin
13.並行、平行與非同步13.並行、平行與非同步
13.並行、平行與非同步
Justin Lin238 views
12. 除錯、測試與效能 by Justin Lin
12. 除錯、測試與效能12. 除錯、測試與效能
12. 除錯、測試與效能
Justin Lin153 views
11. 常用內建模組 by Justin Lin
11. 常用內建模組11. 常用內建模組
11. 常用內建模組
Justin Lin149 views
10. 資料永續與交換 by Justin Lin
10. 資料永續與交換10. 資料永續與交換
10. 資料永續與交換
Justin Lin156 views
9. 資料結構 by Justin Lin
9. 資料結構9. 資料結構
9. 資料結構
Justin Lin292 views

Recently uploaded

Uni Systems for Power Platform.pptx by
Uni Systems for Power Platform.pptxUni Systems for Power Platform.pptx
Uni Systems for Power Platform.pptxUni Systems S.M.S.A.
60 views21 slides
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueShapeBlue
149 views7 slides
MVP and prioritization.pdf by
MVP and prioritization.pdfMVP and prioritization.pdf
MVP and prioritization.pdfrahuldharwal141
39 views8 slides
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPoolShapeBlue
56 views10 slides
Future of AR - Facebook Presentation by
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook PresentationRob McCarty
54 views27 slides
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueShapeBlue
63 views15 slides

Recently uploaded(20)

Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue by ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlueElevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
Elevating Privacy and Security in CloudStack - Boris Stoyanov - ShapeBlue
ShapeBlue149 views
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool by ShapeBlue
Extending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPoolExtending KVM Host HA for Non-NFS Storage -  Alex Ivanov - StorPool
Extending KVM Host HA for Non-NFS Storage - Alex Ivanov - StorPool
ShapeBlue56 views
Future of AR - Facebook Presentation by Rob McCarty
Future of AR - Facebook PresentationFuture of AR - Facebook Presentation
Future of AR - Facebook Presentation
Rob McCarty54 views
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue by ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlueCloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
CloudStack Object Storage - An Introduction - Vladimir Petrov - ShapeBlue
ShapeBlue63 views
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue by ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
2FA and OAuth2 in CloudStack - Andrija Panić - ShapeBlue
ShapeBlue75 views
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda... by ShapeBlue
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
Hypervisor Agnostic DRS in CloudStack - Brief overview & demo - Vishesh Jinda...
ShapeBlue93 views
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue by ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlueMigrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
Migrating VMware Infra to KVM Using CloudStack - Nicolas Vazquez - ShapeBlue
ShapeBlue147 views
Why and How CloudStack at weSystems - Stephan Bienek - weSystems by ShapeBlue
Why and How CloudStack at weSystems - Stephan Bienek - weSystemsWhy and How CloudStack at weSystems - Stephan Bienek - weSystems
Why and How CloudStack at weSystems - Stephan Bienek - weSystems
ShapeBlue172 views
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ... by ShapeBlue
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
How to Re-use Old Hardware with CloudStack. Saving Money and the Environment ...
ShapeBlue97 views
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas... by Bernd Ruecker
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
iSAQB Software Architecture Gathering 2023: How Process Orchestration Increas...
Bernd Ruecker50 views
Business Analyst Series 2023 - Week 4 Session 7 by DianaGray10
Business Analyst Series 2023 -  Week 4 Session 7Business Analyst Series 2023 -  Week 4 Session 7
Business Analyst Series 2023 - Week 4 Session 7
DianaGray10110 views
State of the Union - Rohit Yadav - Apache CloudStack by ShapeBlue
State of the Union - Rohit Yadav - Apache CloudStackState of the Union - Rohit Yadav - Apache CloudStack
State of the Union - Rohit Yadav - Apache CloudStack
ShapeBlue218 views
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online by ShapeBlue
KVM Security Groups Under the Hood - Wido den Hollander - Your.OnlineKVM Security Groups Under the Hood - Wido den Hollander - Your.Online
KVM Security Groups Under the Hood - Wido den Hollander - Your.Online
ShapeBlue154 views
Data Integrity for Banking and Financial Services by Precisely
Data Integrity for Banking and Financial ServicesData Integrity for Banking and Financial Services
Data Integrity for Banking and Financial Services
Precisely76 views
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T by ShapeBlue
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&TCloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
CloudStack and GitOps at Enterprise Scale - Alex Dometrius, Rene Glover - AT&T
ShapeBlue81 views
Igniting Next Level Productivity with AI-Infused Data Integration Workflows by Safe Software
Igniting Next Level Productivity with AI-Infused Data Integration Workflows Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Igniting Next Level Productivity with AI-Infused Data Integration Workflows
Safe Software373 views
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ... by ShapeBlue
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
Backup and Disaster Recovery with CloudStack and StorPool - Workshop - Venko ...
ShapeBlue114 views

Arduino、Web 到 IoT