构建树莓派温湿度监测系统:从硬件到软件的完整指南

在这里插入图片描述

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。
🍎个人主页:Java Fans的博客
🍊个人信条:不迁怒,不贰过。小知识,大智慧。
💞当前专栏:Python案例分享专栏
✨特色专栏:国学周更-心性养成之路
🥭本文内容:构建树莓派温湿度监测系统:从硬件到软件的完整指南

文章目录

    • 引言
      • 一、项目概述
      • 二、硬件准备
        • 1. 树莓派
        • 2. DHT11温湿度传感器
        • 3. 显示屏
        • 4. 蜂鸣器
        • 5. 按键
        • 6. 面包板和跳线
        • 7. 其他配件
      • 三、硬件连接
        • 1. 树莓派的准备
        • 2. DHT11温湿度传感器连接
        • 3. 显示屏连接
        • 4. 蜂鸣器连接
        • 5. 按键连接
        • 6. 整体连接示意图
      • 四、软件环境搭建
        • 1. 安装操作系统
        • 2. 更新系统
        • 3. 安装Python
        • 4. 安装必要的库
        • 5. 验证库安装
        • 6. 编写代码
        • 7. 运行代码
      • 五、代码实现
        • 1. 导入必要的库
        • 2. 设置GPIO引脚
        • 3. 初始化传感器和显示屏
        • 4. 定义报警阈值
        • 5. 读取传感器数据
        • 6. 显示数据
        • 7. 按键输入处理
        • 8. 主循环
        • 9. 完整代码示例
      • 六、功能扩展
        • 1. 数据记录与存储
        • 2. 远程监控与数据可视化
        • 3. 移动应用集成
        • 4. 增加传感器类型
        • 5. 用户界面优化
        • 6. 设备管理与维护
        • 7. 能源管理
    • 总结

引言

在现代社会,随着科技的迅猛发展,物联网(IoT)技术逐渐渗透到我们生活的方方面面。温湿度监测作为物联网应用中的一个重要领域,广泛应用于智能家居、农业监控、环境保护等多个场景。温度和湿度不仅影响我们的生活舒适度,还对农作物的生长、工业生产的质量以及环境的健康状况起着至关重要的作用。

树莓派作为一款功能强大且易于使用的单板计算机,因其灵活性和可扩展性,成为了许多DIY项目的首选平台。在本项目中,我们将利用树莓派搭建一个温湿度监测系统,结合DHT11传感器、显示屏、蜂鸣器和按键,实现实时数据监测、显示和报警功能。通过这个项目,不仅可以帮助我们更好地理解温湿度的变化,还能为我们提供一个实践物联网技术的绝佳机会。

在接下来的内容中,我们将详细介绍项目的硬件组成、软件实现以及可能的功能扩展,带你一步步构建属于自己的温湿度监测系统。无论你是物联网的初学者还是有经验的开发者,这个项目都将为你提供有价值的学习体验。让我们开始这段探索之旅吧!

一、项目概述

本项目的目标是创建一个温湿度监测系统,能够实时显示环境的温度和湿度,并在超过设定阈值时发出报警。用户还可以通过按键来调整报警阈值。

二、硬件准备

在构建树莓派温湿度监测系统之前,首先需要准备好所需的硬件组件。每个组件在系统中都有其特定的功能,下面将详细介绍每个硬件的特点、连接方式以及选择建议。

1. 树莓派

选择建议

  • 推荐使用树莓派3B、3B+或树莓派4B。这些版本具有较强的处理能力和丰富的GPIO接口,适合进行各种物联网项目。

功能

  • 树莓派作为系统的核心控制单元,负责处理传感器数据、控制显示屏和蜂鸣器,并与用户进行交互。

连接方式

  • 通过USB电源适配器为树莓派供电,确保其正常运行。
2. DHT11温湿度传感器

选择建议

  • DHT11是一款低成本、易于使用的数字温湿度传感器,适合初学者和小型项目。其测量范围为0-50°C的温度和20-90%的湿度。

