美文网首页
【读教材】Smart Internet of Things Pr

【读教材】Smart Internet of Things Pr

作者: Bruce学习笔记 | 来源:发表于2019-07-12 12:02 被阅读0次

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


    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

    相关文章

      网友评论

          本文标题:【读教材】Smart Internet of Things Pr

          本文链接:https://www.haomeiwen.com/subject/uedekctx.html