物联网,顾名思义来讲是将某些硬件与网路连通,通过某些协议使用网络控制,在PCB上的IC进行编程控制一些继电器、PWM信号、AD/DA等。当然,这块PCB可以独立工作,能在脱机状态下进行使用,然后加入一些通信端口(如串口、网口等)通过COAP、MQTT或其他协议与网路互联,达到远程控制的效果。
本篇先从硬件层进行讲解,希望对刚入门小白有些启发,在IoT之路上更加顺畅。
举一个简单的例子,比如在不联网的情况下我想单独让一个灯亮或者灭,只需要让灯的两端有电势差即可,有了电势差后与灯的正负极相连,灯就会亮了(LED灯珠要加限流电阻,防止烧坏,LED工作的电流很小,本篇中不再赘述此电阻)。
那么,怎样产生电势差呢?众所周知,加一个电源就可以了。无需控制的时候当然没问题,当我们需要对这个LED控制的时候,就需要IC芯片的控制了,这个时候电势差怎么产生的呢?此时需要IC引脚的电平控制,而一般的IC的供电电压是3.3V或5V,那么这个IC的引脚所能提供的最高电圧也就是它的供电电压。当然我们在实际应用过程中很少会使用IC供电给外设,这种供电属于拉电流,一般使用的是灌电流方式,即使用外部电压供给外设高电平,而IC只需要拉低引脚,使引脚低电平,即可使外设工作。拉电流与灌电流说明如下图所示:
上边即是最简单的控制一个LED的例子,与控制继电器、蜂鸣器等原理相似。
接下来我们聊聊底层硬件或软件中最重要的通讯方式——串口。
无论在官方推荐的小熊派,还是说用的物联网IOT模组,都是用串口在向「云」发送一系列信息。
在底层硬件中存在两种通讯方式,即并行通讯和串行通讯,串行通信和并行通信都百是一种通信传输方式,都适用于计算机与计算机、计算机与外设之间的数据通信,在传输中存在相互转换的关系。但存在一定的区别,两者主要区别如下:
1、一次传输的传输量不同
并行通信度传送八路信号,一次并行传送传送完整的一个字节信息。串行通信在一个方向上只能传送一路信号,一次只能传送一个二进制位,传送一个字节信息时,只能一位一位地依次传送。
2、传输速度不同
串行的传输速度慢,但是对线路的要求专低一些,近几年来的由于串行接口在布线和占用空间少的优势越来越多的串行总线数据传输速度越来越快,类似USB等。并行的对线路的要求高,相对之前的串行数据传输来讲速度快。
3、传输距离不同
串行线路仅使用一对信号线,线路成本低并且抗干扰能力强,因此可以用在长距离通讯上;而并行线路使用多对信号线(还不包括额外的控制线路),线路成本高并且抗干扰能力差属,因此对通讯距离有非常严格的限制。
串口传输是串行数据传输的基础,在底层应用中最常见包括但不限于单片机。
硬件接线上最少接线3根,TXD、RXD和地线。其中TXD负责发送,相当于嘴巴,RXD负责接收,相当于耳朵,地线提供一个参考电平。
在两个串口设备连接的时候,地线参考电平连接之后,主机TXD要连接到外设的RXD上,而主机RXD要连接到外设的TXD上。这个地方我轻轻敲一下黑板,好多工程师即使知道这个事儿,也经常会类似错误。
软件上的程序设计也是大同小异。即从缓存区读取接收到的数据,然后根据协议进行处理。有库函数的用库函数会方便一点。如果只能用寄存器控制,那就只能乖乖的去设置寄存器了
转帖自网络