Inhoudsopgave:

Temperatuur- en vochtigheidsdatalogger van Arduino naar Android-telefoon met SD-kaartmodule via Bluetooth - Ajarnpa
Temperatuur- en vochtigheidsdatalogger van Arduino naar Android-telefoon met SD-kaartmodule via Bluetooth - Ajarnpa

Video: Temperatuur- en vochtigheidsdatalogger van Arduino naar Android-telefoon met SD-kaartmodule via Bluetooth - Ajarnpa

Video: Temperatuur- en vochtigheidsdatalogger van Arduino naar Android-telefoon met SD-kaartmodule via Bluetooth - Ajarnpa
Video: Deel 12 - Arduino, gegevens doorsturen naar telefoon via Bluetooth, nRF24L01 module en Android App 2024, November
Anonim
Temperatuur- en vochtigheidsdatalogger van Arduino naar Android-telefoon met SD-kaartmodule via Bluetooth
Temperatuur- en vochtigheidsdatalogger van Arduino naar Android-telefoon met SD-kaartmodule via Bluetooth

Hallo allemaal, dit is mijn eerste Instructable ooit, ik hoop dat ik de maker-gemeenschap help omdat ik er baat bij heb gehad.

Vaak gebruiken we sensoren in onze projecten, maar het vinden van een manier om de gegevens te verzamelen, op te slaan en over te dragen. Telefoons of andere apparaten direct en draadloos waren geen kant-en-klaar proces. Dit Instructable zal u begeleiden door:

  • Gegevens ophalen van sensor (DHT 11) - temperatuur- en vochtigheidssensor.
  • Opslaan van de verkregen gegevens op SD-kaart met SD-kaartmodule.
  • De data draadloos via Bluetooth overzetten naar een op maat gemaakte Android App.
  • Opslaan van de ontvangen sensorwaarden als tekstbestand (.txt-bestand).

Stap 1: Componentenlijst

Componentenlijst
Componentenlijst
Componentenlijst
Componentenlijst
Componentenlijst
Componentenlijst

Laten we naar beneden gaan om de troepen te verzamelen om dit geweldige project te maken.

  • Arduino Uno (elke andere Arduino is ook geschikt)
  • micro SD-kaartmodule.
  • SD-kaartmodule (degene die ik gebruik is 8 GB, het wordt aangeraden om >=32 GB te gebruiken)
  • HC05 - Bluetooth-module
  • DHT11 (temperatuur- en vochtigheidssensor)
  • Stelletje springers.
  • Android telefoon

Stap 2: Aansluitingen:

Aansluitingen
Aansluitingen

Het in elkaar zetten en aansluiten van componenten is voor het project halverwege. De genoemde producten zijn gemakkelijk verkrijgbaar in de meeste elektronische winkels en online sites zoals Amazon.

Arduino - HC05-verbinding (Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 0 - Tx
  • Pin 1 - Rx

Arduino - SD-kaart module aansluiting:

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 11 - MOSI (Master Uit Slave In)
  • Pin 12 - MISO (Master In Slave Out)
  • Pin 13 - SCk (klok synchroon)
  • Pin 4 - CS (Chip Select)

Arduino - HC05-verbinding (Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin A0 - Signaal

Stap 3: Procedure

Procedure
Procedure

Verbind alle onderdelen zoals vermeld in de vorige stap, Hiermee kunnen we code schrijven in de Arduino Ide om ons doel te bereiken.

Het tweede deel van ons project is om een Android-app te hebben om de sensorwaarden te ontvangen, de waarden weer te geven en op te slaan in een bestand op de mobiel. Ik heb Thunkable gebruikt om de Android-applicatie te maken en heb er ook de apk en aia voor geleverd.

Stap 4: Arduino-code:

De Arduino-code is hieronder gegeven en uitgelegd.

De Arduino-code is meestal zelfverklarend met een SD-kaartbibliotheek en een DHT11-bibliotheek. De bluetooth maakt gebruik van hardware seriële die pin0 en pin1 van de arduino is, vandaar dat bluetooth-overdracht plaatsvindt met de seriële print () -functies die het I2C-protocol gebruiken en de SD-kaartmodule het SPI-protocol gebruikt om ermee te communiceren.

/*

* SD-kaart als volgt aangesloten op de SPI-bus:

** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 (voor MKRZero SD: SDCARD_SS_PIN) * *HC 05 module-aansluiting: ** TX - pin 0 (standaard) gewijzigd als Softwareserial wordt gebruikt] ** RX - pin 1 (standaard) [kan worden gewijzigd als Softwareserial wordt gebruikt]

*/

#erbij betrekken

#include #include

Bestand mijnBestand;

dht-DHT; #definieer DHT11_PIN A0

ongeldige setup() {

// Open seriële communicatie en wacht tot de poort wordt geopend: Serial.begin (9600); Serial.println("Type, \tStatus, \tVochtigheid(%), \tTemperatuur(C)"); while (!Serial) {; // wacht tot de seriële poort verbinding maakt. Alleen nodig voor native USB-poort } DHTAcq(); sdCardWrite("test3.txt"); sdCardRead ("test3.txt");

}

ongeldig DHTAcq()

{ Serial.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); Serial.print (DHT.vochtigheid, 1); Serieel.print(", \t"); Seriële.afdruk (DHT.temperatuur, 1); vertraging (2000); }

void sdCardWrite(String bestandsnaamStr)

{ Serial.println("Initialiseren SD-kaart"); if (!SD.begin(4)) { Serial.println("Initialisatie mislukt."); opbrengst; } Serial.println("Initialisatie klaar!"); // open het bestand. merk op dat er maar één bestand tegelijk geopend kan zijn, // dus je moet dit bestand sluiten voordat je een ander opent. mijnBestand = SD.open(bestandsnaamStr, FILE_WRITE); // als het bestand goed is geopend, schrijf er dan naar: if (myFile) { myFile.println("DHT11, \t"); int chk = DHT.read11(DHT11_PIN); myFile.print(DHT.vochtigheid, 1); mijnBestand.print(", \t"); myFile.print(DHT.temperatuur, 1); mijnBestand.close(); Serial.println("klaar!"); vertraging (200); /*Serial.print("Schrijven naar test.txt…"); myFile.println("test 1, 2, 3."); // sluit het bestand: myFile.close(); Serial.println("klaar."); */ } else { // als het bestand niet is geopend, druk dan een fout af: Serial.println("error opening test.txt"); } }

void sdCardRead (String bestandsnaam)

{ // heropen het bestand om te lezen: myFile = SD.open(fileName); if (mijnBestand) { Serial.println("test.txt:"); // lees uit het bestand totdat er niets anders in zit: while (myFile.available()) { Serial.write(myFile.read()); } // sluit het bestand: myFile.close(); } else { // als het bestand niet is geopend, druk dan een fout af: Serial.println("error opening test.txt"); } }

lege lus() {

// er gebeurt niets na installatie //Serial.println ("test 1.. 2.. 3"); //vertraging (1000); }

Stap 5: Android-app:

Android-app
Android-app
Android-app
Android-app

De Android-app is gemaakt met de Thunkable-applicatie met slepen en neerzetten. Het logt de gegevens in op het label op het scherm en zodra de Store Data-knop is ingedrukt op de locatie AppInventor/Data met de bestandsnaam die de code heeft gekregen.

Het project kan worden uitgebreid met offline opslag van alle sensorgegevens die we willen door deze te vervangen door de gewenste sensormodules en de app kan worden uitgebreid om de gegevens uit de opslag op te halen en te manipuleren om aan de toepassing te voldoen.

Aanbevolen: