'아두이노 우노 와이파이 rev2'을 사용해서 파이어 베이스와 연동하는 작업이 필요한데 계속 connection refused가 떠서 포기해야 하나 싶었는데 드디어 해결했다🤩
먼저 연동에 필요한 코드는 다음과 같고, 이건 기본 예제 코드이다
아래 코드에서 상단에 #define 4개 제외 다른 부분은 수정 안 했음 <- 이거는 워낙 예제가 많아서 다른 글 참고하면 됨
#include <Arduino_LSM6DS3.h>
#include <Firebase_Arduino_WiFiNINA.h>
#define FIREBASE_HOST ""
#define FIREBASE_AUTH ""
#define WIFI_SSID ""
#define WIFI_PASSWORD ""
FirebaseData firebaseData;
String path = "/IMU_LSM6DS3";
String jsonStr;
void setup()
{
Serial.begin(9600);
delay(1000);
Serial.println();
Serial.print("Initialize IMU sensor...");
if (!IMU.begin()) {
Serial.println(" failed!");
while (1);
}
Serial.println(" done");
Serial.print("Accelerometer sample rate = ");
Serial.print(IMU.accelerationSampleRate());
Serial.println(" Hz");
Serial.print("Connecting to WiFi...");
int status = WL_IDLE_STATUS;
while (status != WL_CONNECTED) {
status = WiFi.begin(WIFI_SSID, WIFI_PASSWORD);
Serial.print(".");
delay(300);
}
Serial.print(" IP: ");
Serial.println(WiFi.localIP());
Serial.println();
Firebase.begin(FIREBASE_HOST, FIREBASE_AUTH, WIFI_SSID, WIFI_PASSWORD);
Firebase.reconnectWiFi(true);
}
void loop()
{
float x, y, z;
// Read IMU acceleration data
if (IMU.accelerationAvailable()) {
IMU.readAcceleration(x, y, z);
// Send data to Firebase with specific path
if (Firebase.setFloat(firebaseData, path + "/1-setFloat/X", x)) {
Serial.println(firebaseData.dataPath() + " = " + x);
}
if (Firebase.setFloat(firebaseData, path + "/1-setFloat/Y", y)) {
Serial.println(firebaseData.dataPath() + " = " + y);
}
if (Firebase.setFloat(firebaseData, path + "/1-setFloat/Z", z)) {
Serial.println(firebaseData.dataPath() + " = " + z);
}
// Push data using pushJSON
jsonStr = "{\"X\":" + String(x,6) + ",\"Y\":" + String(y,6) + ",\"Z\":" + String(z,6) + "}";
if (Firebase.pushJSON(firebaseData, path + "/2-pushJSON", jsonStr)) {
Serial.println(firebaseData.dataPath() + " = " + firebaseData.pushName());
}
else {
Serial.println("Error: " + firebaseData.errorReason());
}
Serial.println();
delay(2000);
}
else {
Serial.println(IMU.accelerationAvailable());
}
}
https://www.youtube.com/watch?v=xNOk2o4iKZM
참고할 만한 유튜브 강의가 위에 올린 영상이 유일한데 영상을 보면 알겠지만 필요한 보드 설치하고 기본 예제 코드 사용하고 파이어베이스 생성하는 게 끝이다
* 코드 실행할 때 필요한 라이브러리는 구글에 치면 깃허브 바로 나오는데 거기서 .zip 파일 다운로드 하고 아두이노 IDE에 포함시켜주면 된다
🔎 해결 방안
펌웨어 업데이트
https://docs.arduino.cc/tutorials/generic/firmware-updater
공식 홈페이지 참고해서 펌웨어 업데이트하니까 바로 해결되었다
1. 파일 - 예제 - WIFININA - Tools - FirmwareUpdater 코드를 열고 업로드한다.
* 홈페이지에는 wifi 101 여기로 들어가던데 나는 WIFININA - Tools에 있었다
2. 툴 - WiFi101/WiFiNINA Firmware Updater 클릭
3. 해당하는 장치 선택하고 'Update Firmware' 클릭
4. 업데이트에 성공하면 끝! 원래 코드 실행하면 정상적으로 동작한다