天气预报实时显示系统设计_曹恒镇-程序员宅基地

技术标签: 爬虫  知识分享  python  arduino  raspberry pi  

综述


faust.cao–曹恒镇

由树莓派作为上位机,定时运行Python爬虫程序,将结果通过蓝牙发送给Arduino,Arduino接收到数据,将数据显示在1602LCD屏上,如果数据中显示会下雨,则亮起红色LED以提醒并(拓展:使用SIM900GSM模块,通过Arduino发信息给手机实时提醒。)

电子器件:

  1. raspberry pi 3B
  2. Arduino Uno
  3. HC-05蓝牙主从一体模块
  4. 1602LCD显示屏
  5. HC-SR04超声波测距模块
  6. 9V电池
  7. 1000Ω电阻
  8. 红色,绿色LED
  9. SIM900 GSM模块(拓展)

树莓派上位机

一:蓝牙配置
目前知道有2种方法:
A:完全通过Linux命令行完成

python环境下使用“import bluetooth”如果报出错误信息“ImportError: No module named bluetooth”则说明没有安装相应的包,执行一下命令安装。

$sudo apt-get update
$sudo apt-get install bluetooth  bluez  python-bluez
   
   
    
  • 1
  • 2
  • 1
  • 2

进入蓝牙连接工具

$ bluetoothctl
[NEW] Controller B8:27:EB:D3:61:B0 raspberrypi [default]
[bluetooth]# agent on
Agent registered
[bluetooth]# default-agent
Default agent request successful
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

开始扫描周围蓝牙设备

[bluetooth]# scan on 
Discovery started
[CHG] Controller B8:27:EB:D3:61:B0 Discovering: yes
[NEW] Device 98:14:01:10:C5:32 HC-05
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

连接蓝牙设备

[bluetooth]# pair 98:14:01:10:C5:32 
Attempting to pair with 98:14:01:10:C5:32 
[CHG] Device 98:14:01:10:C5:32 Connected: yes
Connected: yes
Request PIN code
[agent] Enter PIN code: 1234
[CHG] Device 98:14:01:10:C5:32 UUIDs:
        00001101-0000-1000-8000-00805f9b34fb
[CHG] Device 98:14:01:10:C5:32 Paired: yes
Pairing successful
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

生成rfcomm0 文件(要用)

$ sudo rfcomm bind 0 98:14:01:10:C5:32

   
   
    
  • 1
  • 2
  • 1
  • 2

连接蓝牙设备后,会在树莓派的【/dev】目录中创建一个蓝牙设备的虚拟文件 /dev/rfcomm0

如果大家觉得这方法繁琐且难以记住,还有一种相对简答方法:

B:先通过桌面,再通过命令行
较新的树莓派桌面支持显示蓝牙设备,我们可以通过桌面操作连接蓝牙
升级安装蓝牙相关软件包
关键第三步用来更新桌面环境,我的桌面版本老,故要执行

$sudo apt-get update 
$sudo apt-get upgrade -y 
$sudo apt-get dist-upgrade -y 
$sudo apt-get install pi-bluetooth bluez bluez-firmware blueman
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

找到桌面蓝牙图标
这里写图片描述

之后的操作和命令行一样:
先进入bluetoothctl

$ bluetoothctl

   
   
    
  • 1
  • 2
  • 1
  • 2

找到对应的蓝牙地址(这是会自动显示再桌面下已连接的蓝牙设备)
再退出

exit
   
   
    
  • 1
  • 1

最后生成rfcomm0 文件(要用)

$ sudo rfcomm bind 0 98:14:01:10:C5:32

   
   
    
  • 1
  • 2
  • 1
  • 2

二: python网络爬虫获取天气预报
首先导入python相应模块

INDEX:
Requests 是用Python语言编写,基于 urllib,采用 Apache2 Licensed 开源协议的 HTTP 库。它比 urllib 更加方便,可以节约我们大量的工作,完全满足 HTTP 测试需求。Requests 的哲学是以 PEP 20 的习语为中心开发的,所以它比 urllib 更加 Pythoner。更重要的一点是它支持 Python3

Beautiful Soup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。
Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,Beautiful Soup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。
Beautiful Soup已成为和lxml、html6lib一样出色的python解释器,为用户灵活地提供不同的解析策略或强劲的速度。

