Как сканировать температуру MLX90614ESF после того, как MFRC522 сканирует RFID-метку?
//THIS IS THE RFID CODE
#include <SPI.h>
#include <MFRC522.h>
#define RST_PIN 9 // Configurable, see typical pin layout above
#define SS_PIN 10 // Configurable, see typical pin layout above
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance
//*****************************************************************************************//
void setup() {
Serial.begin(9600); // Initialize serial communications with the PC
SPI.begin(); // Init SPI bus
mfrc522.PCD_Init(); // Init MFRC522 card
//shows in serial that it is ready to read
}
//*****************************************************************************************//
void loop() {
// Prepare key - all keys are set to FFFFFFFFFFFFh at chip delivery from the factory.
MFRC522::MIFARE_Key key;
for (byte i = 0; i < 6; i++) key.keyByte[i] = 0xFF;
//some variables we need
byte block;
byte len;
MFRC522::StatusCode status;
//-------------------------------------------
// Reset the loop if no new card present on the sensor/reader. This saves the entire process when idle.
if ( ! mfrc522.PICC_IsNewCardPresent()) {
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial()) {
return;
}
byte buffer1[18];
block = 4;
len = 18;
//------------------------------------------- GET FIRST NAME
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 4, &key, &(mfrc522.uid)); //line 834 of MFRC522.cpp file
if (status != MFRC522::STATUS_OK) {
return;
}
status = mfrc522.MIFARE_Read(block, buffer1, &len);
if (status != MFRC522::STATUS_OK) {
return;
}
//PRINT FIRST NAME
for (uint8_t i = 0; i < 16; i++)
{
if (buffer1[i] != 32)
{
Serial.write(buffer1[i]);
}
}
Serial.print(" ");
//---------------------------------------- GET LAST NAME
byte buffer2[18];
block = 1;
status = mfrc522.PCD_Authenticate(MFRC522::PICC_CMD_MF_AUTH_KEY_A, 1, &key, &(mfrc522.uid)); //line 834
if (status != MFRC522::STATUS_OK) {
return;
}
status = mfrc522.MIFARE_Read(block, buffer2, &len);
if (status != MFRC522::STATUS_OK) {
return;
}
//PRINT LAST NAME
for (uint8_t i = 0; i < 16; i++) {
Serial.write(buffer2[i] );
}
//----------------------------------------
delay(1000); //change value if you want to read cards faster
mfrc522.PICC_HaltA();
mfrc522.PCD_StopCrypto1();
}
//*****************************************************************************************//
// AND THIS IS THE MLX90614 CODE
#include <Wire.h>
#include <Adafruit_MLX90614.h>
Adafruit_MLX90614 mlx = Adafruit_MLX90614();
void setup() {
Serial.begin(9600);
mlx.begin();
}
void loop() {
Serial.print("*\Body Temperature = "); Serial.print(mlx.readObjectTempC()); Serial.println("*C");
Serial.println();
delay(500);
}
@Ace Canacan, 👍1
Обсуждение1 ответ
Похоже, что вы просто объединили код из скетча RFID-метки и код из температурного скетча вместе. Это не сработает, так как обе программы содержат функции с одинаковыми именами. В частности, "setup()" и "loop()". Все, что вам нужно сделать, это интегрировать код для каждой функции "setup()" в одну функцию "setup ()". Аналогично, вам нужно сделать то же самое с функциями "loop ()".
Предполагая, что вы хотите сканировать температуру только после успешного восстановления данных с RFID-метки, поместите код контура скетча температуры непосредственно перед задержкой в коде RFID-метки.
Кто-то может на самом деле запрограммировать для вас решение @Ace Canacan. Я думаю, что ты должен сначала попытаться разобраться в себе. Кроме того, всегда лучше, если вы попробуете что-нибудь, прежде чем задавать свой вопрос здесь. Больше людей будут готовы помочь, если увидят, что вы пытались несколько раз, прежде чем задать вопрос., @st2000
- Автопарковка на arduino
- Использование прерываний с RC522
- Что выбрать между датчиками температуры и влажности: AM230x или DHT22?
- Проблема совместного использования MISO с несколькими RFID-считывателями RC522
- rfid_default_keys проверить с помощью RC522
- Данные DHT11 из Arduino UNO в Firebase через ESP8266
- MFRC522: прошивка неизвестна
- MFRC522 не сканируется карта
спасибо, я исправлю это сразу, @Ace Canacan
https://arduinoprosto.ru/q/78362/how-can-i-make-the-mlx90614-infrared-thermal-scanner-to-measure-temperature-af я опубликовал еще один с исправлениями., @Ace Canacan
извините за это, я уже отредактировал этот и удалил другой. это мой первый раз на этой платформе., @Ace Canacan
Пожалуйста, добавьте текст к вашему вопросу. Что происходит, почему это не то, что вы ожидали и что вы хотели бы. Хм, судя по всему, этот код, скорее всего, не компилируется, потому что у вас есть несколько функций, использующих одно и то же имя., @st2000
Спасибо, что не удваиваешь!, @st2000