Arduino+温度、湿度传感器

  • 2020 年 7 月 28 日
  • 笔记

       Arduino语言注解Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。

相比Arduino,也许我们更熟悉“集成电路”这一概念。集成电路是为了实现某种特定功能的计算而设计的微小芯片。对于普通人来说,传统的集成电路应用比较繁琐,一般需要具有一定电子知识基础,并懂得如何进行相关的程序设计的工程师才能熟练使用。但是Arduino的出现让曾经只有专业人士才能使用的集成电路变为平易近人的电子设计工具,即使没有程序设计基础,也可以通过简单的学习,掌握使用Arduino的方法。为了实现这一目标,Arduino从两方面进行了努力与改进。首先,在硬件方面,Arduino本身是一款非常容易使用的印刷电路板。电路板上装有专用集成电路,并将集成电路的功能引脚引出方便我们外接使用。同时,电路板还设计有USB接口方便与电脑连接。其次,在软件方面,Arduino提供了专门的程序开发环境Arduino IDE。其界面设计简洁,对于没有接触过程序设计的“小白”也可以轻松上手。

Arduino–UNO主板

 

Arduino–IDE

 

实验一  Hello world

目标效果:打印Hello world” 字体

硬件准备Arduino UNO 主板

软件准备Arduino–IDE

电路连接Arduino主板——电脑

代码

void setup() {

// put your setup code here, to run once:

Serial.begin(115200);

}

void loop() {

// put your main code here, to run repeatedly:

Serial.println(“Hello world !”);

delay(1000);

}

实验二 动态显示屏实验

目标效果:显示屏显示打印的文字

硬件准备

Arduino UNO一块  

IIC1602显示模块一个

Arduino UNO底板一块

杜邦线若干

软件准备Arduino–IDE

电路连接

GND——GND

VCC——5V

SDA——A4

SCL——A5

代码

#include <Wire.h>

#include <LCD.h>

#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7); // 0x27 is the I2C bus address for an unmodified backpack

void setup() { // activate LCD module

  lcd.begin (16,2); // for 16 x 2 LCD module 设置LCD的列和行数

  lcd.setBacklightPin(3,POSITIVE);

  lcd.setBacklight(HIGH);

}

void loop() {

  lcd.home (); // set cursor to 0,0   将光标设置为第0列第1

  lcd.print(”  KeywishRobot”);

   delay(1000);

  lcd.setCursor (0,1); // go to start of 2nd line

  lcd.print(”    “);

  lcd.print(millis());

  delay(1000);

  lcd.setBacklight(LOW); // Backlight off delay(250);        

  lcd.setBacklight(HIGH); // Backlight on delay(1000);

}

实验三 温湿度传感器

目标效果:屏幕显示当前的温度和湿度

硬件准备

Arduino UNO一块  

IIC1602显示模块一个

DHT11 温湿度传感器一个

杜邦线若干

软件准备Arduino–IDE

电路连接

IIC1602:

GND——GND

VCC——5V

SDA——A4

SCL——A5
DHT11

VCC 3.3V

GND GND

DAT pin8

代码

/*

 * 使用温湿度传感器检测信息并显示在 LCD

 */

#include <Wire.h>  // 导入驱动 LCD 需要的库

#include “LCD.h”

#include”dht11.h”  // 导入 dht 库,用于温湿度传感器

#include “LiquidCrystal_I2C.h”

#define DHT11PIN  8  // 将温湿度传感器的数据端口接至 A0

dht11 DHT11;

LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7);    // 0x27 I2C 总线的地址

 

void setup() {

   pinMode(DHT11PIN,OUTPUT);

   lcd.begin (16,2); // for 16 x 2 LCD module 初始横16列、竖2

   lcd.setBacklightPin(3,POSITIVE);

   lcd.setBacklight(HIGH);

}

 

void loop() {

    // 读取温湿度传感器的数据

    int chk = DHT11.read(DHT11PIN);

    // LCD 显示采集的温湿度数据

    lcd.setCursor(0, 0);

    lcd.print(“Tep: “);

    lcd.print((float)DHT11.temperature, 2);

    lcd.print(“C”);

    lcd.setCursor(0, 1);

    lcd.print(“Hum: “);

    lcd.print((float)DHT11.humidity, 2);

    lcd.print(“%”);

    delay(200);

}

延伸图形编程软件:ScratchmBlock

Scratch是一款由麻省理工学院(MIT) 设计开发的一款面向少年的简易编程工具,scratch已经是少儿编程行业的基础软件。

mBlock 是一款面向 STEAM 教育领域的图形化编程学习软件,基于 Scratch 3.0 开发。它不仅能让用户创作有趣的故事、游戏、动画等作品,并且支持 Makeblock 主板和其他 Arduino 硬件的编程。

 

语法常用参数

1pinMode(接口名称,OUTPUTINPUT)将——接口定义为输入或输出接口,用在setup()函数里。

2digitalWrite(接口名称, HIGHLOW)——将数字接口值至高或低。

3digitalRead(接口名称)——读出数字接口的值。

4analogWrite(接口名称, 数值)——给一个接口写入模拟值(PWM波)。对于 ATmega168芯片的Arduino(包括MiniBT),该函数可以工作于 3, 5, 6, 9, 1011号接口。老的 ATmega8芯片的USBserial Arduino仅仅支持 9, 101 1号接口。

5analogRead(接口名称)——从指定的模拟接口读取值,Arduino对该模拟值进行10-bit的数字转换,这个方法将输入的0-5电压值转换为 01023间的整数值。

6delay()——延时一段时间,delay(1000)为一秒。

7Serial.begin(波特率)——设置串行每秒传输数据的速率(波特率)。在同计算机通讯时,使用下面这些值:300, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600115200。你也可以在任何时候使用其它的值,比如,与0号或1号插口通信就要求特殊的波特率。用在setup()函数里

8Serial.read()——读取持续输入的数据。