Arduino I2C Temp Humidity

Fra HTX Arduino
Spring til navigation Spring til søgning
I2C Humidity and Temperature module HTU21

HTU21 er et lille I2C modul der kan måle temperatur og luftfugtighed.

Modulet er anskaffet i Kina[1] til en pris omkring $3 og er dokumenteret i følgende datablad[2].

Modulet tilsluttes GND og +5V samt SCL og SDA som I2C protokollen specificerer.

Elektrisk tilslutning

Modulet kommer med et 4 polet stik, der kan tilsluttes Arduinoen som følger:

Funktion Arduino
VIN +5V
GND GND
SCL SCL - A5
SDA SDA - A4

Software

Biblioteket der anvendes ligger på GitHub[3]. Biblioteket downloades og installeres som beskrevet under Arduinos biblioteker.

Til test anvendes HTU21DFtest der kommer med som eksempel til biblioteket.

Her gennemgås kun de grundlæggende dele af modulet.

Anvendelsen af softwaren

Som alle andre biblioteker skal der sættes de grundlæggende ting op for at kontakte biblioteket. Der oprettes et objekt htu, der refererer til sensoren.

#include <Wire.h>
#include "Adafruit_HTU21DF.h"

// Connect Vin to 3-5VDC
// Connect GND to ground
// Connect SCL to I2C clock pin (A5 on UNO)
// Connect SDA to I2C data pin (A4 on UNO)

Adafruit_HTU21DF htu = Adafruit_HTU21DF();

Inde i setup() skal der sættes gang i den serielle port til test ved hjælp af begin-metoden, og modulet initialiseres som vist her:

void setup() {
  Serial.begin(9600);
  Serial.println("HTU21D-F test");

  if (!htu.begin()) {
    Serial.println("Couldn't find sensor!");
    while (1);
  }
}

I loop() læses temperatur og luftfugtighed hvert halve sekund, det gøres med følgende kode:.

void loop() {
  Serial.print("Temp: "); Serial.print(htu.readTemperature());
  Serial.print("\t\tHum: "); Serial.println(htu.readHumidity());
  delay(500);
}

Yderligere muligheder i softwaren

Der ligger yderligere muligheder i biblioteket man kan anvende, hvis man ønsker andre måder at anvende sensoren på:

  Adafruit_HTU21DF();
  boolean begin(void);
  float readTemperature(void);
  float readHumidity(void);
  void reset(void);

En del af disse funktioner er vist i koden, mens andre kan anvendes hvis man har lyst.

Test

Test af softwaren viser at der kan læses temperatur og luftfugtighed.

Referencer

Arduino-Modul-Oversigt
Arduino Generelt: Biblioteker - Board - Driver - Shield - Arduino Analog - Arduino Seriel

Arduino-typer: Arduino UNO - Arduino Nano - Arduino Pro Mini - Arduino MEGA 2560 - LiliyPad Mikrocontroller - Arduino DUE - WeMOS

Input-moduler Trådløse: Bluetooth - Transceiver modul - WiFi Modul - SMS Modul - I2C-RF-modtager - RF Link - GPRS/GSM - GSM_Modul

Sensorer: GPS - Strøm-sensor - I2C Humidity - Lys og Nærhed - Magnetisk Kompas - I2C barometer - Farvegenkendelsesmodul - Alkoholsensor - Accelerometer - I2C Accelerometer - I2C Gyroskop - Vejecelleforstærker - IR Distance - AC Strømsensor - Afstand - XY Joystick - Humidity - Tryksensor - Vindhastighedsmåler
Photo og IR: IR Fjernbetjening - Photo Interrupter - IR Modtager - Bevægelsescensor - Photo Refleks Sensor - VGA Kamera
Power: Power Adapter - Lithium Batteri
Lager: SD Kort
Konvertere: I2C AD-konverter
Funktionsmoduler: RFID-modul - Matrix tastatur - DS1307 RTC - ENC28J60 Ethernet - IO Expander
Touch Display: Touch Display

Output-moduler Trådløse: Bluetooth - RF Link - GPRS/GSM - Transceiver modul - WiFi Modul - SMS Modul

Display: Display Shield - Touch Display - Arduino Display - Nokia 5110 Display - Dot-Matrix - Lys-avis - I2C Display
Funktionsmoduler: Lydgiver - Lydmodul - Relæ modul - Audio Power Forstærker - ENC28J60 Ethernet - Peltier Element - IO Expander
Hukommelse: SD Kort
Motorer: Stepper Motor Driver - Stepper med Accelleration - Servo

I2C-Moduler Funktionsmoduler: DS1307 RTC - I2C-RF-modtager - I2C tastatur

Sensorer: I2C Humidity - Magnetisk Kompas - I2C barometer - I2C Accelerometer - I2C Gyroskop
Konvertere: I2C AD-konverter
Display: I2C Display