狠狠撸

狠狠撸Share a Scribd company logo
IOT感測器驅動程式
在樹莓派上實作
翁文謙 丁竑傑 王建斌
王明忠 吳建霖 張哲晃
陳維陽
專題動機
? 在物聯網的應用領域中,感知層是物聯網發展的基礎,依各種場景的需要會
使用到不同的感測器來收集資訊,但每種感測器要能在嵌入式系統上正常運
作,都需要由驅動程式來驅動,所以開發或移植驅動程式算是嵌入式系統必
備的技術,因此幾位對Linux驅動程式有興趣的同學決定一起開發感測器驅動
程式,並將此感測器拿來做物聯網的應用。
系統架構圖
電子羅盤
距離感測器
Cloud
Web Application
溫度:27 ℃
濕度 : 59 %
距離:212 cm
X:200
Y:191
Z:-351
GPIO
GPIO
I2C
溫溼度感測器
感測器驅動程式的實現
1.溫濕度感測器(DHT22)驅動程式
2.距離感測器(HC-SR04)驅動程式
3.電子羅盤(GY-273)驅動程式
DHT22
Driver
HCSR04
Driver
GY273
Driver
GPIO
GPIO
IIC
DHT22
HCSR04
GY273
KernelChar
/dev/dht22
/dev/hcsr04
/dev/gy237
Linux驅動程式運作流程
driver_init()
cdev_init()
gpio_i2c_setup()
interrupt_setup()
timer_setup()
device_open()
device_read()
- Trigger_Sensor
- Interrup_Irq
- Data_Analysis
device_close()
File Operations driver_exit()
cdev_exit()
gpio_i2c_free()
interrupt_free()
timer_cancel()
insmod Application rmmod
User Space
Kernel Space
Process_data() {
for( n = 0; n < 40; n++)
if(high_time[n] > 50us)
data_bit[n] = 1;
else
data_bit[n] = 0;
…
dht22_irq_handler() {
irq_counter++;
now = get_time();
if(gpio == low)
high_time[] = now – pre;
if(irq_counter == last)
WORK_QUEUE(process_data());
pre = now;
}
2-1 Linux Driver for DHT22
dht22的通訊機制:
DHT22
DHT22 signal
> 1 ms
dht22_trigger() {
gpio_set_direction(pin, out);
gpio_set_value(pin, low);
udelay(1000);
gpio_set_value(pin, high);
udelay(20);
gpio_set_direction(pin, in);
}
Interrup_setup() {
reuest_irq(pin,
dht22_irq_handler,
FALLING_And_RISING)
}
Hi_H Lo_H Hi_T Lo_T Checksum
Work_Queue
Humidity
= Hi_H x 256 + Lo_H
Temperature
= Hi_T x 256 + Lo_T
Checksum
= Hi_H + Lo_H + Hi_T + Lo_T
Trigger 40-Bit DataResponse
1. interrup_setup
2. trigger
3. interrup_irq
4. process_data
2-1 Linux Driver for DHT22
Ready
for
Trigger
Working Rest
2 sec
Dht22 State
dht22_read()
trigger_sensor()
Application 1
dht22_read()
trigger_sensor()
Application 2
? ?issue
dht22_read()
get_temp()
Application 1
dht22_read()
get_temp()
Application 2
timer_update(2 sec)
trigger_sensor()
update_temp()
Temp.
Value
Revised ProcessInitial Process
2-1 Linux Driver for DHT22
/dev 存取介面 /sys 存取介面
邏輯分析儀驗證波形
2-2 Linux Driver for HC-SR04
hc-sr04的通訊機制:
hcsr04_trigger() {
gpio_set_direction(pin, out);
gpio_set_value(pin, high);
udelay(10);
gpio_set_value(pin, low);
}
hcsr04_measure() {
interrup_setup;
hcsr04_trigger();
wait_event();
elapsed = endT – start;
}
hcsro4_irq_handler() {
if(gpio == high)
startT = get_time();
else {
endT =get_time();
send_event();
}
}
Interrup_setup() {
reuest_irq(pin,
hcsro4_irq_handler,
FALLING_And_RISING)
}
Elapsed
= (end_time – start_time) us
Sound_Speed
= 340 x 10-6 m/us
Distance
= Elapsed / 2 x Sound_Speed
Elapsed
1. interrup_setup 2. trigger
3. interrup_irq
4. process_data
2-2 Linux Driver for HC-SR04
/sys 存取介面
邏輯分析儀驗證波形
2-3 Linux Driver for GY-273
/dev/gy273
applicaiton
I2C-dev
gy273.dtbo
gy273@50{
compatible = “gy273“
reg = <0x1E>;
};
Device Tree Overlay
gy273.ko
I2C Client Driver (I2C-dev)
.driver = {
.name = “gy273”
}
.probe = gy273_probe,
.remove = gy273_remove,
gy273_probe = {
register_chardev();
cdev_init();
cdev_add();
}
當 device的compatible
等於driver的.name時
gy273_probe才會建立
字元裝置
1. add_device_node
2. add_i2c_dirve 3. probe
/dev/gy273
2-3 Linux Driver for GY-273
/dev 存取介面
測試程式讀取 /dev/gy273
IoT應用實例 #1
DHT22
風扇
溫溼度感測器應用
OLED
IoT應用實例 #2
距離感測器 電子羅盤感測器
HC-SR04
GY-273
PIR
IOT Platform
ThingsBoard
奥别产呈现感测数值

More Related Content

Similar to IoT感測器驅動程式 在樹莓派上實作 (20)

绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒
绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒
绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒
CAVEDU Education
?
嵌入式 RFID 打卡系統
嵌入式 RFID 打卡系統嵌入式 RFID 打卡系統
嵌入式 RFID 打卡系統
艾鍗科技
?
Network security reesjohnson
Network security reesjohnsonNetwork security reesjohnson
Network security reesjohnson
ITband
?
智能车软件设计浅谈 清华-张天雷-上传版本
智能车软件设计浅谈 清华-张天雷-上传版本智能车软件设计浅谈 清华-张天雷-上传版本
智能车软件设计浅谈 清华-张天雷-上传版本
ztl2004
?
颁厂顿狈移动电子刊第叁期
颁厂顿狈移动电子刊第叁期颁厂顿狈移动电子刊第叁期
颁厂顿狈移动电子刊第叁期
yangdj
?
础辫辫肠补苍介绍自己的应用开发平台
础辫辫肠补苍介绍自己的应用开发平台础辫辫肠补苍介绍自己的应用开发平台
础辫辫肠补苍介绍自己的应用开发平台
MOBINODE
?
How to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watsonHow to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watson
湯米吳 Tommy Wu
?
什么是云计算
什么是云计算什么是云计算
什么是云计算
Liyang Tang
?
物联网应用全貌以及微软全球案例
物联网应用全貌以及微软全球案例物联网应用全貌以及微软全球案例
物联网应用全貌以及微软全球案例
Herman Wu
?
础辫辫肠补苍平台介绍
础辫辫肠补苍平台介绍础辫辫肠补苍平台介绍
础辫辫肠补苍平台介绍
36Kr.com
?
Big Data : The Missing Puzzle of Mobile Computing
Big Data : The Missing Puzzle of Mobile ComputingBig Data : The Missing Puzzle of Mobile Computing
Big Data : The Missing Puzzle of Mobile Computing
Jazz Yao-Tsung Wang
?
Picoway Company Profile V1.5
Picoway Company Profile V1.5Picoway Company Profile V1.5
Picoway Company Profile V1.5
picoway
?
Picoway Company Profile 1.5
Picoway Company Profile 1.5Picoway Company Profile 1.5
Picoway Company Profile 1.5
picoway
?
础苍诲谤辞颈诲作业系统移植之智慧电视整合平台
础苍诲谤辞颈诲作业系统移植之智慧电视整合平台础苍诲谤辞颈诲作业系统移植之智慧电视整合平台
础苍诲谤辞颈诲作业系统移植之智慧电视整合平台
艾鍗科技
?
2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟
Tianwei Liu
?
Junior新趨勢: 邊緣運算
Junior新趨勢: 邊緣運算Junior新趨勢: 邊緣運算
Junior新趨勢: 邊緣運算
Collaborator
?
分会场九Windows 7迁移最佳实践
分会场九Windows 7迁移最佳实践分会场九Windows 7迁移最佳实践
分会场九Windows 7迁移最佳实践
ITband
?
Iot 自動販賣機
Iot 自動販賣機Iot 自動販賣機
Iot 自動販賣機
艾鍗科技
?
Android
AndroidAndroid
Android
donotbeevil
?
动态业务应用程序映射软件
动态业务应用程序映射软件动态业务应用程序映射软件
动态业务应用程序映射软件
Cheer Chain Enterprise Co., Ltd.
?
绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒
绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒
绝地武士心灵控制家用云端智慧型物联网光剑搭载无线路由器光剑底座贵颈苍补濒
CAVEDU Education
?
嵌入式 RFID 打卡系統
嵌入式 RFID 打卡系統嵌入式 RFID 打卡系統
嵌入式 RFID 打卡系統
艾鍗科技
?
Network security reesjohnson
Network security reesjohnsonNetwork security reesjohnson
Network security reesjohnson
ITband
?
智能车软件设计浅谈 清华-张天雷-上传版本
智能车软件设计浅谈 清华-张天雷-上传版本智能车软件设计浅谈 清华-张天雷-上传版本
智能车软件设计浅谈 清华-张天雷-上传版本
ztl2004
?
颁厂顿狈移动电子刊第叁期
颁厂顿狈移动电子刊第叁期颁厂顿狈移动电子刊第叁期
颁厂顿狈移动电子刊第叁期
yangdj
?
础辫辫肠补苍介绍自己的应用开发平台
础辫辫肠补苍介绍自己的应用开发平台础辫辫肠补苍介绍自己的应用开发平台
础辫辫肠补苍介绍自己的应用开发平台
MOBINODE
?
How to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watsonHow to build your own robot with ibm bluemix&watson
How to build your own robot with ibm bluemix&watson
湯米吳 Tommy Wu
?
物联网应用全貌以及微软全球案例
物联网应用全貌以及微软全球案例物联网应用全貌以及微软全球案例
物联网应用全貌以及微软全球案例
Herman Wu
?
础辫辫肠补苍平台介绍
础辫辫肠补苍平台介绍础辫辫肠补苍平台介绍
础辫辫肠补苍平台介绍
36Kr.com
?
Big Data : The Missing Puzzle of Mobile Computing
Big Data : The Missing Puzzle of Mobile ComputingBig Data : The Missing Puzzle of Mobile Computing
Big Data : The Missing Puzzle of Mobile Computing
Jazz Yao-Tsung Wang
?
Picoway Company Profile V1.5
Picoway Company Profile V1.5Picoway Company Profile V1.5
Picoway Company Profile V1.5
picoway
?
Picoway Company Profile 1.5
Picoway Company Profile 1.5Picoway Company Profile 1.5
Picoway Company Profile 1.5
picoway
?
础苍诲谤辞颈诲作业系统移植之智慧电视整合平台
础苍诲谤辞颈诲作业系统移植之智慧电视整合平台础苍诲谤辞颈诲作业系统移植之智慧电视整合平台
础苍诲谤辞颈诲作业系统移植之智慧电视整合平台
艾鍗科技
?
2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟2020 gops-旷视城市大脑私有云平台实践-刘天伟
2020 gops-旷视城市大脑私有云平台实践-刘天伟
Tianwei Liu
?
Junior新趨勢: 邊緣運算
Junior新趨勢: 邊緣運算Junior新趨勢: 邊緣運算
Junior新趨勢: 邊緣運算
Collaborator
?
分会场九Windows 7迁移最佳实践
分会场九Windows 7迁移最佳实践分会场九Windows 7迁移最佳实践
分会场九Windows 7迁移最佳实践
ITband
?

More from 艾鍗科技 (20)

TinyML - 4 speech recognition
TinyML - 4 speech recognition TinyML - 4 speech recognition
TinyML - 4 speech recognition
艾鍗科技
?
Appendix 1 Goolge colab
Appendix 1 Goolge colabAppendix 1 Goolge colab
Appendix 1 Goolge colab
艾鍗科技
?
笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用
笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用
笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用
艾鍗科技
?
02 IoT implementation
02 IoT implementation02 IoT implementation
02 IoT implementation
艾鍗科技
?
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge
艾鍗科技
?
Openvino ncs2
Openvino ncs2Openvino ncs2
Openvino ncs2
艾鍗科技
?
Step motor
Step motorStep motor
Step motor
艾鍗科技
?
2. 機器學習簡介
2. 機器學習簡介2. 機器學習簡介
2. 機器學習簡介
艾鍗科技
?
5.MLP(Multi-Layer Perceptron)
5.MLP(Multi-Layer Perceptron) 5.MLP(Multi-Layer Perceptron)
5.MLP(Multi-Layer Perceptron)
艾鍗科技
?
3. data features
3. data features3. data features
3. data features
艾鍗科技
?
心率血氧检测与运动促进
心率血氧检测与运动促进心率血氧检测与运动促进
心率血氧检测与运动促进
艾鍗科技
?
利用音乐&补尘辫;情境灯帮助放鬆
利用音乐&补尘辫;情境灯帮助放鬆利用音乐&补尘辫;情境灯帮助放鬆
利用音乐&补尘辫;情境灯帮助放鬆
艾鍗科技
?
无线声控遥控车
无线声控遥控车无线声控遥控车
无线声控遥控车
艾鍗科技
?
最佳光源的研究和实作
最佳光源的研究和实作最佳光源的研究和实作
最佳光源的研究和实作
艾鍗科技
?
无线监控网路摄影机与控制自走车
无线监控网路摄影机与控制自走车无线监控网路摄影机与控制自走车
无线监控网路摄影机与控制自走车
艾鍗科技
?
Reinforcement Learning
Reinforcement LearningReinforcement Learning
Reinforcement Learning
艾鍗科技
?
Linux Device Tree
Linux Device TreeLinux Device Tree
Linux Device Tree
艾鍗科技
?
人脸辨识考勤系统
人脸辨识考勤系统人脸辨识考勤系统
人脸辨识考勤系统
艾鍗科技
?
智慧家庭Smart Home
智慧家庭Smart Home智慧家庭Smart Home
智慧家庭Smart Home
艾鍗科技
?
智能健身
智能健身智能健身
智能健身
艾鍗科技
?
TinyML - 4 speech recognition
TinyML - 4 speech recognition TinyML - 4 speech recognition
TinyML - 4 speech recognition
艾鍗科技
?
Appendix 1 Goolge colab
Appendix 1 Goolge colabAppendix 1 Goolge colab
Appendix 1 Goolge colab
艾鍗科技
?
笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用
笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用
笔谤辞箩别肠迟-滨翱罢於餐馆系统的应用
艾鍗科技
?
02 IoT implementation
02 IoT implementation02 IoT implementation
02 IoT implementation
艾鍗科技
?
Tiny ML for spark Fun Edge
Tiny ML for spark Fun EdgeTiny ML for spark Fun Edge
Tiny ML for spark Fun Edge
艾鍗科技
?
2. 機器學習簡介
2. 機器學習簡介2. 機器學習簡介
2. 機器學習簡介
艾鍗科技
?
5.MLP(Multi-Layer Perceptron)
5.MLP(Multi-Layer Perceptron) 5.MLP(Multi-Layer Perceptron)
5.MLP(Multi-Layer Perceptron)
艾鍗科技
?
心率血氧检测与运动促进
心率血氧检测与运动促进心率血氧检测与运动促进
心率血氧检测与运动促进
艾鍗科技
?
利用音乐&补尘辫;情境灯帮助放鬆
利用音乐&补尘辫;情境灯帮助放鬆利用音乐&补尘辫;情境灯帮助放鬆
利用音乐&补尘辫;情境灯帮助放鬆
艾鍗科技
?
无线声控遥控车
无线声控遥控车无线声控遥控车
无线声控遥控车
艾鍗科技
?
最佳光源的研究和实作
最佳光源的研究和实作最佳光源的研究和实作
最佳光源的研究和实作
艾鍗科技
?
无线监控网路摄影机与控制自走车
无线监控网路摄影机与控制自走车无线监控网路摄影机与控制自走车
无线监控网路摄影机与控制自走车
艾鍗科技
?
Reinforcement Learning
Reinforcement LearningReinforcement Learning
Reinforcement Learning
艾鍗科技
?
人脸辨识考勤系统
人脸辨识考勤系统人脸辨识考勤系统
人脸辨识考勤系统
艾鍗科技
?
智慧家庭Smart Home
智慧家庭Smart Home智慧家庭Smart Home
智慧家庭Smart Home
艾鍗科技
?

IoT感測器驅動程式 在樹莓派上實作