目录
前言
作为一名大二的学生,本学期也是学习了物联网关键技术相关的内容,在CSDN发布这篇文章,主要是想分享一下在课程上学习到的内容,以及一些心得。
相关内容介绍
物联网关键技术是指支撑物联网发展的一些核心技术,主要包括以下几个方面:
- RFID技术:RFID技术是物联网“让物说话”的关键技术。物联网中的RFID标签存储标准化的、可互操作的信息,并通过无线数据通信网络自动采集到中心信息系统中,实现物品的识别
- 传感器技术:传感器技术是物联网的关键技术之一,它主要用于感知、采集、处理和传输物体的环境和状态数据。目前广泛应用的传感器有温度传感器、湿度传感器、气压传感器、光学传感器等
- 无线网络技术:无线网络技术是实现物联网的基础。物联网中的设备可以使用多种通信方式与云端服务器进行通信,常用的有Wi-Fi、蓝牙、射频识别(RFID)、ZigBee等
- 人工智能技术:人工智能技术是对物体的“语音”内容进行分析,从而实现计算机自动处理的技术。人工智能涉及到机器学习、深度学习、自然语言处理、计算机视觉等领域
- 云计算技术:云计算技术是物联网的发展离不开的支撑技术。物联网终端的计算和存储能力有限,云计算平台可以作为物联网的大脑,实现海量数据的存储和计算
通过Arduino学习课程内容
由于课程的时长比较短,所以老师采用了Arduino来教学,通过学习Arduino,我认识到了物联网的重要性。如今,物联网已经渗透到各个领域,无论是家庭生活还是工业制造,都可以通过物联网连接不同的设备和系统,实现智能化管理和控制。而物联网的核心就是将传感器、通信、数据分析等技术相结合,实现设备间的互联互通。而Arduino作为物联网关键技术之一,为我们提供了一个简单而强大的平台来制作物联网设备和交互系统。
其次,通过Arduino学习,我了解到了Arduino的优势和应用。Arduino具有开放源代码、易用、价格低廉等优势,使得它成为了物联网开发的首选平台之一。通过Arduino,我们可以快速上手并实现各种功能,比如温湿度传感器、光线控制、远程监控等。而且,通过Arduino的各种扩展模块和编程能力,我们可以将其应用于各种领域,如家庭自动化、智能农业、智能医疗等。
对于Arduino确实是可以快速上手,我们只需要了解里面相关函数库的内容,具体怎么用,有什么用处,通过调用库里面的函数,来实现我们的功能。
案例分享以及心得
本学期也是做了很多案例,比如通过Arduino让ESP8266联网,再通过联网的ESP8266来让实现功能。
ESP8266概述
ESP8266是一款低成本的Wi-Fi模块,广泛应用于物联网和嵌入式系统开发。它由乐鑫科技公司(Espressif Systems)推出,借助其强大的功能和灵活的接口,成为物联网项目中的重要组件。 ESP8266集成了Wi-Fi功能,可以连接到无线网络,并通过TCP/IP协议与其他设备进行通信。它支持多种Wi-Fi加密模式和网络协议,包括STA(Station)模式和AP(Access Point)模式。在STA模式下,它可以作为Wi-Fi客户端连接到无线网络,实现与互联网的通信。而在AP模式下,它可以作为热点,允许其他设备连接到它,从而组建一个局域网。
ESP8266还具备了丰富的I/O口,包括通用输入输出(GPIO)、模拟输入输出(ADC/DAC)和PWM(脉宽调制)等接口,使得它可以连接到各种传感器、执行器和外设设备。此外,它也支持串口通信、SPI接口和I2C总线,与其他设备进行数据交互。
为了方便开发者使用,ESP8266提供了多种编程方式。最常见的是使用AT指令集进行编程,通过串口与模块进行交互。此外,乐鑫科技还开发了ESP8266非官方开发环境(ESP8266 Arduino Core),使得开发者可以使用Arduino IDE进行编程。这极大地降低了学习和使用ESP8266的门槛。
由于其低价和强大的功能,ESP8266在物联网项目和嵌入式系统中广泛应用。它可以用于远程监控、智能家居、智能农业、智慧城市等领域。同时,ESP8266还可以与其他微控制器(如Arduino)配合使用,为项目提供Wi-Fi连接和远程控制的能力。
那么以上的一些就是关于ESP8266的相关介绍,其实百度大部分都能查到,这边只是一个简单介绍一下。
接下来给大家分享一下通过Arduino让ESP8266联网,实现点亮板子上的LED
代码:
#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ESP8266mDNS.h>
#ifndef STASSID
#define STASSID "your-ssid"
#define STAPSK "your-password"
#endif
ESP8266WebServer ZXH_LED(80);
const int led = 4;
void setup(void) {
pinMode(led, OUTPUT);//管脚输出
digitalWrite(led, 0);//LED低电平
Serial.begin(115200);//设定串口初始化
WiFi.mode(WIFI_STA);//8266WiFi工作模式是sta,station
WiFi.begin("yz66", "12345678");//连接热点
Serial.println("");//串口输出
// Wait for connection等待连接 //开始连接WiFi,一直反复连接
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
//连接WiFi成功,跳出循环
Serial.println("");
Serial.print("Connected to ");
Serial.println(WiFi.SSID()); //通过串口监视器输出连接的wifi名称
Serial.print("IP address: ");
Serial.println(WiFi.localIP());//通过WiFi.localip()获取IP地址
//--------"启动网络服务功能-------- //
ZXH_LED.begin();//服务器开始工作
ZXH_LED.on("/",HTTP_GET,handleRoot);//连接成功,执行handleroot方法内容,斜杠为根目录或主页
ZXH_LED.on("/LED",HTTP_POST,handleLED);//设置处理LED控制请求的函数'handleLED'
ZXH_LED.on("/GLED",HTTP_POST,guanLED);//设置处理LED控制请求的函数'guanLED'
ZXH_LED.onNotFound(handleNotFound);//设置处理404情况的函数'handleNotFound'
Serial.println("HTTP server started ");
}
// 处理LED控制请求的函数'handleLED'
//-----------------------------------------------
void handleLED(){
digitalWrite(led,0); //LED的点亮
ZXH_LED.sendHeader("Location","/"); //跳转回页面根目录
ZXH_LED.send(303); //发送Http相应代码303跳转
}
// 处理LED控制请求的函数'guanLED'
//-----------------------------------------------
void guanLED(){
digitalWrite(led,1); //LED的熄灭
ZXH_LED.sendHeader("Location","/"); //跳转回页面根目录
ZXH_LED.send(303); //发送Http相应代码303跳转
}
//处理网站根目录“/”的访问请求 两个按钮
//----------------------------------
void handleRoot() {
ZXH_LED.send(200, "text/html", "<div style=\"text-align:center\"> <form action=\"/LED\" method=\"POST\"> <input type=\"submit\" value=\"K-LED\" style=\"font-size:30px;width:300px;height:150px;\"> </form></div>"
"<div style=\"text-align:center\"> <form action=\"/GLED\" method=\"POST\"><input type=\"submit\" value=\"G-LED\" style=\"font-size:30px;width:300px;height:150px;\"> </form></div>");
}
//访问失败
//------------------------------------
void handleNotFound() {
digitalWrite(led, 1);
ZXH_LED.send(404, "text/plain", "meiyou yong"); //访问失败 显示meiyou yong
digitalWrite(led, 0);
}
void loop(void) {
ZXH_LED.handleClient(); //开始执行服务器客户端方法 检查http服务器访问
MDNS.update();
}
代码截图
这个案列主要是让ESP8266联网之后,我们打开通过 Arduino创建的一个小网站,网站里面有两个按钮,点击就能控制LED灯,由于这边课程结束了,实物板子收回去了,不能给大家演示一下,有实物的可以通过以上例子来修改实现别的功能,也是可以的。
总结
通过本学期的Arduino学习,我对物联网的重要性和潜力有了更深刻的认识,同时也认识到了Arduino作为物联网关键技术的优势和应用。在今后的学习和工作中,我将继续探索和应用物联网技术,为构建智能化、便捷化的生活和工作环境做出贡献。
其它的案例链接
那么最后在这给大家分享一下我和我的好兄弟韦忠航一起做的一个ESP82866的小型智能家具
https://bbs.csdn.net/topics/615579482?spm=1001.2014.3001.6377
直接打开链接就能阅读相关内容啦。