- Wymagane składniki
- Moduł czytnika RFID EM18
- Termometr na podczerwień MLX90614
- Schemat obwodu
- Objaśnienie kodu
- Przechowywanie danych czujnika w arkuszu Excel z kontrolera Arduino
Od wybuchu Covid-19 termometry na podczerwień są używane jako narzędzie kontrolne do skanowania ludzi na lotniskach, dworcach kolejowych i innych zatłoczonych miejscach. Te skany są używane do identyfikacji potencjalnych pacjentów Covid-19. Rząd nałożył obowiązek przeskanowania wszystkich przed wejściem do biura, szkoły lub innego zatłoczonego miejsca.
W tym samouczku zamierzamy zbudować bezdotykowy system monitorowania temperatury oparty na RFID, wykorzystujący bezdotykowy czujnik temperatury z Arduino. Kiedy pracownicy skanują kartę RFID, będzie ona mierzyć temperaturę ciała pracowników za pomocą bezkontaktowego termometru na podczerwień i rejestrować imię i nazwisko oraz temperaturę tego pracownika bezpośrednio w arkuszu programu Excel. Do budowy tego projektu będziemy używać Arduino Nano, MLX90614, czytnika RFID EM18 i czujnika ultradźwiękowego. Czujnik ultradźwiękowy służy do obliczania odległości między termometrem a osobą. Termometr mierzy temperaturę tylko wtedy, gdy odległość jest mniejsza niż 25 cm. Jest to coś w rodzaju systemu obecności opartego na technologii RFID, który rejestruje również temperaturę ciała każdej osoby.
Wymagane składniki
- Arduino Nano
- Moduł RFID EM-18
- MLX90614 Bezkontaktowy czujnik temperatury
- Czujnik ultradźwiękowy
- Płytka prototypowa
- Przewody połączeniowe
Moduł czytnika RFID EM18
Jednym z powszechnie stosowanych czytników RFID do odczytu tagów 125 kHz jest czytnik RFID EM-18. Ten niedrogi moduł czytnika RFID charakteryzuje się niskim zużyciem energii, niskim współczynnikiem kształtu i jest łatwy w użyciu. Moduł czytnika EM-18 może zapewnić wyjście poprzez dwa interfejsy komunikacyjne tj. RS232 i WEIGAND26.
Czytnik RFID EM18 posiada nadajnik-odbiornik, który przesyła sygnał radiowy. Gdy tag RFID znajdzie się w zasięgu sygnału nadajnika, sygnał ten trafia w transponder znajdujący się wewnątrz karty. Znacznik pobiera energię z pola elektromagnesu generowanego przez moduł czytnika. Transponder następnie przekształca sygnał radiowy w użyteczną formę mocy. Po zasileniu transponder przekazuje wszystkie informacje, takie jak określony identyfikator, w postaci sygnału RF do modułu RFID. Następnie dane te przesyłane są do mikrokontrolera za pomocą komunikacji UART.
Aby dowiedzieć się więcej o RFID i tagach, sprawdź nasze poprzednie projekty oparte na RFID.
Termometr na podczerwień MLX90614
Zanim przejdziemy do samouczka, ważne jest, aby wiedzieć, jak działa czujnik MLX90614. Na rynku dostępnych jest wiele czujników temperatury, a czujniki DHT11 i LM35 szeroko stosujemy w wielu zastosowaniach, w których konieczne jest mierzenie wilgotności powietrza lub temperatury.
Wcześniej używaliśmy tego czujnika w pistolecie termicznym na podczerwień, który może wykryć temperaturę konkretnego obiektu (nie otoczenia) bez bezpośredniego kontaktu z obiektem. Tutaj ponownie używamy tego samego czujnika do obliczenia temperatury obiektu. MLX90614 jest jednym z takich czujników, który wykorzystuje energię IR do wykrywania temperatury obiektu. Aby dowiedzieć się więcej o obwodzie czujnika podczerwieni i podczerwieni, kliknij łącze.
Czujnik MLX90614 jest produkowany przez system Melexis Microelectronics Integrated, ma wbudowane dwa urządzenia, jeden to detektor podczerwieni (jednostka czujnikowa), a drugi to urządzenie kondycjonujące sygnał DSP (jednostka obliczeniowa). Działa w oparciu o prawo Stefana-Boltzmanna, które mówi, że wszystkie obiekty emitują energię IR, a intensywność tej energii będzie wprost proporcjonalna do temperatury tego obiektu. Jednostka czujnikowa w czujniku mierzy, ile energii IR jest emitowane przez docelowy obiekt, a jednostka obliczeniowa przekształca ją na wartość temperatury za pomocą 17-bitowego wbudowanego ADC i wysyła dane przez komunikację I2C protokół. Czujnik mierzy zarówno temperaturę obiektu, jak i temperaturę otoczenia, aby skalibrować wartość temperatury obiektu. Cechy czujnika MLX90614 podano poniżej, więcej informacji można znaleźć w arkuszu danych MLX90614.
Schemat obwodu
Schemat obwodu bezkontaktowego czujnika temperatury opartego na RFID wykorzystującego Arduino jest przedstawiony poniżej:
Jak pokazano na schemacie połączeń, połączenia są bardzo proste, ponieważ użyliśmy ich jako modułów, możemy je bezpośrednio zbudować na płytce stykowej. Dioda LED podłączona do pinu BUZ modułu czytnika EM18 świeci się wysoko, gdy ktoś skanuje tag. Moduł RFID przesyła dane do sterownika szeregowo; stąd pin nadajnika modułu RFID jest połączony z pinem odbiornika Arduino. Połączenia są dalej sklasyfikowane w poniższej tabeli:
Arduino Nano |
Moduł RFID EM18 |
5V |
Vcc |
GND |
GND |
5V |
SEL |
Rx |
Tx |
Arduino Nano |
MLX90614 |
5V |
Vcc |
GND |
GND |
A5 |
SCL |
A4 |
SDA |
Arduino Nano |
Czujnik ultradźwiękowy (HCSR-04) |
5V |
Vcc |
GND |
GND |
D5 |
Wymuskany |
D6 |
Echo |
Objaśnienie kodu
Musimy napisać kod Arduino, który może odczytać dane z czujnika ultradźwiękowego, MLX90614, modułu czytnika RFID EM18 i wysłać imię i nazwisko oraz temperaturę osoby do arkusza Excel. W przypadku tego kodu musisz pobrać biblioteki Wire i MLX90614. Po pobraniu bibliotek dodaj je do swojego Arduino IDE.
Pełny kod tego bezdotykowego monitorowania temperatury ciała znajduje się na końcu strony. Tutaj ten sam program zostanie wyjaśniony w małych fragmentach.
Jak zwykle, uruchom kod, dołączając wszystkie wymagane biblioteki. Tutaj biblioteka Wire jest używana do komunikacji za pomocą protokołu I2C, a biblioteka Adafruit_MLX90614.h jest używana do odczytu danych czujnika MLX90614.
#zawierać
Następnie definiujemy piny czujnika ultradźwiękowego, z którym wykonaliśmy połączenie
const int trigPin = 5; const int echoPin = 6;
Następnie zdefiniuj zmienne do przechowywania danych modułu RFID, czujnika ultradźwiękowego i czujnika MLX90614.
długi czas trwania; int distance; String RfidReading; float TempReading;
W funkcji void setup () inicjalizujemy monitor szeregowy do debugowania oraz czujnik temperatury MLX90614. Ustaw również piny Trig i Echo jako styki wyjściowe i wejściowe.
void setup () {Serial.begin (9600); // Inicjalizacja komunikacji szeregowej z monitorem szeregowym pinMode (trigPin, OUTPUT); pinMode (echoPin, INPUT); mlx.begin (); Initialize_streamer (); }
W funkcji void loop () oblicz odległość między osobą a czujnikiem, a jeśli odległość jest mniejsza lub równa 25 cm, wywołaj funkcję reader (), aby zeskanować tag.
void loop () {digitalWrite (trigPin, LOW); delayMicroseconds (2); digitalWrite (trigPin, HIGH); delayMicroseconds (10); digitalWrite (trigPin, LOW); duration = pulseIn (echoPin, HIGH); odległość = czas trwania * 0,0340 / 2; if (odległość <= 25) {czytelnik (); }
Funkcja void reader () służy do odczytu karty tag RFID. Po zbliżeniu karty do modułu czytnika moduł odczytuje dane szeregowe i zapisuje je w zmiennej wejściowej.
void reader () {if (Serial.available ()) {count = 0; while (Serial.available () && count <12) {input = Serial.read (); liczyć ++; opóźnienie (5);
W kolejnych wierszach porównaj zeskanowane dane karty z predefiniowanym identyfikatorem tagu. Jeśli identyfikator znacznika pasuje do zeskanowanej karty, odczytaj temperaturę osoby i wyślij temperaturę oraz imię i nazwisko osoby do arkusza programu Excel.
if (input == tag) flag = 1; else flaga = 0; liczyć ++; RfidReading = "Ashish"; }} if (flaga == 1) {temp_read (); Write_streamer (); }
W funkcji temp_read () odczytaj dane czujnika MLX90614 w stopniach Celsjusza i zapisz je w zmiennej „TempReading” .
void temp_read () {TempReading = mlx.readObjectTempC ();}
Gdy sprzęt i oprogramowanie są gotowe, nadszedł czas, aby załadować program do tablicy Arduino Nano. Gdy tylko program zostanie załadowany, czujnik ultradźwiękowy rozpocznie obliczanie odległości. Gdy obliczona odległość jest mniejsza niż 40 cm, odczytuje temperaturę i kartę.
Przechowywanie danych czujnika w arkuszu Excel z kontrolera Arduino
Teraz, aby wysłać dane do arkusza Excela, użyjemy PLX-DAQ. Jest to wtyczka programu Excel, która pomaga zapisywać wartości z Arduino bezpośrednio do arkusza Excel na laptopie lub komputerze. Użyj łącza, aby pobrać plik. Po pobraniu wypakuj plik i kliknij plik.exe, aby go zainstalować. Utworzy folder o nazwie PLS-DAQ na Twoim pulpicie.
Teraz otwórz plik „Arkusz kalkulacyjny PLX-DAQ” z folderu na pulpicie. Jeśli makra są wyłączone w programie Excel, zobaczysz blok bezpieczeństwa, jak pokazano na poniższym obrazku:
Kliknij Opcje-> Włącz zawartość -> Zakończ -> OK, aby włączyć makra. Następnie pojawi się następujący ekran:
Teraz wybierz prędkość transmisji na „9600” i port, do którego jest podłączone Twoje Arduino, a następnie kliknij Połącz, aby rozpocząć przesyłanie strumieniowe danych. Twoje wartości powinny zacząć się rejestrować, jak pokazano na poniższym obrazku.
W ten sposób można zbudować bezdotykowe urządzenie do monitorowania temperatury i przechowywać dane w arkuszu Excel.
Na końcu strony znajduje się działający film i kompletny kod.