【阅读教材】智能物联网项目
这本教材主要以实例为主,通过小项目提高读者的实践能力。这对于新手来说,没有很详细的知识点,但我个人认为如果一开始就是从一点点的知识点再往上搭建知识体系,很容易失去学习的乐趣。
另外一点认识是物联网应该是嵌入式+云服务,在嵌入式的基础上,大量的数据在云端能发挥更大的作用。
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
上一篇: libvirt 介绍和使用
推荐阅读
-
物联网智能项目(附案例介绍)
-
物联网智能项目探索与编程 - 4. 智能医疗保健
-
物联网智能项目
-
使用物联网技术,加速“中国制造”智能化进程
-
阿里推出IoTConnect,我们是否正式进入了智能物联网时代?
-
智慧农业:物联网和数据可视化如何打造智能大棚系统
-
【摩尔线程+Colossal-AI强强联手】MusaBert登上CLUE榜单TOP10:技术细节揭秘 - 技术实力:摩尔线程凭借"软硬兼备"的技术底蕴,让MusaBert得以从底层优化到顶层。其内置多功能GPU配备AI加速和并行计算模块,提供了全面的AI与科学计算支持,为AI推理和低资源条件下的大模型训练等场景带来了高效、经济且环保的算力。 - 算法层面亮点:依托Colossal-AI AI大模型开发系统,MusaBert在训练过程中展现出了卓越的并行性能与易用性,特别在预处理阶段对DataLoader进行了优化,适应低资源环境高效处理海量数据。同时,通过精细的建模优化、领域内数据增强以及Adan优化器等手段,挖掘和展示了预训练语言模型出色的语义理解潜力。基于MusaBert,摩尔线程自主研发的MusaSim通过对比学习方法微调,结合百万对标注数据,MusaSim在多个任务如语义相似度、意图识别和情绪分析中均表现出色。 - 数据资源丰富:MusaBert除了自家高质量语义相似数据外,还融合了悟道开源200GB数据、CLUE社区80GB数据,以及浪潮公司提供的1TB高质量数据,保证模型即便在较小规模下仍具备良好性能。 当前,MusaBert已成功应用于摩尔线程的智能客服与数字人项目,并广泛服务于语义相似度、情绪识别、阅读理解与声韵识别等领域。为了降低大模型开发和应用难度,MusaBert及其相关高质量模型代码已在Colossal-AI仓库开源,可快速训练优质中文BERT模型。同时,通过摩尔线程与潞晨科技的深度合作,仅需一张多功能GPU单卡便能高效训练MusaBert或更大规模的GPT2模型,显著降低预训练成本,进一步推动双方在低资源大模型训练领域的共享目标。 MusaBert荣登CLUE榜单TOP10,象征着摩尔线程与潞晨科技联合研发团队在中文预训练研究领域的领先地位。展望未来,双方将携手探索更大规模的自然语言模型研究,充分运用上游数据资源,产出更为强大的模型并开源。持续强化在摩尔线程多功能GPU上的大模型训练能力,特别是在消费级显卡等低资源环境下,致力于降低使用大模型训练的门槛与成本,推动人工智能更加普惠。而潞晨科技作为重要合作伙伴,将继续发挥关键作用。
-
国产智能Wi-Fi插头:聚焦于电源功能的物联网创新设计
-
深入浅出,一起探索智能物联网技术的理论与实战应用全景!
-
实操案例:将智能手拿测温仪与阿里云物联网平台无缝对接的探索