Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Primajte ažuriranja o vremenu direktno na svoj mobilni uređaj sa vlastite meteorološke stanice! Iznenađujuće brza i laka izrada sa xChips -om.
Korak 1: Stvari koje se koriste u ovom projektu
Hardverske komponente
- XinaBox CW01 x 1
- XinaBox SW01 x 1
- XinaBox SL01 x 1
- XinaBox OD01 x 1
- XinaBox IP01 x 1
- XinaBox XC10 x 1
Softverske aplikacije i mrežne usluge
- Arduino IDE
- Blynk
Korak 2: Priča
Uvod
Ovaj projekt sam izgradio koristeći XinaBox xChips i Arduino IDE. To je 5 -minutni projekt koji vam omogućuje primanje vremenskih podataka na telefon putem aplikacije Blynk i na OLED ekranu OD01. Ovaj je projekt toliko koristan jer možete pratiti vrijeme gdje god želite i primati ažuriranja direktno na telefonu putem aplikacije. Odlučio sam se za korištenje xChips -a jer su laki za korištenje, a također eliminiraju potrebu za lemljenjem i ozbiljnim dizajnom kola. Koristeći Arduino IDE, mogao sam lako programirati xChips.
Korak 3: Preuzimanje biblioteka
- Idite na Github.xinabox
- Preuzmite xCore ZIP
- Instalirajte ga u Arduino IDE tako što ćete otići na "Sketch", "Include Library", zatim "Add. ZIP Library". Kao što se vidi dole
Slika 1: Dodavanje ZIP biblioteka
- Preuzmite xSW01 ZIP
- Dodajte biblioteku na isti način kao i za xCore.
- Ponovite za xSL01 i xOD01
- Također morate instalirati Blynk biblioteku da biste mogli koristiti aplikaciju. Možete ga pronaći ovdje
- Prije programiranja morate provjeriti koristite li ispravnu ploču. U ovom projektu koristim generički ESP8266 koji se nalazi u CW01 xChip. Biblioteku ploča možete preuzeti ovdje.
Korak 4: Programiranje
Povežite IP01, CW01, SW01, SL01 i OD01 pomoću xBUS konektora. Uverite se da su imena xChips -a pravilno orijentisana
Slika 2: Povezani x čipovi
- Sada umetnite IP01 i povezane x čipove u raspoloživi USB priključak.
- Preuzmite ili kopirajte i zalijepite kôd iz naslova "CODE" u svoj Arduino IDE. Unesite svoj token za autorizaciju, WiFi ime i lozinku gdje je navedeno.
- Alternativno, možete stvoriti vlastiti kôd koristeći relevantne principe za postizanje istog cilja
- Kako biste bili sigurni da nema grešaka, sastavite kôd.
Korak 5: Blynk Setup
- Nakon što instalirate aplikaciju Blynk besplatno iz svoje trgovine aplikacija, vrijeme je za postavljanje projekta.
- Prije nego što kliknete na "Prijava" nakon što unesete svoju adresu e -pošte i lozinku, provjerite jesu li "Postavke servera" postavljene na "BLYNK".
Slika 3: Postavke servera
- Ulogovati se.
- Kreirajte novi projekat.
- Odaberite uređaj "ESP8266"
Slika 4: Odabir uređaja/ploče
- Dodijelite naziv projektu
- Primajte obavijest i oznaku "Auth Token" koja sadrži "Token Auth".
Slika 5: Obavijest o tokenu autorizacije
Idite na "Widget Box"
Slika 6: Okvir za widgete
- Dodajte 4 "dugmeta" i 4 "prikaza vrijednosti"
- Dodijelite odgovarajućim "gumbima" i "prikazima vrijednosti" njihove virtualne pinove kako je navedeno u "KOD". Koristio sam parne brojeve za "Buttons" i odgovarajuće neparne brojeve za "Value Displays"
- Ovo podešavanje se može prilagoditi vašim potrebama dok prilagođavate kôd.
Slika 7: Nadzorna ploča projekta (Odricanje od odgovornosti: Zanemarite vrijednosti koje je ovo snimak ekrana nakon što sam testirao meteorološku stanicu. Vaše bi trebale biti slične, samo s praznim licima poput V7)
Korak 6: Učitavanje koda
- Nakon uspješne kompilacije u koraku 2 (greške nisu pronađene) možete učitati kôd na svoj xChips. Prije postavljanja provjerite jesu li prekidači okrenuti prema "B" i "DCE".
- Nakon uspješnog otpremanja otvorite aplikaciju Blynk na svom mobilnom uređaju.
- Otvorite svoj projekat od koraka 3.
Slika 8
- Pritisnite play i pritisnite odgovarajuće tipke kako bi se podaci mogli prikazati u vašoj aplikaciji i na OLED ekranu.
- Sada je vaša vremenska stanica Blynk spremna za rad!
Korak 7: Kodirajte
Blynk_Weather_Station.ino Arduino Arduino kôd za meteorološku stanicu s Blynkom i xCHIPS -om. Ovaj kôd vam omogućuje bežično upravljanje vremenskom stanicom sa vašeg mobilnog uređaja i primanje ažuriranja vremenskih podataka direktno na vaš mobilni uređaj s vremenske stanice xCHIP
#include // uključi jezgru biblioteke
#include // uključuje biblioteku vremenskih senzora #include // uključuje biblioteku senzora svjetla #include // uključuje ESP8266 biblioteku za WiFi #include // uključuje Blynk biblioteku za upotrebu s ESP8266 #include // uključuje OLED bibliotekuxSW01 SW01; // xSL01 SL01; plovak TempC; plutajuća vlažnost; float UVA; float UV_Index; // token za provjeru autentičnosti koji vam je poslan // kopirajte i zalijepite token između dvostrukih navodnika char auth = "vaš auton token"; // vaši WiFi akreditivi char WIFI_SSID = "vaše WiFi ime"; // unesite svoje WiFi ime između dvostrukih navodnika char WIFI_PASS = "vaša WiFi lozinka"; // unesite svoju WiFi lozinku između dvostrukih navodnika BlynkTimer timer; // VirtualPin za temperaturu BLYNK_WRITE (V2) {int pinValue = param.asInt (); // dodjeljivanje dolazne vrijednosti sa pina V1 varijabli if (pinValue == 1) {Blynk.virtualWrite (V1, TempC); OD01.println ("Temp_C:"); OD01.println (TempC); } else {}} // VirtualPin za vlažnost BLYNK_WRITE (V4) {int pin_value = param.asInt (); // dodjeljivanje dolazne vrijednosti sa pina V3 varijabli if (pin_value == 1) {Blynk.virtualWrite (V3, Humidity); OD01.println ("Vlažnost:"); OD01.println (Vlažnost); } else {}} // VirtualPin za UVA BLYNK_WRITE (V6) {int pinvalue = param.asInt (); // dodjeljivanje dolazne vrijednosti sa pina V5 varijabli if (pinvalue == 1) {Blynk.virtualWrite (V5, UVA); OD01.println ("UVA:"); OD01.println (UVA); } else {}} // VirtualPin za UV_Index BLYNK_WRITE (V8) {int pin_Value = param.asInt (); // dodjeljivanje dolazne vrijednosti sa pina V7 varijabli if (pin_Value == 1) {Blynk.virtualWrite (V7, UV_Index); OD01.println ("UV_Index:"); OD01.println (UV_Index); } else {}} void setup () {// Konzola za otklanjanje grešaka TempC = 0; Serial.begin (115200); Wire.begin (2, 14); SW01.begin (); OLED.begin (); SL01.begin (); Blynk.begin (auth, WIFI_SSID, WIFI_PASS); kašnjenje (2000); } void loop () {SW01.poll (); TempC = SW01.getTempC (); Humidity = SW01.getHumidity (); SL01.poll (); UVA = SL01.getUVA (); UV_Index = SL01.getUV Indeks (); Blynk.run (); }