功能

  • 负责实时获取环境的温度和湿度数据,并将其传输给树莓派进行处理。

连接方式

  • DHT11传感器通常有三个引脚:
    • VCC:连接到树莓派的5V引脚。
    • GND:连接到树莓派的GND引脚。
    • DATA:连接到树莓派的GPIO4引脚(可以根据需要选择其他GPIO引脚,但需在代码中进行相应修改)。
3. 显示屏

选择建议

  • 可以选择LCD(如1602 LCD)或OLED显示屏(如0.96寸OLED)。OLED显示屏通常具有更好的对比度和视角,适合在不同光照条件下使用。

功能

  • 实时显示温湿度数据,便于用户观察和监控环境变化。

连接方式

  • LCD显示屏通常需要多个引脚连接,包括电源引脚、数据引脚和控制引脚。OLED显示屏则通常使用I2C接口,连接方式相对简单:
    • VCC:连接到树莓派的5V引脚。
    • GND:连接到树莓派的GND引脚。
    • SDA:连接到树莓派的SDA引脚(GPIO2)。
    • SCL:连接到树莓派的SCL引脚(GPIO3)。
4. 蜂鸣器

选择建议

  • 可以选择有源蜂鸣器或无源蜂鸣器。有源蜂鸣器只需供电即可发声,而无源蜂鸣器需要通过PWM信号控制音调。

功能

  • 当温湿度超过设定阈值时,蜂鸣器发出报警声,提醒用户注意。

连接方式

  • 蜂鸣器通常有两个引脚:
    • 正极:连接到树莓派的GPIO18引脚。
    • 负极:连接到树莓派的GND引脚。
5. 按键

选择建议

  • 可以使用简单的机械按键或薄膜按键。按键的选择应考虑到使用的方便性和耐用性。

功能

  • 允许用户通过按键输入来调整报警阈值。

连接方式

  • 按键通常有两个引脚:
    • 一端连接到树莓派的GPIO17引脚。
    • 另一端连接到GND引脚。可以使用上拉电阻或树莓派的内置上拉电阻。
6. 面包板和跳线

选择建议

  • 面包板用于方便地连接各个组件,跳线则用于连接不同的引脚。

功能

  • 通过面包板和跳线,可以快速搭建电路,方便测试和修改。
7. 其他配件
  • 电源适配器:为树莓派提供稳定的电源,建议使用5V/2.5A的电源适配器。
  • 外壳:可以为树莓派和其他组件提供保护,防止损坏。
  • 散热片:如果使用树莓派4B,建议加装散热片以防止过热。

三、硬件连接

在构建树莓派温湿度监测系统时,正确的硬件连接是确保系统正常运行的关键步骤。下面将详细介绍各个组件的连接方式,包括树莓派、DHT11温湿度传感器、显示屏、蜂鸣器和按键的具体连接方法。

1. 树莓派的准备

首先,确保树莓派已安装好操作系统(如Raspberry Pi OS),并且可以正常启动。将树莓派放置在一个稳定的工作台上,并准备好所需的工具,如跳线、面包板等。

2. DHT11温湿度传感器连接

DHT11传感器通常有三个引脚,分别是VCC、GND和DATA。连接步骤如下:

  • VCC引脚:将DHT11的VCC引脚连接到树莓派的5V引脚(通常是引脚2或引脚4)。
  • GND引脚:将DHT11的GND引脚连接到树莓派的GND引脚(引脚6、引脚9、引脚14、引脚20或引脚25中的任意一个)。
  • DATA引脚:将DHT11的DATA引脚连接到树莓派的GPIO4引脚(引脚7)。

连接示意图:

DHT11        树莓派
-----------------------
VCC   ---->  5V (引脚2或引脚4)
GND   ---->  GND (引脚6)
DATA  ---->  GPIO4 (引脚7)
3. 显示屏连接

根据选择的显示屏类型,连接方式会有所不同。以下是LCD和OLED显示屏的连接方法:

LCD(1602 LCD)连接

  • VSS引脚:连接到树莓派的GND引脚。
  • VDD引脚:连接到树莓派的5V引脚。
  • VO引脚:连接到一个可调电位器的中间引脚,电位器的另一端连接到GND,另一端连接到5V(用于调节对比度)。
  • RS引脚:连接到树莓派的GPIO17引脚(引脚11)。
  • RW引脚:连接到GND。
  • E引脚:连接到树莓派的GPIO27引脚(引脚13)。
  • D0-D3引脚:可以不连接(使用4位模式)。
  • D4引脚:连接到树莓派的GPIO22引脚(引脚15)。
  • D5引脚:连接到树莓派的GPIO23引脚(引脚16)。
  • D6引脚:连接到树莓派的GPIO24引脚(引脚18)。
  • D7引脚:连接到树莓派的GPIO25引脚(引脚22)。

OLED显示屏(I2C接口)连接

  • VCC引脚:连接到树莓派的5V引脚。
  • GND引脚:连接到树莓派的GND引脚。
  • SDA引脚:连接到树莓派的SDA引脚(GPIO2,引脚3)。
  • SCL引脚:连接到树莓派的SCL引脚(GPIO3,引脚5)。

连接示意图(以OLED为例):

OLED          树莓派
-----------------------
VCC   ---->  5V (引脚2或引脚4)
GND   ---->  GND (引脚6)
SDA   ---->  SDA (GPIO2,引脚3)
SCL   ---->  SCL (GPIO3,引脚5)
4. 蜂鸣器连接

蜂鸣器通常有两个引脚,连接步骤如下:

  • 正极引脚:将蜂鸣器的正极引脚连接到树莓派的GPIO18引脚(引脚12)。
  • 负极引脚:将蜂鸣器的负极引脚连接到树莓派的GND引脚。

连接示意图:

蜂鸣器      树莓派
-----------------------
正极  ---->  GPIO18 (引脚12)
负极  ---->  GND (引脚6)
5. 按键连接

按键通常有两个引脚,连接步骤如下:

  • 一端引脚:将按键的一端连接到树莓派的GPIO17引脚(引脚11)。
  • 另一端引脚:将按键的另一端连接到树莓派的GND引脚。

连接示意图:

按键        树莓派
-----------------------
一端  ---->  GPIO17 (引脚11)
另一端 ---->  GND (引脚6)
6. 整体连接示意图

将所有组件连接在一起后,整个系统的连接示意图如下:

树莓派
-----------------------
5V   ----> DHT11 VCC
GND  ----> DHT11 GND
GPIO4 ----> DHT11 DATA5V   ----> OLED VCC
GND  ----> OLED GND
GPIO2 ----> OLED SDA
GPIO3 ----> OLED SCLGPIO18 ----> 蜂鸣器 正极
GND      ----> 蜂鸣器 负极GPIO17 ----> 按键 一端
GND      ----> 按键 另一端

四、软件环境搭建

在构建树莓派温湿度监测系统之前,首先需要搭建合适的软件环境。这一过程包括安装操作系统、必要的库和工具,以便能够顺利地进行编程和硬件控制。以下是详细的步骤和说明。

1. 安装操作系统

首先,确保树莓派上安装了Raspberry Pi OS(以前称为Raspbian)。可以通过以下步骤进行安装:

  • 下载操作系统镜像
    访问Raspberry Pi官方网站下载最新版本的Raspberry Pi OS镜像。

  • 烧录镜像
    使用工具(如Balena Etcher或Raspberry Pi Imager)将下载的镜像烧录到SD卡中。插入SD卡后,选择镜像文件并选择目标SD卡,点击“烧录”开始。

  • 首次启动
    将烧录好的SD卡插入树莓派,连接显示器、键盘和电源,启动树莓派。首次启动时,系统会引导你完成基本设置,包括语言、时区和网络配置。

2. 更新系统

在安装完操作系统后,建议更新系统以确保所有软件包都是最新的。打开终端,输入以下命令:

sudo apt-get update
sudo apt-get upgrade

