“0”基础物联网IOT开发实践(上)——阿里云 MVP程磊

简介: 随着5G技术进入商用,万物互联的时代已经到来。杭州橡木桶科技合伙人、开源硬件社区极客工坊创始人程磊以树莓派4为基础开发平台,辅以Arduino等硬件,在直播中向大家展示了物联网硬件端开发的基本套路。

【MVP时间】线上峰会,一键收藏

《“0”基础物联网IOT开发实践》精彩直播

查看下篇文章,点击这里。

物联网开发的技术链比较长,很多情况下,如果没有很好的引导,很难从互联网层面转到物联网层面,也不可能真正的0基础转行。

下文以树莓派4和Arduino为例,由浅入深来模拟一个物联网应用开发的实例。树莓派4的初始化的教程在语雀上有相关的介绍(https://www.yuque.com/miniqiang)。

一、Hello World

任何一个软件开发者都会先从HelloWorld程序起步,物联网开发也一样,不过物联网硬件开发的HelloWorld程序一般是通过控制灯的闪烁(点灯实验)来实现,与软件开发不同的是硬件的HelloWorld程序会贯穿我们整个的物联网应用开发过程,一定程度上也是该过程中最重要的一个程序。

(一)树莓派4的点灯实验

我们将树莓派4连接到计算机上,通过一个小的程序来实现Led灯的控制,也就是HelloWorld程序了,其python代码如下。

coding=utf-8

import RPi.GPIO as gpio
import time

gpio.setmode(gpio.BOARD) #IO口编码规则选择板卡编号
gpio.setup(5,gpio.OUT) #5号口输出

while True:
gpio.output(5,gpio.HIGH) # 5号引脚输出高电平
time.sleep(1) #停顿1秒
gpio.output(5,gpio.LOW) #5号引脚输出低电平
time.sleep(1) #停顿1秒
通过运行以上代码,我们便能实现Led灯的闪烁,实现了一个最简单的控制硬件的程序。

(二)Arduino的点灯实验

大部分情况下我们是不会直接用计算机进行点灯的,因为系统会直接调用管脚,而管脚是直接接到硬件的CPU上的,万一接错了一些地方,可能会造成严重的后果,甚至烧毁CPU。一般来说,我们会使用Arduino板,通过USB来对其进行控制,再通过网线等连接到其他硬件上进行复杂的开发工作。
以下是实现Arduino点灯实验的Blink代码(C++):
void setup()
{
pinMode(2,OUTPUT);
}
void loop(){
digitalWrite(2,HIGH);
delay(1000); //ms
digitalWrite(2,LOW);
delay(1000);
}
在选择好相应的板卡和串口后,点击上传程序,会自动编译,程序成功上传到板子中后就可以看到Led灯如程序设定的有规律亮灭现象,这就说明我们的点灯实验成功了。

(三)通过Json来进行控制Led灯

上面两个实验中,灯的亮灭均是由写好的程序来控制的,不受我们行为或者指令的控制,那么如果要实现数据可控,比如通过阿里云来控制的话,我们要怎么做呢?这里我们举一个例子,我们用json来传递我们的指令,进而控制灯的开关。实现该功能的步骤大致如下:
1、初始化端口;
2、串口处理,如果收到了消息,就把消息取出来交给json处理,函数代码如下(C++):
//串口处理
if(Serial.available()>0)//检查串口是否有数据,并且缓冲区是否可用

delay(50);
byte SerialDataLen = Serial.available();//获取消息长度
char SerialData[SerialDataLen];
for(int a=0;a<SerialDataLen;a++)
{

 SerialData[a]=rSerial.read();

}

3、json处理,如果错误,就返回一个json错误,并且返回程序,如果正确,就会执行动作,其中json消息类似{"O":2,"D":0-1},"O"代表消息输出的串口,"D"代表动作,0为关灯,1为开灯,json处理函数的代码如下(C++):
//json处理
size_t capacity = JSON_ARRAY_SIZE(2)+30;
DynamicJsonDocument JSON(capacity);
//判断串口消息是否可以解析
DeserializationError error = deserializeJson(JSON.SerialData);
if(error)//判断对象是否符合标准

Serial.printin("json.error");
return;

4、执行动作,其代码如下(C++):
//执行动作
byte sw = JSON['O'];
byte type = JSON['D'];
digitalWrite(sw.type); //配置控制状态
在完成以上步骤程序的书写、编译以及上传之后,通过串口监视器,发送json消息给串口,我们就实现了通过USB线的方式来人为控制灯的亮灭。

二、树莓派4+Arduino的点灯实验

上面通过Json来进行控制Led灯的实验我们仍然是直接用的计算机来传递指令,下面我们用树莓派来进行控制。我们用USB将Arduino板子和树莓派4连接在一起,如果树莓派4检测到了板子,就会多出一个ttyUSB0的串口,代表设备连接成功。我们要实现的功能与上面的实验类似,就是通过指令来控制连接在Arduino板子上的Led灯的开关。其Blink代码如下(python):
import serial,time,json
port = serial.Serial(port='dev/ttyUSB0',baudrate=9600,

  bytesize=8,parity='N',stopbits=1,timeout=2)

time.sleep(2)
On = {'O':2,'D':0}
On = json.dums(On)
Off = {'O':2,'D':0}
Off = json.dumps(Off)
while True:

port.write(str.encode(On))
time.sleep(1)
port.write(str.encode(Off))
time.sleep(1)

通过以上程序我们就实现了通过计算机软件来控制前端的硬件设备,在该例子中树莓派4通过USB线每次给Arduino板子发送一条指令来控制Led灯的亮灭。可能大家会有疑问,上面的实验有什么用呢,就是我们可以通过上面的程序来控制继电器,进而通过继电器(如下图)来控制家里的开关,比如小米的智能插座,然后实现控制家里电器开关的作用,最终可以实现智能家居。

image.png

《“0”基础物联网IOT开发实践》精彩直播

查看下篇文章,点击这里。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
3月前
|
人工智能 物联网 Android开发
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
【04】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-自定义一个设置输入小部件组件-完成所有设置setting相关的页面-优雅草卓伊凡
215 92
|
2月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
774 42
|
3月前
|
人工智能 物联网 Android开发
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
126 23
【03】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-在lib目录新建自定义库UtilsLibrary,ComponentLibrary,CommonConstLibrary完成设置SettingsView.ets初始公共类书写-优雅草卓伊凡
|
3月前
|
存储 人工智能 物联网
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
141 14
【02】优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-登录页面LoginView.ets完成-并且详细解释关于arkui关于 CommonConst, commonColor, InputDataModel-优雅草卓伊凡
|
3月前
|
人工智能 物联网 编译器
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
108 11
【01】优雅草星云物联网AI智控系统从0开发鸿蒙端适配完成流程-初始化鸿蒙编译器deveco studio项目结构-UI设计图切片下载-优雅草卓伊凡
|
3月前
|
人工智能 前端开发 物联网
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
77 0
【05】20250416优雅草星云物联网AI智控系统从0开发鸿蒙端适配-deveco studio-增加告警中心相关卡片页面WarningCardWidget相关-增加Canvas 绘制折线图-Canvas 绘制柱状图-首页-优雅草卓伊凡
|
5月前
|
物联网 数据挖掘 BI
基于阿里云物联网平台(IoT)的智能家居系统开发与部署
随着物联网技术的发展,智能家居成为提升生活品质的重要方向。阿里云物联网平台提供设备接入、数据管理及应用开发能力,支持亿级设备接入、高效数据管理和灵活应用开发,确保系统安全。本文通过实战案例展示如何基于该平台构建智能家居系统,涵盖设备接入、远程控制、场景联动与数据分析等功能,助力企业快速部署智能家居解决方案。
|
8月前
|
传感器 存储 物联网
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点
在物联网(IoT)快速发展的今天,C语言作为物联网开发中的关键工具,以其高效、灵活、可移植的特点,广泛应用于嵌入式系统开发、通信协议实现及后端服务构建等领域,成为推动物联网技术进步的重要力量。
253 1
|
8月前
|
安全 物联网 物联网安全
揭秘区块链技术在物联网(IoT)安全中的革新应用
揭秘区块链技术在物联网(IoT)安全中的革新应用
|
8月前
|
安全 物联网 网络安全
智能设备的安全隐患:物联网(IoT)安全指南
智能设备的安全隐患:物联网(IoT)安全指南
595 12

物联网

+关注

相关产品

  • 物联网平台
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等