serial 用于读串口的数据,使用非常的方便

time 处理与时间有关的操作,包括程序中断等

import requests
from bs4 import BeautifulSoup
import serial
from time import sleep#程序中断执行函数
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

如果导入出现困难,用linux命令行进行下载更新
法1:

$sudo apt-get install python-requests
   
   
    
  • 1
  • 1

法2:(前提是已经下载python pip 模块)

$sudo pip install python-requests
   
   
    
  • 1
  • 1

获得各城市天气预报网站函数

def get_url(city_name):#输入参数为城市名
    url = 'http://www.weather.com.cn/weather/'
    #打开存储对应城市对应网址地址的txt文档
    with open('city.txt', 'r', encoding='UTF-8') as fs:
        lines = fs.readlines()
        #对文件读取遍历
        for line in lines:
            if(city_name in line):#发现城市名
                code = line.split('=')[0].strip()#取得相应数字
                return url + code + '.shtml'#加到网址地址后
    raise ValueError('invalid city name')#未找到该城市
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

同路径下有个存储对应城市具体地址的txt文档
格式:
101010100=北京
101010200=海淀

网络爬虫获取地址中的内容
用简单的 requests 配合 BeautifulSoup 获取预报信息并保存。
下面两步根据链接地址把网页内容抓下来,然后进行解析,得到要保存的数据,返回的 content 是一个列表,每个元素是要保存的一行内容。

def get_content(url, data=None):
    rep = requests.get(url)
    rep.encoding = 'utf-8'
    return rep.text

def get_data(htmltext, city):
    content = []
    bs = BeautifulSoup(htmltext, "html.parser")
    body = bs.body
    data = body.find('div', {
     'id': '7d'})
    ul = data.find('ul')
    li = ul.find_all('li')
    for day in li:
        line = [city]
        date = day.find('h1').string
        line.append(date)
        text = day.find_all('p')
        line.append(text[0].string)
        if text[1].find('span') is None:
            temperature_H = None
        else:
            temperature_H = text[1].find('span').string.replace('℃', '')
        temperature_L = text[1].find('i').string.replace('℃', '')
        line.append(temperature_H)
        line.append(temperature_L)
        content.append(line)
    return content
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

对所获得信息进行处理

def finds(strings):#中文字符串
#找相应中文
    a=strings.find("雨",0)
    b=strings.find("云",0)
    c=strings.find("晴",0)
    if a!=-1:
        return 'r'#有雨发送‘r’
    if b!=-1:
        return 'c'#有云发送‘c’
    if c!=-1:
        return 's'#有阳发送‘s’

    #对没有天气情况的返回为‘N’,result列表储存今明2天天气情况
if result[0][3]==None:
    result[0][3]='N'
if result[0][4]==None:
    result[0][4]='N'
if result[1][3]==None:
    result[1][3]= 'N'
if result[1][4]==None:
    result[1][3]='N'        

   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22

三: 与Arduino下位机通信

 #蓝牙串口虚拟文件
 port='/dev/rfcomm0'
 serial=serial.Serial(port,9600)#设置蓝牙波特率

for i in range(1,10):#多次发送保证发送成功
            #调用serial.write()其在python3中只能一位一位发送,故将数据转为按位发送
                serial.write(bytes(finds(result[0][2]),'UTF-8'))
                #发送空格,分开各数据
                serial.write(bytes(' ','UTF-8'))
                serial.write(bytes(result[0][3],'UTF-8'))
                serial.write(bytes(' ','UTF-8'))
                serial.write(bytes(result[0][4],'UTF-8'))
                serial.write(bytes(' ','UTF-8'))
                serial.write(bytes(finds(result[1][2]),'UTF-8'))
                serial.write(bytes(' ','UTF-8'))
                serial.write(bytes(result[1][3],'UTF-8'))
                serial.write(bytes(' ','UTF-8'))
                serial.write(bytes(result[1][4],'UTF-8'))
                serial.write(bytes(' ','UTF-8'))
                serial.flushInput()#清除串口缓冲区
                sleep(.8)#程序终止运行0.8s,太快CPU费劲,程序也容易卡,LCD也会有反应不过来,更新过快
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21

