欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

【阅读教材】智能物联网项目

最编程 2024-07-04 13:37:00
...

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


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

推荐阅读