这将更新软件包列表并升级已安装的软件包。

3. 安装Python

Raspberry Pi OS通常预装了Python,但可以通过以下命令确认Python版本:

python3 --version

如果未安装,可以使用以下命令安装:

sudo apt-get install python3
4. 安装必要的库

为了与DHT11传感器和显示屏进行交互,需要安装一些Python库。以下是安装步骤:

  • 安装Adafruit_DHT库
    该库用于读取DHT11传感器的数据。可以通过以下命令安装:

    sudo pip3 install Adafruit-DHT
    
  • 安装RPi.GPIO库
    该库用于控制树莓派的GPIO引脚。通常,RPi.GPIO库已经预装,但可以通过以下命令确认或安装:

    sudo apt-get install python3-rpi.gpio
    
  • 安装显示屏库
    如果使用OLED显示屏,可以安装Adafruit_SSD1306库。对于LCD显示屏,通常使用lcd库。以下是安装OLED显示屏库的命令:

    sudo pip3 install Adafruit-SSD1306
    

    对于LCD显示屏,可能需要安装RPLCD库:

    sudo pip3 install RPLCD
    
  • 安装I2C支持(如果使用I2C接口的显示屏):
    确保I2C接口已启用。可以通过raspi-config工具启用I2C:

    sudo raspi-config
    

    在菜单中选择“Interfacing Options”,然后选择“I2C”,启用它。完成后,重启树莓派。

5. 验证库安装

在终端中输入Python交互式环境,验证库是否成功安装:

python3

然后尝试导入库:

import Adafruit_DHT
import RPi.GPIO as GPIO
import Adafruit_SSD1306  # 如果使用OLED
# 或者
from RPLCD import CharLCD  # 如果使用LCD

如果没有错误提示,说明库安装成功。

6. 编写代码

在完成软件环境搭建后,可以使用文本编辑器(如nano、vim或Thonny IDE)编写Python代码。创建一个新的Python文件,例如temp_humidity_monitor.py,并将后续的代码逻辑写入该文件。

nano temp_humidity_monitor.py
7. 运行代码

在编写完代码后,可以通过以下命令运行Python脚本:

python3 temp_humidity_monitor.py

确保在运行代码之前,所有硬件连接都已正确完成,并且树莓派已正常启动。

五、代码实现

在完成硬件连接和软件环境搭建后,接下来是实现温湿度监测系统的核心部分——编写代码。本文将详细阐述如何使用Python编写代码,以实现温湿度的读取、显示、报警和用户交互功能。

1. 导入必要的库

首先,在代码的开头导入所需的库。这些库将帮助我们与DHT11传感器、显示屏和GPIO引脚进行交互。

import Adafruit_DHT
import RPi.GPIO as GPIO
import time
from Adafruit_SSD1306 import SSD1306_128_64  # 如果使用OLED
# from RPLCD import CharLCD  # 如果使用LCD
2. 设置GPIO引脚

接下来,设置GPIO引脚的模式和初始状态。我们需要定义蜂鸣器和按键的引脚。

# GPIO设置
GPIO.setmode(GPIO.BCM)  # 使用BCM引脚编号
buzzer_pin = 18  # 蜂鸣器引脚
button_pin = 17  # 按键引脚
GPIO.setup(buzzer_pin, GPIO.OUT)  # 设置蜂鸣器引脚为输出
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)  # 设置按键引脚为输入,并启用上拉电阻
3. 初始化传感器和显示屏

初始化DHT11传感器和显示屏。这里以OLED显示屏为例,LCD显示屏的初始化方式会有所不同。

sensor = Adafruit_DHT.DHT11  # 定义传感器类型
dht_pin = 4  # DHT11数据引脚# 初始化OLED显示屏
disp = SSD1306_128_64(rst=None)  # 创建显示屏对象
disp.begin()  # 初始化显示屏
disp.clear()  # 清空显示屏
disp.display()  # 刷新显示
4. 定义报警阈值

设置初始的温湿度报警阈值,并定义一个函数来检查报警条件。

