22/06/2025
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.

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:
| Komponent | Beskrivelse | Tilslutning til Arduino |
| Arduino UNO | En alsidig og brugervenlig mikrocontroller-board, der er kernen i projektet. | USB til programmering og strøm. |
| HC-06 Bluetooth Modul | Et billigt slave Bluetooth-modul, der muliggør trådløs kommunikation. | Serielle pins (TX, RX) og strøm. |
| DHT11 Temperatur- og Fugtighedssensor | En populær sensor til måling af omgivelsestemperatur og relativ fugtighed. | Digital pin og strøm. |
| Jumper-ledninger | Til at forbinde komponenterne. | Varierer afhængigt af tilslutningerne. |
| Smartphone med Bluetooth | En iOS- eller Android-enhed til at modtage og vise data. | Via Bluetooth-indstillinger. |
| App til Smartphone | En 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'.

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:
- 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).
- 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).

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:
- 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.
- Åbn Appen: Start "Serial Bluetooth Terminal" eller en lignende app.
- Forbind: I appen skal du finde muligheden for at forbinde til en Bluetooth-enhed og vælge dit parrede HC-06 modul.
- 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.
- 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.

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.
