How do I send temperature data from an Arduino to a smartphone?

Arduino til Smartphone: Temperaturdata trådløst

22/06/2025

Rating: 4.48 (6217 votes)
Indholdsfortegnelse

Arduino og Smartphone: En Trådløs Temperaturforbindelse

I en verden, hvor realtidsdata og fjernovervågning bliver stadig vigtigere, er evnen til at forbinde simple mikrocontrollere som Arduino med moderne smartphones en essentiel færdighed for enhver gør-det-selv-entusiast eller hobbyelektroniker. Denne artikel vil dykke ned i, hvordan du kan etablere en trådløs forbindelse fra en Arduino-enhed til din smartphone ved hjælp af Bluetooth-teknologi. Vi vil fokusere på at sende temperaturdata, målt af en DHT11-sensor, til din telefon, så du kan overvåge omgivelserne på afstand. Dette projekt kombinerer hardwareopsætning, kodning til Arduino og en simpel mobilapplikation for at skabe et funktionelt temperatur-overvågningssystem.

What is wireless temperature and humidity monitoring system?
To sum up, the Wireless Temperature and Humidity Monitoring System provides an easy-to-use and entertaining method of monitoring ambient conditions. With the help of the Arduino, DHT-11 sensor, HC-05 Bluetooth module, and MIT App Inventor, this project opens up a world of monitoring and automation possibilities.

Hvorfor Trådløs Temperaturmåling?

Forestil dig at kunne overvåge temperaturen i dit værksted, et drivhus, eller endda dit hjem, direkte fra din smartphone uden at skulle være fysisk til stede ved Arduino-enheden. Dette er præcis, hvad dette projekt muliggør. Ved at udnytte den udbredte Bluetooth-teknologi kan vi sende data om temperatur (og potentielt fugtighed) trådløst. Dette åbner op for en række anvendelser, lige fra simple hobbyprojekter til mere avancerede IoT-løsninger (Internet of Things).

Nødvendige Komponenter

For at realisere dette projekt skal du bruge følgende komponenter:

KomponentBeskrivelseTilslutning til Arduino
Arduino UNOEn alsidig og brugervenlig mikrocontroller-board, der er kernen i projektet.USB til programmering og strøm.
HC-06 Bluetooth ModulEt billigt slave Bluetooth-modul, der muliggør trådløs kommunikation.Serielle pins (TX, RX) og strøm.
DHT11 Temperatur- og FugtighedssensorEn populær sensor til måling af omgivelsestemperatur og relativ fugtighed.Digital pin og strøm.
Jumper-ledningerTil at forbinde komponenterne.Varierer afhængigt af tilslutningerne.
Smartphone med BluetoothEn iOS- eller Android-enhed til at modtage og vise data.Via Bluetooth-indstillinger.
App til SmartphoneEn app, der kan modtage Bluetooth-seriel data, f.eks. 'Serial Bluetooth Terminal'.Afhænger af appen.

Forstå Komponenterne

Arduino UNO

Arduino UNO er hjertet i vores system. Den er baseret på ATmega328P mikrocontrolleren og tilbyder 14 digitale I/O-pins, 6 analoge input, USB-forbindelse og meget mere. Den programmeres nemt via Arduino IDE, et brugervenligt udviklingsmiljø.

HC-06 Bluetooth Modul

HC-06 er et slave Bluetooth-modul, hvilket betyder, at det kan parres med en master enhed (som din smartphone) men ikke omvendt. Det kommunikerer via UART (Universal Asynchronous Receiver/Transmitter), hvilket gør det nemt at integrere med Arduinos serielle porte. Det er strømbesparende og kan konfigureres til forskellige baud-rater. Standard adgangskoden er typisk '1234' eller '0000'.

How do I send temperature data from an Arduino to a smartphone?
To transmit temperature data measured by a DHT11 sensor from an Arduino to a smartphone via Bluetooth, you will need the following components: A software or an application on your smartphone that can receive the data sent by the Arduino. Connect the DHT11 sensor to the Arduino.

DHT11 Sensor

DHT11 er en prisvenlig sensor, der leverer både temperatur og fugtighed. Den har tre aktive pins: VCC (strøm), GND (jord) og Data. Sensoren bruger en proprietær 1-leder kommunikationsprotokol. Den kan måle temperaturer fra 0-50°C med en nøjagtighed på ±2°C og fugtighed fra 20-80% med en nøjagtighed på ±5%. Bemærk, at DHT11 er en relativt langsom sensor, der tager op til 2 sekunder om at levere data.

Opsætning af Kredsløbet

For at forbinde komponenterne korrekt, følg disse trin:

  1. DHT11 til Arduino:
    • DHT11 VCC pin til Arduino 5V.
    • DHT11 GND pin til Arduino GND.
    • DHT11 Data pin til en af Arduinos digitale pins (f.eks. pin 12).
  2. HC-06 til Arduino:
    • HC-06 VCC pin til Arduino 5V (eller 3.3V afhængigt af modulet).
    • HC-06 GND pin til Arduino GND.
    • HC-06 TXD pin til Arduino RX pin (f.eks. pin 7).
    • HC-06 RXD pin til Arduino TX pin (f.eks. pin 8).

    Vigtigt: Når du forbinder TXD fra HC-06 til RX på Arduino, og RXD fra HC-06 til TX på Arduino, skal du være opmærksom på spændingsniveauerne. HC-06 opererer typisk på 3.3V logik, mens Arduino UNO bruger 5V. En simpel modstandsdivisor kan være nødvendig for at undgå at beskadige HC-06 modulet. Alternativt kan du bruge en Arduino med 3.3V logik eller et dedikeret niveau-konverteringsmodul.

For en mere robust opsætning kan det være en god idé at bruge SoftwareSerial biblioteket i Arduino, som tillader dig at bruge andre digitale pins som serielle porte, hvilket frigør de hardware serielle pins (0 og 1) til debugging via USB.

Arduino Programmering

Før du kan programmere Arduino, skal du installere DHT-biblioteket. Du kan finde det via Arduino IDE's Library Manager (søg efter "DHT sensor library" af Adafruit).

How to monitor temperature and humidity using Arduino Uno?
The command is sent wirelessly to the Arduino Uno, the Arduino once receive the command then replay back with the temperature and humidity values. In this project, the famous DHT11 temperature and humidity module are used for monitoring the temperature and humidity.

Her er et eksempel på Arduino-kode, der læser data fra DHT11 og sender dem via Bluetooth, når den modtager et specifikt tegn (f.eks. 'v') via Bluetooth-forbindelsen:

/* Dette sketch læser temperatur og fugtighed fra en DHT11 sensor og sender dataene via Bluetooth til en smartphone. Det modtager et 'v' tegn via Bluetooth for at udløse en datatransmission. */ #include <SoftwareSerial.h> #include "DHT.h" // Definer pins til Bluetooth-modulet #define BT_RX_PIN 7 // Arduino pin til at modtage fra Bluetooth (HC-06 TXD) #define BT_TX_PIN 8 // Arduino pin til at sende til Bluetooth (HC-06 RXD) SoftwareSerial bluetoothSerial(BT_RX_PIN, BT_TX_PIN); // RX, TX // Definer pin til DHT11 sensoren #define DHTPIN 12 // Digital pin tilsluttet DHT11 data #define DHTTYPE DHT11 // Specificer sensortypen (DHT11) DHT dht(DHTPIN, DHTTYPE); String dataToSend = ""; // Bruges til at opbygge den data streng, der sendes void setup() { Serial.begin(9600); // Initialiser seriel kommunikation til debugging via USB Serial.println("Arduino Temperatur Monitor Startet"); bluetoothSerial.begin(9600); // Initialiser seriel kommunikation til Bluetooth (typisk 9600 baud for HC-06) Serial.println("Bluetooth initialiseret med 9600 baud."); dht.begin(); // Initialiser DHT sensoren Serial.println("DHT sensor initialiseret."); } void loop() { // Tjek om der er data modtaget via Bluetooth if (bluetoothSerial.available() > 0) { char command = bluetoothSerial.read(); // Læs det modtagne tegn Serial.print("Modtaget kommando: "); Serial.println(command); // Hvis kommandoen er 'v' (request for value) if (command == 'v') { readAndSendData(); // Kald funktionen til at læse og sende data } } } void readAndSendData() { // Vent et par sekunder mellem målinger (DHT sensor er langsom) delay(2000); // Læs fugtighed (procent) og temperatur (Celsius) float h = dht.readHumidity(); float t = dht.readTemperature(); // Celsius // float f = dht.readTemperature(true); // Fahrenheit, hvis nødvendigt // Tjek om læsning fejlede if (isnan(h) || isnan(t)) { Serial.println("Fejl ved læsning fra DHT sensor!"); dataToSend = "Fejl: Kunne ikke læse sensor."; } else { // Opbyg datastrengen dataToSend = "Temp: "; dataToSend += String(t); dataToSend += " C, Fugtighed: "; dataToSend += String(h); dataToSend += " %"; Serial.print("Sender: "); Serial.println(dataToSend); } // Send data strengen via Bluetooth bluetoothSerial.println(dataToSend); } 

Smartphone Applikation

