INHOUDSOPGAWE:

Temperatuur- en humiditeitsdatalogger van Arduino na Android -telefoon met SD -kaartmodule via Bluetooth: 5 stappe
Temperatuur- en humiditeitsdatalogger van Arduino na Android -telefoon met SD -kaartmodule via Bluetooth: 5 stappe

Video: Temperatuur- en humiditeitsdatalogger van Arduino na Android -telefoon met SD -kaartmodule via Bluetooth: 5 stappe

Video: Temperatuur- en humiditeitsdatalogger van Arduino na Android -telefoon met SD -kaartmodule via Bluetooth: 5 stappe
Video: Объяснение прошивки Marlin 2.0.x 2024, November
Anonim
Temperatuur- en humiditeitsdatalogger van Arduino na Android -telefoon met 'n SD -kaartmodule via Bluetooth
Temperatuur- en humiditeitsdatalogger van Arduino na Android -telefoon met 'n SD -kaartmodule via Bluetooth

Hallo almal, dit is my eerste instruksie ooit, ek hoop ek help die vervaardigersgemeenskap, aangesien ek daarby baat gevind het.

Dikwels gebruik ons sensors in ons projekte, maar om 'n manier te vind om die data te versamel, te stoor en onmiddellik oor te dra Telefone of ander toestelle en draadloos was nie 'n gereedgemaakte proses nie. Hierdie instruksies lei u deur

  • Verkry data van sensor (DHT 11) - temperatuur- en humiditeitsensor.
  • Stoor die verkrygde data op die SD -kaart met die SD -kaartmodule.
  • Dra die data draadloos oor met behulp van Bluetooth na 'n pasgemaakte Android -app.
  • Stoor die ontvangde sensorwaardes as tekslêer (.txt -lêer).

Stap 1: Komponentelys

Komponentelys
Komponentelys
Komponentelys
Komponentelys
Komponentelys
Komponentelys

Laat ons gaan om die troepe bymekaar te maak om hierdie wonderlike projek te maak.

  • Arduino Uno (enige ander arduino is ook geskik)
  • mikro SD kaart module.
  • SD -kaartmodule (die een wat ek gebruik, is 8 GB, dit word aanbeveel om> = 32 GB te gebruik)
  • HC05 - Bluetooth -module
  • DHT11 (temperatuur- en humiditeitsensor)
  • Tros springers.
  • Android -foon

Stap 2: Verbindings:

Verbindings
Verbindings

Saamvoeging en verbinding van komponente is halfpad voltooi vir die projek. Die genoemde produkte is maklik beskikbaar in die meeste kleinhandel -elektroniese winkels en aanlynwebwerwe soos Amazon.

Arduino - HC05 -verbinding (Bluetooth):

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

Arduino - SDkaart module verbinding:

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

Arduino - HC05 -verbinding (Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Speld A0 - Sein

Stap 3: Prosedure

Prosedure
Prosedure

Verbind al die dele soos in die vorige stap genoem, en hiermee kan ons kode in die Arduino Ide skryf om ons doel te bereik.

Die tweede deel van ons projek is om 'n Android -app te hê om die sensorwaardes te ontvang, die waardes te vertoon en in 'n lêer op die selfoon te stoor. Ek het Thunkable gebruik om die Android -toepassing te maak, en ek het ook die apk en aia daarvoor verskaf.

Stap 4: Arduino -kode:

Die Arduino -kode is hieronder gegee en verduidelik.

Die arduino -kode verduidelik meestal self met die SD -kaartbiblioteek en die DHT11 -biblioteek. Die Bluetooth gebruik hardeware -reeks, wat pin0 en pin1 van die arduino is, en Bluetooth -oordrag vind plaas met die Serial print () -funksies wat die I2C -protokol gebruik, en die SD -kaartmodule gebruik die SPI -protokol om daarmee te kommunikeer.

/*

* SD -kaart soos volg aan SPI -bus geheg:

** MOSI - pen 11 ** MISO - pen 12 ** CLK - pen 13 ** CS - pen 4 (vir MKRZero SD: SDCARD_SS_PIN) * * HC 05 -moduleverbinding: ** TX - pen 0 (standaard) [kan wees verander as sagteware gebruik word] ** RX - pen 1 (standaard) [kan verander word as sagteware gebruik word]

*/

#insluit

#include #include

Lê myFile;

dht DHT; #definieer DHT11_PIN A0

ongeldige opstelling () {

// Maak reekskommunikasie oop en wag totdat die poort oopgemaak word: Serial.begin (9600); Serial.println ("Tipe, / tStatus, / tHumidity (%), / tTemperature (C)"); terwyl (! Serial) {; // wag totdat die seriële poort verbind is. Benodig slegs vir inheemse USB -poort} DHTAcq (); sdCardWrite ("test3.txt"); sdCardRead ("test3.txt");

}

ongeldig DHTAcq ()

{Serial.println ("DHT11, / t"); int chk = DHT.read11 (DHT11_PIN); Serial.print (DHT. humiditeit, 1); Serial.print (", / t"); Seriële druk (DHT.temperatuur, 1); vertraging (2000); }

void sdCardWrite (string fileNameStr)

{Serial.println ("Initialiseer SD -kaart"); as (! SD.begin (4)) {Serial.println ("Inisialisering misluk."); terugkeer; } Serial.println ("Inisialisering gedoen!"); // maak die lêer oop. Let daarop dat slegs een lêer op 'n slag oop kan wees, dus moet u hierdie lêer sluit voordat u 'n ander een oopmaak. myFile = SD.open (fileNameStr, FILE_WRITE); // as die lêer goed oopgemaak is, skryf daaraan: if (myFile) {myFile.println ("DHT11, / t"); int chk = DHT.read11 (DHT11_PIN); myFile.print (DHT.humidity, 1); myFile.print (", / t"); myFile.print (DHT.temperatuur, 1); myFile.close (); Serial.println ("klaar!"); vertraging (200); /*Serial.print("Skryf na test.txt … "); myFile.println ("toets 1, 2, 3."); // sluit die lêer: myFile.close (); Serial.println ("klaar."); */} anders {// as die lêer nie oopgemaak is nie, druk 'n fout af: Serial.println ("fout tydens die opening van test.txt"); }}

void sdCardRead (string lêernaam)

{// maak die lêer weer oop vir lees: myFile = SD.open (fileName); as (myFile) {Serial.println ("test.txt:"); // lees uit die lêer totdat daar niks anders in is nie: while (myFile.available ()) {Serial.write (myFile.read ()); } // sluit die lêer: myFile.close (); } anders {// as die lêer nie oopgemaak is nie, druk 'n fout af: Serial.println ("fout oopmaak test.txt"); }}

leemte -lus () {

// niks gebeur na die opstelling nie //Serial.println("toets 1.. 2.. 3 "); // vertraging (1000); }

Stap 5: Android -app:

Android -program
Android -program
Android -program
Android -program

Die Android -app is gemaak met 'n Thunkable -toepassing met sleep -en -neer -programmering. Dit sal die data op die etiket op die skerm aanmeld en sodra die knoppie Stoordata op die plek gedruk word AppInventor/Data met die lêernaam wat die kode gekry het.

Die projek kan uitgebrei word met vanlyn berging van die sensordata wat ons wil, deur te vervang met die gewenste sensormodules en die app kan uitgebrei word om die data uit die stoor te haal en te manipuleer om by die toepassing te pas.

Aanbeveel: