0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用Arduino UNO的气象站的制作

454398 来源:wv 2019-10-25 10:17 次阅读

步骤1:项目列表

1。屏幕:OLED,1.3英寸显示屏SH1106,I2C白色– PID:18283

2.传感器:数字湿度和温度传感器DHT22 ---- PID:7375

3.连接:跳线---- PID:10316或10318或10312(取决于长度),也可以使用22 AWG实心线---- PID:22490

面包板---- PID:10686或10698或103142(取决于大小)

4。电源:此电缆只能与计算机USB端口连接,该电缆还用于IDE和Arduino板之间的数据传输。电缆,A到B,M/M,0.5M(1.5FT)---- PID:29862

或者您可以用它为板子供电:5V 2A AC/DC适配器---- PID:10817。

步骤2:相对介绍

屏幕介绍:1.3英寸OLED显示屏白

1。您可以找到显示基本设置和说明的文档:http://www.ett.co.th/prod2017/OLED%201.3%20I2C%20ENG.pdf

传感器简介:湿度和温度传感器DHT22 1.您可以找到显示说明的文档:https://www.sparkfun.com/datasheets/Sensors/Temperature/DHT22.pdf

步骤3:连接电路

DHT22传感器将串行数据发送到引脚2。因此,从左侧连接第二个引脚,“ SDA”引脚应连接到引脚2。

对于SSH1106显示屏,它使用模拟引脚进行传输。屏幕的电路将是Arduino的“ A5”的“ SCL”引脚,而Arduino的“ A4”的“ SDA”引脚。当像素位置数据连续传输时,程序中的显示功能每次在每次从传感器读取数据时都会触发一次命令。

传感器和屏幕均可使用3.3V通电Arduino作为直流电源输入。要供电,我们需要将两个“ VCC”引脚都连接到Arduino的“ 3.3V”。并且“ GND”引脚可以简单地连接到Arduino板上的“ GND”引脚。

使用USB A到B电缆,将Arudino连接到计算机。

步骤4:为Olikraus的SSH1106屏幕准备编译

“ u8glib”。

Adafruit的DHT22传感器准备“ DHT传感器库”。您应该下载两个库:DHT22传感器库:https://github.com/adafruit/DHT-sensor-library

U8glib:https://github.com/adafruit/DHT-sensor-library

并在IDE中使用“管理库”将其解压缩。在线管理库的说明:https://github.com/adafruit/DHT-sensor-library

第5步:DHT22传感器串行端口的测试代码

DHT22传感器串行端口的测试代码(位于DHT22库中》》示例):

(您可以跳过这一部分。)

这只是为了测试DHT22传感器是否正常读取数据。

#include

#include

#include

#include

#include

#define DHTPIN 2

#define DHTTYPE DHT22

DHT dht(DHTPIN,DHTTYPE);

void setup(){

Serial.begin(9600);

Serial.println(F(“ DHT22测试!”));

dht.begin();

}

无效循环(){

///在两次测量之间等待几秒钟。

delay(2000);

///读取温度或湿度大约需要250毫秒!

//传感器的读数也可能长达2秒“过时”(它的传感器非常慢)

float h = dht.readHumidity();

//以摄氏度(默认)读取温度

float t = dht.readTemperature();

//以华氏温度(isFahrenheit = true)读取温度

float f = dht.readTemperature(true);

//检查是否有任何读取失败并且提早退出(重试)。

如果(isnan(h)|| isnan(t)|| isnan(f)){

Serial.println(F( “无法从DHT传感器读取!”));

return;

}

//计算华氏热指数(默认值)

float hif = dht.computeHeatIndex(f,h);

//以摄氏度计算热量指数(isFahreheit = false)

float hic = dht.computeHeatIndex(t,h,false);

Serial.print (F(“湿度:”));

Serial.print(H);

Serial.print(F(“%Temperature:”));;

Serial.print(T);

Serial.print(F(“°C”));

Serial.print(F);

Serial.print(F(“°F Heat index:”));

Serial.print(HIC);

Serial.print(F(“°C”));

Serial.print(HIF);

Serial.println(F( “°F”));

}

//编译程序后,单击工具》》串行监视器以检查数据。

//测试程序结束。

步骤6:项目代码

#include

#include

#include

#include

#include

#define DHTPIN 2

#define DHTTYPE DHT22

#include“ U8glib。 h“

U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_NONE);

DHT传感器(DHTPIN,DHTTYPE);

void draw(void){

u8g.setFont(u8g_font_unifont);

float h = sensor.readHumidity();

//以摄氏度(默认)读取温度

浮点t = sensor.readTemperature();

//检查是否有任何读取失败并提早退出(重试)。

if(isnan(h)|| isnan(t)){

u8g.print(“ Error。”);

for(;;) ;

return;

}

u8g.setPrintPos(4,10);

u8g.print( “温度(C):”);

u8g.setPrintPos(4,25);

u8g.print(t);

u8g.setPrintPos(4,40);

u8g.print( “湿度(%):”);

u8g.setPrintPos(4,55);

u8g.print(h);

}

无效设置(void){

u8g.setRot180();

Serial.begin(9600);

sensor.begin();

}

无效循环(void){

//图片循环

u8g.firstPage();

do {

draw();

} while(u8g.nextPage());

//经过一段时间的延迟后重新生成图片(2000年);

}

//主程序结束。

步骤7:说明

然后,初始化Arduino板的引脚电路。因为传感器库需要数据来声明对象。

而且,您可以使用称为“ Serial.print()”的功能通过数字引脚2监视输出数据来测试传感器的数据。由于数据传输的频率大约每2秒读取一次(0.5 Hz),因此在Arduino IDE中进行编程时,我们需要将循环函数内部的延迟设置为大于2秒。因此,循环函数内部有一个“ delay(2000)”。这样可以确保数据经常刷新。在“绘制”功能中,从串行数据端口获取数据,然后使用“ readHumidity”和“ readTemperature”功能将它们放入浮点数。

使用打印功能打印出湿度和温度在“ u8glib”文件中。您可以通过更改“ setPrintPos”功能中的数字来调整位置。打印功能可以直接显示文本和数字。

要设置硬件,请给串行端口10秒钟的延迟。然后调用传感器的begin函数。根据我的电路,我的屏幕是颠倒的。因此,我还包括了“ setRot180”功能来旋转显示。

Arduino开发板的循环功能是主要功能。每次刷新传感器时,它都会不断调用draw函数以显示文本和数据。

屏幕如下所示:

您可以从计算机和电源上断开Arduino UNO的连接。它使用5V DC电源适配器连接到其2.1mm电源插孔。它将程序存储在其驱动器中,并在通电后可以再次连续运行该程序。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Arduino
    +关注

    关注

    188

    文章

    6469

    浏览量

    186965
  • 气象站
    +关注

    关注

    1

    文章

    749

    浏览量

    15661
收藏 人收藏

    评论

    相关推荐

    自动气象站的工作原理与应用

    自动气象站是现代气象观测网络的重要组成部分,它通过集成传感器、数据采集与处理系统、通讯设备等技术手段,实现了对大气环境参数的实时监测和高效数据传输。以下是对自动气象站的工作原理与应用的详细探讨
    的头像 发表于 12-18 13:56 79次阅读

    负氧离子气象站

    气象站
    pingao141378
    发布于 :2024年10月19日 08:52:28

    校园气象站高校科普论文气象站多功能气象站

    校园气象站高校科普论文气象站多功能气象站是一种集气象监测、数据传输、数据处理、信息发布等功能于一体的数字化气象设备。它可以通过各种传感器实时
    的头像 发表于 08-06 17:53 436次阅读
    校园<b class='flag-5'>气象站</b>高校科普论文<b class='flag-5'>气象站</b>多功能<b class='flag-5'>气象站</b>

    全自动农业气象站的简单介绍及技术参数分析

    气象站
    博科仪器
    发布于 :2024年06月25日 15:56:14

    便携式气象站:未来气象监测的便携新选择

    气象站
    万象环境科技
    发布于 :2024年06月23日 10:39:24

    便携式气象站:科技与便捷的完美融合

    气象站
    万象环境科技
    发布于 :2024年06月22日 21:14:07

    什么是自动气象站

    在科学技术迅猛发展的今天,自动气象站以其高效、精准、实时的特点,逐渐成为现代气象观测的先锋。它不仅极大地提升了气象观测的效率和准确性,还为农业生产、交通运输、环境保护等领域提供了重要的气象
    的头像 发表于 06-14 09:15 533次阅读
    什么是自动<b class='flag-5'>气象站</b>?

    小型气象站是什么?有哪些作用?

    小型气象站可以监测多种气象参数,包括但不限于温度、湿度、气压、风速、风向、降水量等。这些数据对于农业、气象预测、交通运输、环境监测等领域都至关重要。例如,在农业领域,农民可以根据气象站
    的头像 发表于 05-29 17:03 567次阅读

    多参数自动气象站:科技前沿与应用尖端

    JD-CQX10 多参数自动气象站代表了气象监测领域的科技前沿与应用尖端,其集成了多种传感器和先进技术,能够实现对气象要素的全面监测和高效数据采集。 这些先进的自动气象站
    的头像 发表于 05-16 17:16 427次阅读

    微型气象站的性能表现如何?

    微型气象站是一种小型化、轻便化的气象监测设备,通常用于户外环境的气象监测和数据采集。其性能表现主要包括准确性、稳定性、灵敏度和易用性等方面。 首先,微型气象站的准确性是评价其性能
    的头像 发表于 05-10 16:22 410次阅读

    农业小型自动气象站应用

    小型自动气象站作为现代农业的重要组成部分,其应用价值不可忽视。在农业生产中,气象条件是影响作物生长和产量的重要因素之一。因此,小型自动气象站通过提供准确、及时的气象数据,为农业生产提供
    的头像 发表于 04-24 16:42 447次阅读

    罐区防爆气象站:科技保障,安全生产

    JD-FBCQ罐区防爆气象站是指在石油、化工等工业罐区内设置的一种气象监测设备,旨在监测和分析当地气象变化,提供关键气象信息,以保障罐区安全生产。科技保障在这里主要体现在提供高精度、实
    的头像 发表于 03-19 16:40 596次阅读

    什么是科研用的小型气象站

      JD-CQX7科研用的小型气象站是一种专门设计用于科学研究领域的气象监测设备,其主要特点是小巧轻便、灵活易用,并具有高精度的测量性能。这种气象站通常包括多个传感器,能够测量和记录气温、湿度、风速、风向、气压、降水量等多种
    的头像 发表于 03-15 15:26 384次阅读

    农业气象站:助力现代农业发展

    农业气象站:助力现代农业发展
    的头像 发表于 01-31 11:28 421次阅读

    【开源项目】Arduino ESP32 彩色电子气象站

    这是我十多年来一直想建立的项目。我终于成功了,我真的很兴奋——一个电池供电的气象站项目。我过去建造过许多气象站项目,但这次不同。它可以在电池上持续数月。原因是它使用的令人惊叹的电子纸显示。让我向你
    发表于 01-16 14:01