# 初始阈值
threshold_temp = 30  # 温度阈值
threshold_hum = 70   # 湿度阈值def check_alarm(temperature, humidity):if temperature > threshold_temp or humidity > threshold_hum:GPIO.output(buzzer_pin, GPIO.HIGH)  # 启动蜂鸣器else:GPIO.output(buzzer_pin, GPIO.LOW)   # 关闭蜂鸣器
5. 读取传感器数据

定义一个函数来读取DHT11传感器的数据,并处理可能的读取错误。

def read_sensor():humidity, temperature = Adafruit_DHT.read_retry(sensor, dht_pin)if humidity is not None and temperature is not None:return temperature, humidityelse:print("Failed to retrieve data from humidity sensor")return None, None
6. 显示数据

定义一个函数来在OLED显示屏上显示温湿度数据。

def display_data(temperature, humidity):disp.clear()  # 清空显示屏disp.text(f'Temp: {temperature}C', 0, 0)  # 显示温度disp.text(f'Hum: {humidity}%', 0, 10)  # 显示湿度disp.display()  # 刷新显示
7. 按键输入处理

定义一个函数来处理按键输入,以便用户可以调整报警阈值。

def adjust_threshold():global threshold_temp, threshold_humwhile True:if GPIO.input(button_pin) == GPIO.LOW:  # 检测按键按下threshold_temp += 1  # 增加温度阈值threshold_hum += 5    # 增加湿度阈值print(f'New Temp Threshold: {threshold_temp}C')print(f'New Humidity Threshold: {threshold_hum}%')time.sleep(1)  # 防止多次触发
8. 主循环

在主循环中,读取传感器数据、检查报警条件、显示数据,并处理按键输入。

try:while True:temperature, humidity = read_sensor()  # 读取传感器数据if temperature is not None and humidity is not None:print(f'Temperature: {temperature}°C, Humidity: {humidity}%')check_alarm(temperature, humidity)  # 检查报警条件display_data(temperature, humidity)  # 显示数据adjust_threshold()  # 调整阈值time.sleep(2)  # 每2秒读取一次数据except KeyboardInterrupt:GPIO.cleanup()  # 清理GPIO设置
9. 完整代码示例

将上述所有代码整合在一起,形成完整的Python脚本:

import Adafruit_DHT
import RPi.GPIO as GPIO
import time
from Adafruit_SSD1306 import SSD1306_128_64  # 如果使用OLED# GPIO设置
GPIO.setmode(GPIO.BCM)
buzzer_pin = 18
button_pin = 17
GPIO.setup(buzzer_pin, GPIO.OUT)
GPIO.setup(button_pin, GPIO.IN, pull_up_down=GPIO.PUD_UP)sensor = Adafruit_DHT.DHT11
dht_pin = 4# 初始化OLED显示屏
disp = SSD1306_128_64(rst=None)
disp.begin()
disp.clear()
disp.display()# 初始阈值
threshold_temp = 30
threshold_hum = 70def check_alarm(temperature, humidity):if temperature > threshold_temp or humidity > threshold_hum:GPIO.output(buzzer_pin, GPIO.HIGH)else:GPIO.output(buzzer_pin, GPIO.LOW)def read_sensor():humidity, temperature = Adafruit_DHT.read_retry(sensor, dht_pin)if humidity is not None and temperature is not None:return temperature, humidityelse:print("Failed to retrieve data from humidity sensor")return None, Nonedef display_data(temperature, humidity):disp.clear()disp.text(f'Temp: {temperature}C', 0, 0)disp.text(f'Hum: {humidity}%', 0, 10)disp.display()def adjust_threshold():global threshold_temp, threshold_humwhile True:if GPIO.input(button_pin) == GPIO.LOW:threshold_temp += 1threshold_hum += 5print(f'New Temp Threshold: {threshold_temp}C')print(f'New Humidity Threshold: {threshold_hum}%')time.sleep(1)try:while True:temperature, humidity = read_sensor()if temperature is not None and humidity is not None:print(f'Temperature: {temperature}°C, Humidity: {humidity}%')check_alarm(temperature, humidity)display_data(temperature, humidity)adjust_threshold()time.sleep(2)except KeyboardInterrupt:GPIO.cleanup()

