Spisu treści:

Rejestrator temperatury i wilgotności z Arduino na telefon z Androidem z modułem karty SD przez Bluetooth: 5 kroków
Rejestrator temperatury i wilgotności z Arduino na telefon z Androidem z modułem karty SD przez Bluetooth: 5 kroków

Wideo: Rejestrator temperatury i wilgotności z Arduino na telefon z Androidem z modułem karty SD przez Bluetooth: 5 kroków

Wideo: Rejestrator temperatury i wilgotności z Arduino na telefon z Androidem z modułem karty SD przez Bluetooth: 5 kroków
Wideo: Podgląd temperatury w pokoju za pomocą Arduino UNO i Bluetooth 2024, Lipiec
Anonim
Rejestrator temperatury i wilgotności z Arduino na telefon z Androidem z modułem karty SD przez Bluetooth
Rejestrator temperatury i wilgotności z Arduino na telefon z Androidem z modułem karty SD przez Bluetooth

Witam wszystkich, to jest mój pierwszy Instructable w historii. Mam nadzieję, że pomogę społeczności twórców, ponieważ odniosłem z tego korzyści.

Często wykorzystujemy czujniki w naszych projektach, ale znalezienie sposobu na gromadzenie danych, ich przechowywanie i przesyłanie od razu Telefony lub inne urządzenia i bezprzewodowe nie były gotowym procesem. Ta instrukcja poprowadzi Cię przez

  • Pobieranie danych z czujnika (DHT 11) - czujnik temperatury i wilgotności.
  • Przechowywanie zebranych danych na karcie SD z modułem kart SD.
  • Przesyłanie danych bezprzewodowo za pomocą Bluetooth do niestandardowej aplikacji na Androida.
  • Przechowywanie odebranych wartości czujników jako plik tekstowy (plik.txt).

Krok 1: Lista komponentów

Lista komponentów
Lista komponentów
Lista komponentów
Lista komponentów
Lista komponentów
Lista komponentów

Zabierzmy się do zebrania żołnierzy, aby stworzyć ten niesamowity projekt.

  • Arduino Uno (odpowiednie będzie również każde inne arduino)
  • moduł karty micro SD.
  • Moduł karty SD (ten, którego używam, ma pojemność 8 GB, zaleca się użycie >=32 GB)
  • HC05 - moduł Bluetooth
  • DHT11 (czujnik temperatury i wilgotności)
  • Kilka swetrów.
  • Telefon z systemem Android

Krok 2: Połączenia:

Znajomości
Znajomości

Składanie i łączenie komponentów jest już w połowie skończone dla projektu. Wspomniane produkty są łatwo dostępne w większości detalicznych sklepów elektronicznych i witryn internetowych, takich jak Amazon.

Połączenie Arduino - HC05 (Bluetooth):

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

Arduino - podłączenie modułu karty SD:

  • +5V - Vcc
  • Gnd - Gnd
  • Pin 11 - MOSI (wejście Master Out Slave)
  • Pin 12 - MISO (Master In Slave Out)
  • Pin 13 - SCk (Synchroniczny zegar)
  • Pin 4 - CS (wybór chipa)

Połączenie Arduino - HC05 (Bluetooth):

  • +5V - Vcc
  • Gnd - Gnd
  • Pin A0 - Sygnał

Krok 3: Procedura

Procedura
Procedura

Połącz wszystkie części, jak wspomniano w poprzednim kroku, dzięki temu możemy napisać kod w Arduino Ide, aby osiągnąć nasz cel.

Drugą częścią naszego projektu jest stworzenie aplikacji na Androida do odbierania wartości z czujników, wyświetlania wartości i przechowywania ich w pliku w telefonie komórkowym. Użyłem Thunkable do stworzenia aplikacji na Androida, a także dostarczyłem do niej apk i aia.

Krok 4: Kod Arduino:

Kod Arduino został podany i wyjaśniony poniżej.

Kod arduino jest w większości oczywisty z biblioteką kart SD i biblioteką DHT11. Bluetooth używa sprzętowego portu szeregowego, który jest pin0 i pin1 arduino, dlatego transfer bluetooth odbywa się za pomocą funkcji Serial print(), która wykorzystuje protokół I2C, a moduł karty SD wykorzystuje protokół SPI do komunikacji z nim.

/*

* Karta SD podłączona do magistrali SPI w następujący sposób:

** MOSI - pin 11 ** MISO - pin 12 ** CLK - pin 13 ** CS - pin 4 (dla MKRZero SD: SDCARD_SS_PIN) * *Podłączenie modułu HC 05: ** TX - pin 0 (domyślnie) [może być zmieniane, jeśli używany jest Softwareserial] ** RX - pin 1 (domyślnie) [można zmienić, jeśli używany jest Softwareserial]

*/

#włączać

#włącz #włącz

Plik mójPlik;

dht DHT; #zdefiniuj DHT11_PIN A0

pusta konfiguracja () {

// Otwórz komunikację szeregową i poczekaj na otwarcie portu: Serial.begin(9600); Serial.println("Typ, \tStatus, \tWilgotność(%), \tTemperatura(C)"); while (!Serial) {; // czekaj na połączenie portu szeregowego. Wymagane tylko dla natywnego portu USB } DHTAcq(); sdCardWrite("test3.txt"); sdCardRead("test3.txt");

}

nieważne DHTAcq()

{ Serial.println("DHT11, \t"); int chk = DHT.odczyt11(DHT11_PIN); Serial.print(DHT.wilgotność, 1); Serial.print(", \t"); Serial.print(DHT.temperatura, 1); opóźnienie (2000); }

void sdCardWrite(string fileNameStr)

{ Serial.println("Inicjowanie karty SD"); if (!SD.begin(4)) { Serial.println("Inicjalizacja nie powiodła się."); powrót; } Serial.println("Inicjalizacja zakończona!"); // otwórz plik. zauważ, że tylko jeden plik może być otwarty na raz, // więc musisz zamknąć ten przed otwarciem kolejnego. myFile = SD.open(fileNameStr, FILE_WRITE); // jeśli plik został otwarty poprawnie, napisz do niego: if (myFile) { myFile.println("DHT11, \t"); int chk = DHT.odczyt11(DHT11_PIN); myFile.print(DHT.wilgotność, 1); mójPlik.print(", \t"); myFile.print(DHT.temperatura, 1); mójPlik.zamknij(); Serial.println("gotowe!"); opóźnienie(200); /*Serial.print("Zapis do test.txt…"); myFile.println("testowanie 1, 2, 3."); // zamknij plik: myFile.close(); Serial.println("gotowe."); */ } else { // jeśli plik się nie otworzył, wypisz błąd: Serial.println("błąd otwierania test.txt"); } }

void sdCardRead(String fileName)

{ // ponownie otwórz plik do odczytu: myFile = SD.open(fileName); if (myFile) { Serial.println("test.txt:"); // odczytaj plik, dopóki nie będzie w nim nic więcej: while (myFile.available()) { Serial.write(myFile.read()); } // zamknij plik: myFile.close(); } else { // jeśli plik się nie otworzył, wypisz błąd: Serial.println("błąd otwierania test.txt"); } }

pusta pętla () {

// nic się nie dzieje po instalacji //Serial.println("test 1.. 2.. 3"); //opóźnienie(1000); }

Krok 5: Aplikacja na Androida:

Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida
Aplikacja na Androida

Aplikacja na Androida została stworzona za pomocą aplikacji Thunkable z programowaniem przeciągnij i upuść. Zarejestruje dane na etykiecie na ekranie i po naciśnięciu przycisku Zapisz dane w lokalizacji AppInventor/Data z nazwą pliku, któremu nadano kod.

Projekt można rozszerzyć, aby mieć możliwość przechowywania w trybie offline dowolnych danych z czujników, zastępując je żądanymi modułami czujników, a aplikację można rozszerzyć, aby pobierać dane z pamięci i manipulować nimi w celu dostosowania do aplikacji.

Zalecana: