【讀教材】Smart Internet of Things Projects

這本教材主要以實(shí)例為主刁愿,通過小項目提高讀者的實(shí)踐能力觉壶。這對于新手來說脑题,沒有很詳細(xì)的知識點(diǎn),但我個人認(rèn)為如果一開始就是從一點(diǎn)點(diǎn)的知識點(diǎn)再往上搭建知識體系争剿,很容易失去學(xué)習(xí)的樂趣已艰。
另外一點(diǎn)認(rèn)識是物聯(lián)網(wǎng)應(yīng)該是嵌入式+云服務(wù),在嵌入式的基礎(chǔ)上蚕苇,大量的數(shù)據(jù)在云端能發(fā)揮更大的作用哩掺。


Smart IoT Projects by Agus Kurniawan

思維導(dǎo)圖

Preface

Creating basic IoT projects is common but imagine building smart IoT projects that can extract data from physical devices, thereby making decision itself.

Chapter 1: making your IoT project smart

1.1 introducing basic statics and data science

Static terms: mean, median, variance and standard deviation

1.2 python for computation statics and data science

Python provides simple programming syntax and a lot of APIs

1.3 python libraries for computational statistics and data science

numpy: handle N-dimensional arrays and integrating C/C++ and Fortran code

Pandas: handle table-like structures

Scipy: contain functions for liner algebra, interpolation, integration, clustering and so on

Scikit-learn: machine-learning library

Shogun: a machine-learning library focuses on large-scale kernel methods

Sympy: symbolic mathematical computations

Statsmodels: a python module used to process data, estimate statistical models and test data

1.4 building a simple program for statistics

1.5 IoT devices and platforms

Several IoT platforms that are widely used in client side

Arduino:

The board scheme is shared and make sure you use a board and software from the same company

We can use Arduino shields to extend I/O and functionalities

Arduino boards from Arduino.cc : Arduino Uno/ Arduino 101/ Arduino MKR1000

Raspberry Pi:

A mini-computer for educational purposes

Raspberry Pi boards: Raspberry Pi 3(Wi-Fi and Bluetooth)/ Raspberry Pi Zero(with a micro HDMI and no network module)

BeagleBone Black(BBB):

More powerful than Raspberry Pi

BeagleBone Green(BBG):

Cheaper than BBB

ESP8266 MCU:

A low-cost Wi-Fi with integrated TCP/IP

TI CC3200 MCU:

A Wi-Fi based in the ARM Cortex-M4 Texas Instruments

1.6 Sensing and actuating on IoT devices

Arduino-Sketch language-light sensor/humidity and temperature sensor

Raspberry Pi-OS software/python language/GPIO-/a blinking LED

1.7 Sensing through sensor devices

Raspberry Pi-python-DHT22 sensor

1.8 Building a smart temperature controller for your room

A PID controller program is developed using python and running on the Raspberry Pi

Basic idea of PID controller: read a sensor, then compute the desired actuator output by calculating proportional, integral and derivative responses and summing those three components to compute the output

Translate PID controller formula into python

Chapter2: Design System for IoT projects

2.1 Introduction to decision system and machine learning

A system that makes a decision based on several input parameters

Machine learning is a process in which we teach a machine to understand and achieve a specific goal, varieties of programs are implemented in machines so they can make decision.

2.2 Decision system-based Bayesian

Bayesian uses the manipulation of conditional probabilities approach to interpret data.

Use the python library such as PyMC to build a Bayesian model

Sample: a smart water system

2.3 Decision system-based fuzzy logic

Fuzzy logic is a form of many-valued logic in which the truth values of variables may be any real number between 0 and 1

Several fuzzy logic algorithms have been implemented on the scikit-fuzzy library

Sample: a temperature control system

Chapter3: Building your own machine vision

3.1 Introducing machine vision

A machine vision is a machine with camera capabilities and an understanding of what objects are, the machine acquires, analyzes, and understands a still image or video. This field involves knowledges such as image processing, pattern recognition, and machine learning.

General design of a machine learning: camera-image collection-image processing (remove noise/filter/transform)-feature extraction-classification/identification

3.2 Introducing the OpenCV library

An open source library that is designed for computational efficiency and with a strong focus on real-time applications, providing a complete library from basic computation and image processing to pattern recognition and machine learning

3.3 Deploying OpenCV on Raspberry Pi

Install required libraries-download the OpenCV source via Git-install the OpenCV library

3.4 Building a simple program with OpenCV

Circle detection -CHT method

3.5 Working with camera modules

Camera modules based on CSI interface: official cameras, Raspberry Pi camera/ Raspberry Pi NoIR camera

Camera modules based on USB interface: common, known as web camera

Camera modules based on serial interface: UART/serial pins

Camera modules with multi-interfaces: Pixy CMUcam5

3.6 Accessing camera modules from the OpenCV library

Use the VideoCapture object

3.7 Introducing pattern recognition for machine vision

Haar Cascades, use AdaBoost algorithm with a classifier

3.8 Building a tracking vision system for moving objects

Change a still image to a frame image from a camera

3.9 Building your own IoT machine vision

Build machine vision with Pixy CMUcam5 and track an object

Chapter4: Making your own autonomous car robots

Build a car robot by integrating some sensors and actuator devices to make robot run without human interference

4.1 Introducing autonomous systems

Perform something automatically by self-learning

Key elements in an autonomous system: cognition, perception, planning, control, sensing, actuation

4.2 Introducing mobile robots

MCU (Microprocessor Central Unit) : a programmable board, such as Arduino, Intel Edison, BegleBone Black/Green, Raspberry Pi

Motor drive and motors

Sensors: capture physical inputs and convert to digital data

Actuators: interact with the environment

4.3 Building your own car robot

Checklist: objective, MCU, battery, sensors and actuators

Platform DIY and assembly

A simple robot with simple movements based on avoiding obstacles-HC_SR04-NewPing library

Controlling a car robot from a computer using Bluetooth modules-HC_06-pyserial library

Working with a GPS module for navigation-U_box NEO_6M

Visualize GPS data into latitude and longitude using map engine platforms -Google Maps API-Flask library

Sending the GPS data to the web server-Flask library

4.4 Making your own autonomous car

The biggest issue is the path algorithm-how the robot with no map visits all area

With a semi-autonomous robot, we can use middleware to guide the robot about a cleaning path

Chapter5: Building voice technology on IoT projects

Listen and speak

5.1 Introducing a speech technology

The speech technology is built by speech recognition research, it covers speech2text and text2speech topics and different language models.

5.2 Introducing sound sensors and actuators

Sound sensors: a microphone module

Actuators: passive buzzer or speaker

5.3 Introducing pattern recognition for speech technology

Speech-analog2digital processing-signal processing-pattern recognition-text

In pattern recognition, we do perform speech recognition method, such as HMM to identity sound to word. The input of pattern recognition is feature extraction, the output is applied as speech2text and speech command.

5.4 Reviewing speech and sound modules for IoT devices

Speech module: EasyVR3&EasyVR shield 3 from VeeaR

Sound module: Emic 2

5.5 Building your own voice commands for IoT projects

Build voice commands on Arduino on windows OS to turn om/off a LED: setting up Easy VR shield 3-building voices commands-writing your voice command board-writing sketch program-testing

Make the Arduino speak with Emic 2: setting up-wiring-writing sketch program-testing

Make the Raspberry Pi speak via audio jack: setting up-writing python program

Chapter6: Building data science-based cloud for IoT projects

6.1 Introducing cloud technology

Moving the local computing and data to other servers over an Internet network

Three terms in cloud technology:

SaaS: software as a service

PaaS: platform as a service

IaaS: infrastructure as a service

6.2 Introducing cloud-based data science