Arduino 下位机:

一: 获得树莓派数据
在arduino中蓝牙与串口使用方法相同

void got ()
  //收到蓝牙信号   
{
     if (Serial.available())
     //不停读取发送的一个个位,最多会有16位数据
  {
     for (int i=0;i<16;i++)
   {
     a=Serial.read();
     //将数据给数组
     b[i]=a;
     if (b[i]=='s')
//如果接收到要下雨信息,pin8至高电平,点亮红色LED提醒
     {digitalWrite(9,HIGH);
     }
     if (b[i]=='r')
    //如果接收到要天晴信息,pin9至高电平,点亮绿色LED
     {digitalWrite(8,HIGH);
    }    
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

二:在LCD上显示
要导入”LiquidCrystal”库
这样2行便解决

# include <LiquidCrystal.h>
 //设置光标位置   
lcd.setCursor(i,2);
 //写入字符串
lcd.print(b[i]);       
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

三:数据更新
有2种不同的选择:
A:通过超声波传感器接收距离信息,如果距离小于某值,则说明有人来了,向树莓派发送信息,树莓派进行数据更新
获得距离

//超声波传感器输出端       
# define 6 trig
 //超声波传感器输入端 
# define 6 trig

float cm;//存储探测距离
float temp;//存储高脉冲信号长度

void distance ()
{digitalWrite(trig,LOW);
 delayMicroseconds(2);
 digitalWrite(trig,HIGH);//给一个10us秒的高脉冲,激发传感器
 delayMicroseconds(10);
 digitalWrite(trig,LOW);

 temp=float(pulseIn(echo,HIGH));//检测计算传感器发出后接受到的高脉冲时长,其正比于距离
 cm=temp*17/1000;//公式换算}
}
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

循环loop函数中进行检测更新发数据给树莓派

void loop()
{ distance();//获得距离
  if(cm<50)
  {Serial.write(int(cm));//发送信息给树莓派
  for (int i=0;i<11;i++)
   {got();//多次获得数据,保证数据正确完整
   lcd.setCursor(1,0);
   lcd.print("today tomorrow");//写明今明两天
   delay(800);}}//延时与树莓派相匹配                      
}       
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

B:使用程序中断定时进行:
这也有2种方法:
a:使用python time 模块的sleep函数,执行中断一段时间,之后继续执行
例如我们让每3小时更新一下,只要加上”sleep(60*60*3)”并稍微改动即可

b:使用linux下的crontab工具,设置程序定时执行
打开在pi用户下的crontab

$sudo crontab -u pi -e
   
   
    
  • 1
  • 1

写下

7 0 * * * python weather2.py
11 0 * * * python weather2.py
16 0 * * * python weather2.py

20 0 * * * python weather2.py
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

其格式是:
hour minute day month year command
退出vim编辑器后,很重要的一点是一定要执行如下命令,否则无法执行

$sudo /etc/init.d/cron restart  
   
   
    
  • 1
  • 1

则python程序将在7,11,16,20点执行
四:电路连接
不想用Fritzing画图了,直接写了
1.LCD-Arduino这里写图片描述
将电位器换成1000Ω电阻,另一端接地
2.HC-SR04
trig-6
echo-7

3.HC-05
TX-RX
RX-TX

4.LED
红+-pin8
绿+-pin9
5.电源
考虑到盒子小体积,我使用了较小的9V电池,分别直接接IO口的VIN与GND,没有接电源接口,主要是缩小体积。

五:拓展短信通知(没钱买模块啊!树莓派一买就要吃土了!!还有关键Uno上只有一个RX,TX,得换arduino mega)
加个函数再调用就行

void sendSms(String phonecode ,String content) 
  {
     //电话号码 ,短信内容 
  Serial3.println("AT+CMGS=\""+phonecode+"\"");
  delay(500);//必须延时,不加延时可以自己看结果
  Serial3.print(content);//短内容为content;
  //不知为什么加这个?
  Serial3.write(0x1A)
  }
   
   
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

总体包装:

先是用杜邦线连接调试,然后花了一个下午多把电路焊在洞洞板上(布线自己还算满意,学长或许就不这么认为了…),然后偶然看到实验室的一个盒子大小刚好适合,便顺便把盒子改造了下,把他塞进去了,还不错。时间比较紧,焊接制作各过程都没拍照,关键是近期手机坏了,不能拍照!
最后给一张我用老手机拍的模糊的最终成品照:
这里写图片描述

总结:

大一下学期学的较乱,黑白道(软硬件)通吃,却都很不精,感觉有点不踏实,不过想想以后又不是靠这些吃饭(至少不大可能),觉得现在多了解些挺好,打好通识工科,为以后打基础吧,这学期从最初的stm32,到python与OpenCV图形处理,再到树莓派与linux,计划之后再学学电路基础,偏点硬件。
PS:
该项目是实验室二轮考核的题目,在匆忙之中将其完成,应该包含了大部分我学习的内容,还是比较综合的吧,可能偏简答了,但觉得实验室应该没人做过这个,应该算是较新的领域了,
相对比较实用(这也是我选择项目的主要考虑因素)。也是完成了,感觉满满的成就感 ,别人是难以体会的,一种自我价值实现与创造,按柏格森说法,就是”生命创造论”,—个人创造冲动与工具理性的结合而产生,或者说是二者之间的一种相互妥协,这或许是2者最好的归宿。。。

(function () { ('pre.prettyprint code').each(function () { var lines = (this).text().split(\n).length;var numbering = $('
    ').addClass('pre-numbering').hide(); (this).addClass(hasnumbering).parent().append( numbering); for (i = 1; i
    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
    本文链接:https://blog.csdn.net/Xiaolu_Yiren/article/details/76165371

    智能推荐

    从零开始搭建Hadoop_创建一个hadoop项目-程序员宅基地

    文章浏览阅读331次。第一部分:准备工作1 安装虚拟机2 安装centos73 安装JDK以上三步是准备工作,至此已经完成一台已安装JDK的主机第二部分:准备3台虚拟机以下所有工作最好都在root权限下操作1 克隆上面已经有一台虚拟机了,现在对master进行克隆,克隆出另外2台子机;1.1 进行克隆21.2 下一步1.3 下一步1.4 下一步1.5 根据子机需要,命名和安装路径1.6 ..._创建一个hadoop项目

    心脏滴血漏洞HeartBleed CVE-2014-0160深入代码层面的分析_heartbleed代码分析-程序员宅基地

    文章浏览阅读1.7k次。心脏滴血漏洞HeartBleed CVE-2014-0160 是由heartbeat功能引入的,本文从深入码层面的分析该漏洞产生的原因_heartbleed代码分析

    java读取ofd文档内容_ofd电子文档内容分析工具(分析文档、签章和证书)-程序员宅基地

    文章浏览阅读1.4k次。前言ofd是国家文档标准,其对标的文档格式是pdf。ofd文档是容器格式文件,ofd其实就是压缩包。将ofd文件后缀改为.zip,解压后可看到文件包含的内容。ofd文件分析工具下载:点我下载。ofd文件解压后,可以看到如下内容: 对于xml文件,可以用文本工具查看。但是对于印章文件(Seal.esl)、签名文件(SignedValue.dat)就无法查看其内容了。本人开发一款ofd内容查看器,..._signedvalue.dat

    基于FPGA的数据采集系统(一)_基于fpga的信息采集-程序员宅基地

    文章浏览阅读1.8w次,点赞29次,收藏313次。整体系统设计本设计主要是对ADC和DAC的使用,主要实现功能流程为:首先通过串口向FPGA发送控制信号,控制DAC芯片tlv5618进行DA装换,转换的数据存在ROM中,转换开始时读取ROM中数据进行读取转换。其次用按键控制adc128s052进行模数转换100次,模数转换数据存储到FIFO中,再从FIFO中读取数据通过串口输出显示在pc上。其整体系统框图如下:图1:FPGA数据采集系统框图从图中可以看出,该系统主要包括9个模块:串口接收模块、按键消抖模块、按键控制模块、ROM模块、D.._基于fpga的信息采集

    微服务 spring cloud zuul com.netflix.zuul.exception.ZuulException GENERAL-程序员宅基地

    文章浏览阅读2.5w次。1.背景错误信息:-- [http-nio-9904-exec-5] o.s.c.n.z.filters.post.SendErrorFilter : Error during filteringcom.netflix.zuul.exception.ZuulException: Forwarding error at org.springframework.cloud..._com.netflix.zuul.exception.zuulexception

    邻接矩阵-建立图-程序员宅基地

    文章浏览阅读358次。1.介绍图的相关概念  图是由顶点的有穷非空集和一个描述顶点之间关系-边(或者弧)的集合组成。通常,图中的数据元素被称为顶点,顶点间的关系用边表示,图通常用字母G表示,图的顶点通常用字母V表示,所以图可以定义为:  G=(V,E)其中,V(G)是图中顶点的有穷非空集合,E(G)是V(G)中顶点的边的有穷集合1.1 无向图:图中任意两个顶点构成的边是没有方向的1.2 有向图:图中..._给定一个邻接矩阵未必能够造出一个图

    随便推点

    MDT2012部署系列之11 WDS安装与配置-程序员宅基地

    文章浏览阅读321次。(十二)、WDS服务器安装通过前面的测试我们会发现,每次安装的时候需要加域光盘映像,这是一个比较麻烦的事情,试想一个上万个的公司,你天天带着一个光盘与光驱去给别人装系统,这将是一个多么痛苦的事情啊,有什么方法可以解决这个问题了?答案是肯定的,下面我们就来简单说一下。WDS服务器,它是Windows自带的一个免费的基于系统本身角色的一个功能,它主要提供一种简单、安全的通过网络快速、远程将Window..._doc server2012上通过wds+mdt无人值守部署win11系统.doc

    python--xlrd/xlwt/xlutils_xlutils模块可以读xlsx吗-程序员宅基地

    文章浏览阅读219次。python–xlrd/xlwt/xlutilsxlrd只能读取,不能改,支持 xlsx和xls 格式xlwt只能改,不能读xlwt只能保存为.xls格式xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改xlrd打开文件import xlrdexcel=xlrd.open_workbook('E:/test.xlsx') 返回值为xlrd.book.Book对象,不能修改获取sheett_xlutils模块可以读xlsx吗

    关于新版本selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id‘等问题_unresolved attribute reference 'find_element_by_id-程序员宅基地

    文章浏览阅读8.2w次,点赞267次,收藏656次。运行Selenium出现'WebDriver' object has no attribute 'find_element_by_id'或AttributeError: 'WebDriver' object has no attribute 'find_element_by_xpath'等定位元素代码错误,是因为selenium更新到了新的版本,以前的一些语法经过改动。..............._unresolved attribute reference 'find_element_by_id' for class 'webdriver

    DOM对象转换成jQuery对象转换与子页面获取父页面DOM对象-程序员宅基地

    文章浏览阅读198次。一:模态窗口//父页面JSwindow.showModalDialog(ifrmehref, window, 'dialogWidth:550px;dialogHeight:150px;help:no;resizable:no;status:no');//子页面获取父页面DOM对象//window.showModalDialog的DOM对象var v=parentWin..._jquery获取父window下的dom对象

    什么是算法?-程序员宅基地

    文章浏览阅读1.7w次,点赞15次,收藏129次。算法(algorithm)是解决一系列问题的清晰指令,也就是,能对一定规范的输入,在有限的时间内获得所要求的输出。 简单来说,算法就是解决一个问题的具体方法和步骤。算法是程序的灵 魂。二、算法的特征1.可行性 算法中执行的任何计算步骤都可以分解为基本可执行的操作步,即每个计算步都可以在有限时间里完成(也称之为有效性) 算法的每一步都要有确切的意义,不能有二义性。例如“增加x的值”,并没有说增加多少,计算机就无法执行明确的运算。 _算法

    【网络安全】网络安全的标准和规范_网络安全标准规范-程序员宅基地

    文章浏览阅读1.5k次,点赞18次,收藏26次。网络安全的标准和规范是网络安全领域的重要组成部分。它们为网络安全提供了技术依据,规定了网络安全的技术要求和操作方式,帮助我们构建安全的网络环境。下面,我们将详细介绍一些主要的网络安全标准和规范,以及它们在实际操作中的应用。_网络安全标准规范