For at modtage og vise dataene på din smartphone, skal du bruge en app, der kan håndtere Bluetooth seriel kommunikation. En populær og gratis mulighed er "Serial Bluetooth Terminal" (tilgængelig på Android). Her er de generelle trin for at bruge appen:

  1. Par Bluetooth: Gå til din smartphones Bluetooth-indstillinger, søg efter nye enheder, og par med HC-06 modulet (typisk navngivet "HC-06" eller lignende). Brug adgangskoden "1234" eller "0000", hvis du bliver bedt om det.
  2. Åbn Appen: Start "Serial Bluetooth Terminal" eller en lignende app.
  3. Forbind: I appen skal du finde muligheden for at forbinde til en Bluetooth-enhed og vælge dit parrede HC-06 modul.
  4. Send Kommando: Når forbindelsen er etableret, skal du finde et inputfelt i appen, hvor du kan skrive tekst. Skriv tegnet 'v' og send det. Dette vil udløse Arduinoen til at læse sensoren og sende dataene tilbage.
  5. Modtag Data: Dataene fra Arduinoen bør nu dukke op i appens terminalvindue.

Alternativt kan du bruge MIT App Inventor til at bygge din egen brugerdefinerede Android-app. Dette giver mere fleksibilitet og mulighed for at designe en specifik brugergrænseflade til at vise temperatur og fugtighed, samt måske endda tilføje knapper til at anmode om nye data.

Fejlfinding og Overvejelser

  • Forbindelsesproblemer: Dobbelttjek alle ledningsforbindelser, især TX/RX mellem Arduino og HC-06. Sørg for, at baud-raterne i Arduino-koden matcher HC-06's standard eller konfigurerede baud-rate.
  • Dataintegritet: DHT11 er ikke den mest nøjagtige sensor. For mere præcise målinger kan du overveje en DHT22 eller en BME280 sensor.
  • Strømforsyning: Sørg for, at Arduinoen og Bluetooth-modulet får stabil strøm. En ekstern strømkilde kan være nødvendig, hvis du bruger mange komponenter.
  • Bluetooth Rækkevidde: Bluetooth Class 2 moduler (som HC-06 typisk er) har en rækkevidde på omkring 10 meter under optimale forhold.
  • SoftwareSerial: Hvis du har problemer med kommunikationen, kan det skyldes konflikter med hardware seriel. Brug af SoftwareSerial er generelt en god praksis.

Opsummering

Ved at følge denne guide har du nu grundlaget for at sende temperaturdata fra en Arduino til din smartphone via Bluetooth. Dette projekt er en fremragende introduktion til trådløs kommunikation med Arduino og åbner døren for utallige muligheder inden for IoT og automatisering. Uanset om du ønsker at overvåge dine planter, dit hjemmekontor eller blot eksperimentere med elektronik, giver denne opsætning dig magten til at bringe dine data ud af det fysiske rum og ind i din digitale verden.

Ofte Stillede Spørgsmål (FAQ)

Kan jeg sende data til en iPhone?

Ja, det kan du. Dog kan iOS-enheder være mere restriktive med hensyn til at parre med generiske Bluetooth-moduler som HC-06, især hvis appen ikke er specifikt designet til at håndtere det. MIT App Inventor kan generere Android-apps, men for iOS skal du typisk bruge Xcode og Swift/Objective-C med Core Bluetooth framework.

Hvad hvis min HC-06 ikke parrer?

Prøv at nulstille modulet eller download et AT-kommando sketch til Arduino for at ændre Bluetooth-modulets navn, adgangskode eller baud-rate.

What is a temperature monitoring system on an Android smartphone?
This article describes a temperature monitoring system on an Android smartphone. Temperature is sensed by a temperature sensor installed in the circuit and is sent over Bluetooth to the smartphone. An Android application is used in the smartphone to display temperature data. The system provides easy monitoring of process data on a smartphone.

Kan jeg sende andre data end temperatur?

Absolut! Du kan modificere Arduino-koden til at læse data fra enhver sensor, der kan tilsluttes Arduino, og sende disse data som tekststrenge via Bluetooth.

Hvad er forskellen på HC-05 og HC-06?

HC-05 kan fungere som både master og slave, mens HC-06 kun fungerer som slave. For at forbinde til en smartphone er HC-06 typisk tilstrækkeligt og ofte billigere.

Hvorfor bruger vi SoftwareSerial?

SoftwareSerial giver dig mulighed for at bruge digitale pins som serielle kommunikationsporte. Dette er nyttigt, da Arduinos hardware serielle porte (pins 0 og 1) ofte bruges til USB-kommunikation med en computer, hvilket kan forstyrre Bluetooth-kommunikationen, hvis begge forsøger at bruge dem samtidigt.

Hvis du vil læse andre artikler, der ligner Arduino til Smartphone: Temperaturdata trådløst, kan du besøge kategorien Teknologi.

Go up