六、功能扩展

在完成基本的温湿度监测系统后,可以考虑对系统进行功能扩展,以提升其实用性、灵活性和用户体验。以下是一些可能的功能扩展建议:

1. 数据记录与存储

功能描述
将实时监测到的温湿度数据记录到文件或数据库中,以便后续分析和查看历史数据。

实现方法

  • 文件存储:可以将数据以CSV格式存储到本地文件中。每次读取数据时,将温湿度值和时间戳写入文件。

    示例代码:

    import csv
    from datetime import datetimedef log_data(temperature, humidity):with open('temperature_humidity_log.csv', mode='a') as file:writer = csv.writer(file)writer.writerow([datetime.now(), temperature, humidity])
    
  • 数据库存储:使用SQLite或MySQL等数据库存储数据,便于进行复杂查询和分析。

    示例代码(使用SQLite):

    import sqlite3# 创建数据库连接
    conn = sqlite3.connect('sensor_data.db')
    c = conn.cursor()
    c.execute('''CREATE TABLE IF NOT EXISTS readings (timestamp TEXT, temperature REAL, humidity REAL)''')def log_data(temperature, humidity):c.execute("INSERT INTO readings (timestamp, temperature, humidity) VALUES (?, ?, ?)",(datetime.now(), temperature, humidity))conn.commit()
    
2. 远程监控与数据可视化

功能描述
通过网络将温湿度数据上传到云端,用户可以通过网页或手机应用进行远程监控。

实现方法

  • 使用云服务:可以使用MQTT、HTTP API等协议将数据发送到云服务(如ThingSpeak、Adafruit IO等)。

    示例代码(使用HTTP POST):

    import requestsdef send_data_to_cloud(temperature, humidity):url = 'https://api.thingspeak.com/update'params = {'api_key': 'YOUR_API_KEY','field1': temperature,'field2': humidity}response = requests.get(url, params=params)print(response.text)
    
  • 创建Web界面:使用Flask或Django等框架创建一个简单的Web应用,实时显示温湿度数据和历史记录。

3. 移动应用集成

功能描述
开发一个移动应用,用户可以通过手机实时查看温湿度数据,并接收报警通知。

实现方法

  • 使用Firebase:将数据存储在Firebase数据库中,移动应用可以实时获取数据。
  • 推送通知:使用Firebase Cloud Messaging(FCM)实现报警通知,用户在手机上接收到温湿度超标的警报。
4. 增加传感器类型

功能描述
除了温湿度传感器外,可以增加其他类型的传感器,如光照传感器、气体传感器等,提供更全面的环境监测。

实现方法

  • 光照传感器:使用光敏电阻或BH1750传感器,读取环境光照强度。
  • 气体传感器:使用MQ系列传感器(如MQ-2、MQ-7等),监测空气中的有害气体浓度。
5. 用户界面优化

功能描述
改善用户界面,使其更加友好和直观,提升用户体验。

实现方法

  • 图形化界面:使用Tkinter或Pygame创建图形化用户界面,显示实时数据和历史记录。
  • 多语言支持:为系统添加多语言支持,方便不同语言的用户使用。
6. 设备管理与维护

功能描述
实现设备的远程管理和维护功能,用户可以通过界面进行设置和更新。

实现方法

  • 远程配置:允许用户通过Web界面或移动应用调整报警阈值、传感器类型等设置。
  • 固件更新:实现OTA(Over-The-Air)更新功能,方便用户更新系统固件。
7. 能源管理

功能描述
优化系统的能源管理,延长设备的使用寿命。

实现方法

  • 低功耗模式:在不需要实时监测时,进入低功耗模式,减少能源消耗。
  • 太阳能供电:考虑使用太阳能电池板为系统供电,适合户外环境监测。

总结

通过本项目,我们成功构建了一个基于树莓派的温湿度监测系统,利用DHT11传感器、显示屏、蜂鸣器和按键,实现了实时数据监测、显示和报警功能。通过详细的硬件连接和软件实现步骤,用户不仅能够掌握物联网技术的基本原理,还能提升动手能力和编程技能。此外,项目中提出的功能扩展建议,如数据记录、远程监控、移动应用集成等,进一步拓宽了系统的应用场景和实用性,为用户提供了更全面的环境监测解决方案。希望本项目能够激励更多的开发者探索物联网的无限可能,推动智能家居、农业监控和环境保护等领域的发展。无论是初学者还是有经验的开发者,都能从中获得宝贵的经验和启发。


  码文不易,本篇文章就介绍到这里,如果想要学习更多Java系列知识点击关注博主,博主带你零基础学习Java知识。与此同时,对于日常生活有困扰的朋友,欢迎阅读我的第四栏目:《国学周更—心性养成之路》,学习技术的同时,我们也注重了心性的养成。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/491358.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业内训|阅读行业产品运营实战训练营-某运营商数字娱乐公司

近日,TsingtaoAI公司为某运营商旗下数字娱乐公司组织的“阅读行业产品运营实战训练营”在杭州落下帷幕。此次训练营由TsingtaoAI资深互联网产品专家程靖主持。该公司的业务骨干——来自内容、市场、业务、产品与技术等跨部门核心岗位、拥有8-10年实战经验的中坚力量…

vue+node+mysql8.0,详细步骤及报错解决方案

1.下载需要安装的插件 下载express npm install express下载cors,用于处理接口跨域问题 npm install cors下载mysql npm install mysql 2.配置服务器 可以在vue项目的src同级创建server文件夹(这里的位置可随意选择) 然后依次创建&#…

C语言刷题(2)

5. 题目描述 KIKG今年5岁了,已经能够认识100以内的非负整数,并且并目能够 进行 100 以内的非负整数的加法计算,不过,老师发现KIK在进行大于等于100的正整数的计算时,规则如下: 1.只保留该数的最后两位,例…

360智脑张向征:共建可信可控AI生态 应对大模型安全挑战

发布 | 大力财经 人工智能的加速发展,有力推动了社会的数智化转型;与此同时,带来的相关安全风险也日益凸显。近日,在北京市举办的通明湖人工智能开发与应用大会上,360智脑总裁张向征以“大模型安全研究与实践”为主题&…

相机标定中的相机模型

一、相机标定基本原理 在图像测量过程以及机器视觉应用中,为确定空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系,必须建立摄像机成像的几何模型,这些几何模型参数就是摄像机参数。在大多数条件下这些参数必须通过实验与计算才能得到&…

【大模型微调学习6】-实战Hugging Face Transformers工具库

【大模型微调学习6】-实战Hugging Face Transformers工具库 实战Hugging Face Transformers工具库1.Hugging Face Transformers 库是什么?2.HF Transformers 核心模块学习:Pipelines(1)如何下载hugging face的数据集和模型权重&am…

【AIGC进阶-ChatGPT提示词副业解析】探索生活的小确幸:在平凡中寻找幸福

引言 在这个快节奏的现代社会中,我们常常被各种压力和焦虑所困扰,忘记了生活中那些细小而珍贵的幸福时刻。本文将探讨如何在日常生活中发现和珍惜那些"小确幸",以及如何通过尝试新事物来丰富我们的生活体验。我们还将讨论保持神秘感和期待感对于维持生活乐趣的重要性…

使用 rvest 包快速抓取网页数据:从入门到精通

介绍 随着大数据和数据科学的迅速发展,互联网数据的抓取已经成为重要的信息获取手段之一。网页抓取(Web Scraping)可以帮助我们自动化地从网页中提取有价值的数据,应用广泛,包括新闻热点分析、金融数据采集等。在本篇…

在 DDD 中优雅的发送 Kafka 消息

前言 1:host 映射 下载 SwitchHost 配置一个映射地址。点击 添加一个本地环境,之后配置你的 IP kafka 这样就能找这个地址了。IP 为你本地的IP,如果是云服务器就是公网IP地址 使用docker-compose.yml进行一键部署安装 version: 3.0 # docker-compose …

c#上班,上学,交通方式接口

using System;namespace INTERFACE {abstract class Person{public string Name { get; set; }public int Age { get; set; }public virtual void ShowInfo(){Console.WriteLine($"Name: {Name}, Age: {Age}");}}// 接口 IWorkinterface IWork{void GotoCompany();}/…

Halcon 直连相机

一、相机类别 1、大恒示例 DahengCAM 使用大华相机,待补充... 2、大华例程 GigEVision 2.1 关键算子 1、查询指定图像采集接口信息。 info_framegrabber (GigEVision, info_boards, Information, ValueList) 获取结果 unique_name:302fac01cd50_MachineVision_MVA5B57MG20…

RPC 服务与 gRPC 的入门案例

RPC 协议 RPC(Remote Procedure Call Protocol)即远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务的协议,允许一个计算机程序可以像调用本地服务一样调用远程服务 。 RPC的主要作用是不同的服务间方法调用就像本地…

机器学习-正则化技术

文章目录 拟合正则化正则项L1 正则化(Lasso)L2 正则化(Ridge) 多元线性回归的正则化回归形式代码 拟合 过拟合:参数(特征)过多(理解为考虑很多因素)或者说过多专注于原来的训练数据…

数据可视化-2. 条形图

目录 1. 条形图适用场景分析 1.1 比较不同类别的数据 1.2 展示数据分布 1.3 强调特定数据点 1.4 展示时间序列数据的对比 1.5 数据可视化教育 1.6 特定领域的应用 2. 条形图局限性 3. 条形图图代码实现 3.1 Python 源代码 3.2 条形图效果(网页显示&#…

【DBeaver】连接带kerberos的hive[Apache|HDP]

目录 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 1.2 环境配置 二、基于Cloudera驱动创建连接 三、基于Hive原生驱动创建连接 一、安装配置Kerberos客户端环境 1.1 安装Kerberos客户端 在Kerberos官网下载,地址如下:https://web.mit.edu/kerberos…

SpringBoot+IDEA工具框架快捷键+注解备注

快捷键 ctrlr 搜索替换 ctrlshiftr 全局搜索和替换 altfninsert 自行补全函数和构造函数等 ctrlaltt 可以尝试添加东西 可以加try catch ctrlshiftt 生成接口对应的测试函数 ctrlh 可以查看当前类的一个继承和实现关系 大写CD回车 ide会自动生成cdata区的标签 x…

AI前沿分析:ChatGPT搜索上线,Google搜索地位能否守住?

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼 Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 引言:AI与搜索领域的激烈博弈一、ChatGPT搜索的优势是什么?1. 实时信息获取&#xf…

ScottPlot学习的常用笔记

ScottPlot学习的常用笔记 写在前面版本的选择第一个障碍:版本问题。 ScottPlot4.0的官方网站与示例官方起始页cookbook5.0Demo4.1 demo以4.1为例,解压和运行如下: 下载源代码和编译先说结论: 写在前面 之前调研的TraceCompass&am…

客户端(浏览器)vue3本地预览txt,doc,docx,pptx,pdf,xlsx,csv,

预览文件 1、入口文件preview/index.vue2、预览txt3、预览doc4、预览pdf5、预览pptx6、预览xlsx7、预览csv 1、入口文件preview/index.vue 预览样式&#xff0c;如pdf 文件目录如图所示&#xff1a; 代码如下 <template><div class"preview-wrap" ref&…

luckysheet与superslide冲突解决

[现象]控制台报错、界面无法操作 $是jquery。查看源码&#xff0c;发现mousewheel方法来自插件mousewheel&#xff0c;luckysheet初始应该会将mousewheel挂载在jquery上。 在控制台打印jquery取dom及其方法&#xff0c;结果如下&#xff1a; 不存在mousewheel方法&#xff0c…