Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Otrzymuj aktualizacje pogody bezpośrednio na urządzenie mobilne z własnej stacji pogodowej! Zadziwiająco szybka i łatwa budowa dzięki xChips.
Krok 1: Rzeczy użyte w tym projekcie
Komponenty sprzętowe
- XinaBox CW01 x 1
- XinaBox SW01 x 1
- XinaBox SL01 x 1
- XinaBox OD01 x 1
- XinaBox IP01 x 1
- XinaBox XC10 x 1
Aplikacje i usługi online
- IDE Arduino
- Blynk
Krok 2: Historia
Wstęp
Zbudowałem ten projekt przy użyciu XinaBox xChips i Arduino IDE. Jest to 5-minutowy projekt, który pozwala na odbieranie danych pogodowych na telefon za pośrednictwem aplikacji Blynk i na ekranie OLED OD01. Ten projekt jest tak przydatny, ponieważ możesz monitorować pogodę w dowolnym miejscu i otrzymywać aktualizacje bezpośrednio na telefon za pośrednictwem aplikacji. Wybrałem xChips, ponieważ są przyjazne dla użytkownika, eliminują również potrzebę lutowania i poważnego projektowania obwodów. Korzystając z Arduino IDE mogłem łatwo zaprogramować xChips.
Krok 3: Pobieranie bibliotek
- Przejdź do Github.xinabox
- Pobierz xCore ZIP
- Zainstaluj go w Arduino IDE, przechodząc do "Sketch", "Include Library", a następnie "Add. ZIP Library". Jak widać poniżej
Rysunek 1: Dodawanie bibliotek ZIP
- Pobierz xSW01 ZIP
- Dodaj bibliotekę w taki sam sposób, jak w przypadku xCore.
- Powtórz dla xSL01 i xOD01
- Musisz także zainstalować bibliotekę Blynk, aby móc korzystać z aplikacji. Znajdziesz go tutaj
- Zanim zaczniesz programować, musisz upewnić się, że używasz właściwej płyty. W tym projekcie korzystam z Generic ESP8266, który znajduje się w CW01 xChip. Bibliotekę tablic można pobrać tutaj.
Krok 4: Programowanie
Podłącz IP01, CW01, SW01, SL01 i OD01 za pomocą złączy xBUS. Upewnij się, że nazwy xChips są poprawnie zorientowane
Rysunek 2: Podłączone xChips
- Teraz włóż IP01 i podłączone xChips do dostępnego portu USB.
- Pobierz lub skopiuj i wklej kod z nagłówka „KOD” do swojego Arduino IDE. Wprowadź swój token uwierzytelniania, nazwę Wi-Fi i hasło we wskazanych miejscach.
- Alternatywnie możesz stworzyć własny kod, korzystając z odpowiednich zasad, aby osiągnąć ten sam cel
- Aby upewnić się, że nie ma błędów, skompiluj kod.
Krok 5: Konfiguracja Blynka
- Po zainstalowaniu aplikacji Blynk za darmo ze sklepu z aplikacjami nadszedł czas na konfigurację projektu.
- Przed kliknięciem przycisku „Zaloguj się” po wprowadzeniu adresu e-mail i hasła upewnij się, że „Ustawienia serwera” są ustawione na „BLYNK”.
Rysunek 3: Ustawienia serwera
- Zaloguj sie.
- Utwórz nowy projekt.
- Wybierz urządzenie "ESP8266"
Rysunek 4: Wybór urządzenia/płyty
- Przypisz nazwę projektu
- Otrzymuj powiadomienie „Auth Token” i e-mail zawierający „Auth Token”.
Rysunek 5: Powiadomienie o tokenie uwierzytelniania
Przejdź do „Skrzynki widżetów”
Rysunek 6: Pole widżetów
- Dodaj 4 „Przyciski” i 4 „Wyświetlacze wartości”
- Przypisz odpowiednie „Przyciski” i „Wyświetlacze wartości” ich Wirtualne Piny, jak określono w „KODZIE”. Użyłem liczb parzystych dla "Przycisków" i odpowiadających im liczb nieparzystych dla "Wyświetlaczy wartości"
- Tę konfigurację można dostosować do własnych potrzeb podczas dostosowywania kodu.
Rysunek 7: Pulpit nawigacyjny projektu (Zastrzeżenie: Zignoruj wartości, to jest zrzut ekranu po przetestowaniu stacji pogodowej. Twój powinien być podobny, tylko z pustymi twarzami, takimi jak V7)
Krok 6: Przesyłanie kodu
- Po udanej kompilacji w kroku 2 (nie znaleziono błędów) możesz wgrać kod na swoje xChips. Upewnij się, że przełączniki są skierowane odpowiednio w „B” i „DCE” przed przesłaniem.
- Po pomyślnym przesłaniu otwórz aplikację Blynk na swoim urządzeniu mobilnym.
- Otwórz swój projekt od kroku 3.
Cyfra 8
- Naciśnij play i naciśnij odpowiednie "Przyciski", aby dane mogły być wyświetlane w Twojej aplikacji i na ekranie OLED.
- Teraz Twoja stacja pogodowa Blynk jest gotowa do pracy!
Krok 7: Kod
Blynk_Weather_Station.ino Kod Arduino Arduino dla stacji pogodowej z Blynk i xCHIPS. Ten kod umożliwia bezprzewodowe sterowanie stacją pogodową z urządzenia mobilnego i odbieranie aktualizacji danych pogodowych bezpośrednio na urządzenie mobilne ze stacji pogodowej xCHIP
#include //include bibliotekę podstawową
#include //include biblioteka czujników pogody #include //include biblioteka czujników światła #include //include biblioteka ESP8266 dla WiFi #include //include biblioteka Blynk do użytku z ESP8266 #include //include OLED libraryxSW01 SW01; //xSL01 SL01; pływak TempC; pływak Wilgotność; pływak UVA; pływak UV_Index; // token uwierzytelniania, który został do Ciebie wysłany // skopiuj i wklej token w cudzysłów char auth = "Twój token uwierzytelniania"; // twoje dane uwierzytelniające Wi-Fi char WIFI_SSID = "Twoja nazwa Wi-Fi"; // wpisz swoją nazwę Wi-Fi między podwójnymi cudzysłowami char WIFI_PASS = "Twoje hasło Wi-Fi"; // wprowadź swoje hasło wifi między podwójnymi cudzysłowami timer BlynkTimer; // VirtualPin dla temperatury BLYNK_WRITE(V2){ int pinValue = param.asInt(); // przypisanie wartości przychodzącej z pinu V1 do zmiennej if(pinValue == 1) { Blynk.virtualWrite(V1, TempC); OD01.println("Temp_C:"); OD01.println(TempC); } else{ } } // VirtualPin dla wilgotności BLYNK_WRITE(V4){ int pin_value = param.asInt(); // przypisanie wartości przychodzącej z pinu V3 do zmiennej if(pin_value == 1) { Blynk.virtualWrite(V3, Humidity); OD01.println("Wilgotność:"); OD01.println(Wilgotność); } else{ } } // VirtualPin dla UVA BLYNK_WRITE(V6){ int pinvalue = param.asInt(); // przypisanie wartości przychodzącej z pinu V5 do zmiennej if(pinvalue == 1) { Blynk.virtualWrite(V5, UVA); OD01.println("UVA:"); OD01.println(UVA); } else{ } } // VirtualPin dla UV_Index BLYNK_WRITE(V8){ int pin_Value = param.asInt(); // przypisanie wartości przychodzącej z pinu V7 do zmiennej if(pin_Value == 1) { Blynk.virtualWrite(V7, UV_Index); OD01.println("Indeks_UV:"); OD01.println(Indeks_UV); } else{ } } void setup() { // Debuguj konsolę TempC = 0; Serial.początek(115200); Drut.początek(2, 14); SW01.początek(); OLED.początek(); SL01.początek(); Blynk.begin(auth, WIFI_SSID, WIFI_PASS); opóźnienie (2000); } void loop() { SW01.poll(); TempC = SW01.getTempC(); Wilgotność = SW01.getHumidity(); SL01.sonda(); UVA = SL01.getUVA(); Indeks_UV = SL01.getUV Indeks(); Blynk.run(); }