【读教材】Smart Internet of Things Projects

这本教材主要以实例为主,通过小项目提高读者的实践能力。这对于新手来说,没有很详细的知识点,但我个人认为如果一开始就是从一点点的知识点再往上搭建知识体系,很容易失去学习的乐趣。
另外一点认识是物联网应该是嵌入式+云服务,在嵌入式的基础上,大量的数据在云端能发挥更大的作用。


Smart IoT Projects by Agus Kurniawan

思维导图

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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,193评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,306评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,130评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,110评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,118评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,085评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,007评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,844评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,283评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,508评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,667评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,395评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,985评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,630评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,797评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,653评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,553评论 2 352

推荐阅读更多精彩内容