In data science, computing such as regression, classification and prediction needs huge sources to perform tasks, data science based on cloud is a solution.

6.3 Connecting IoT boards to cloud-based server

A board with either an Ethernet module or a wireless module has networking capabilities.

Cloud-based platforms: Microsoft Azure IoT/Amazon AWS IoT/Arduino Cloud

Microsoft Azure IoT Hub: setting up Microsoft Azure IoT Hub-registering IoT device-writing program

Arduino Cloud: Setting up Arduino cloud-writing for demo-adding Arduino cloud library-updating Arduino cloud web SSL certificate-writing program for Arduino cloud

6.4 Building data science-based cloud

With the obtained data, we should analyze the data to obtain insight by machine learning or data science-based cloud servers

Deploying Azure machine learning-publishing Azure ML as web service-making IoT application with data science-based cloud

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涩笤,隨后出現(xiàn)的幾起案子嚼吞,更是在濱河造成了極大的恐慌,老刑警劉巖蹬碧,帶你破解...
    沈念sama閱讀 218,640評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件舱禽,死亡現(xiàn)場離奇詭異,居然都是意外死亡恩沽,警方通過查閱死者的電腦和手機(jī)呢蔫,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人片吊,你說我怎么就攤上這事绽昏。” “怎么了俏脊?”我有些...
    開封第一講書人閱讀 165,011評論 0 355
  • 文/不壞的土叔 我叫張陵全谤,是天一觀的道長。 經(jīng)常有香客問我爷贫,道長认然,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,755評論 1 294
  • 正文 為了忘掉前任漫萄,我火速辦了婚禮卷员,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘腾务。我一直安慰自己毕骡,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評論 6 392
  • 文/花漫 我一把揭開白布岩瘦。 她就那樣靜靜地躺著未巫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪启昧。 梳的紋絲不亂的頭發(fā)上叙凡,一...
    開封第一講書人閱讀 51,610評論 1 305
  • 那天,我揣著相機(jī)與錄音密末,去河邊找鬼握爷。 笑死,一個胖子當(dāng)著我的面吹牛严里,可吹牛的內(nèi)容都是我干的饼拍。 我是一名探鬼主播,決...
    沈念sama閱讀 40,352評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼田炭,長吁一口氣:“原來是場噩夢啊……” “哼师抄!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起教硫,我...
    開封第一講書人閱讀 39,257評論 0 276
  • 序言:老撾萬榮一對情侶失蹤叨吮,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞬矩,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茶鉴,經(jīng)...
    沈念sama閱讀 45,717評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評論 3 336
  • 正文 我和宋清朗相戀三年景用,在試婚紗的時候發(fā)現(xiàn)自己被綠了涵叮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片惭蹂。...
    茶點(diǎn)故事閱讀 40,021評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖割粮,靈堂內(nèi)的尸體忽然破棺而出盾碗,到底是詐尸還是另有隱情,我是刑警寧澤舀瓢,帶...
    沈念sama閱讀 35,735評論 5 346
  • 正文 年R本政府宣布廷雅,位于F島的核電站,受9級特大地震影響京髓,放射性物質(zhì)發(fā)生泄漏航缀。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評論 3 330
  • 文/蒙蒙 一堰怨、第九天 我趴在偏房一處隱蔽的房頂上張望芥玉。 院中可真熱鬧,春花似錦备图、人聲如沸灿巧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽砸烦。三九已至弃鸦,卻和暖如春绞吁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背唬格。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評論 1 270
  • 我被黑心中介騙來泰國打工家破, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人购岗。 一個月前我還...
    沈念sama閱讀 48,224評論 3 371
  • 正文 我出身青樓汰聋,卻偏偏與公主長得像,于是被迫代替她去往敵國和親喊积。 傳聞我的和親對象是個殘疾皇子烹困,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評論 2 355

推薦閱讀更多精彩內(nèi)容