Բովանդակություն:

Ամսաթիվ, ժամ և ջերմաստիճանի ցուցադրում XinaBox- ի միջոցով. 8 քայլ
Ամսաթիվ, ժամ և ջերմաստիճանի ցուցադրում XinaBox- ի միջոցով. 8 քայլ

Video: Ամսաթիվ, ժամ և ջերմաստիճանի ցուցադրում XinaBox- ի միջոցով. 8 քայլ

Video: Ամսաթիվ, ժամ և ջերմաստիճանի ցուցադրում XinaBox- ի միջոցով. 8 քայլ
Video: Աշխարհն այսօր 28.04.2023 2024, Նոյեմբեր
Anonim
Ամսաթիվ, ժամ և ջերմաստիճանի ցուցադրում XinaBox- ի միջոցով
Ամսաթիվ, ժամ և ջերմաստիճանի ցուցադրում XinaBox- ի միջոցով

Թույն OLED էկրան, որը ցույց է տալիս ամսաթիվը, ժամը և ջերմաստիճանը elsելսիուսում և Ֆարենհեյթում ՝ օգտագործելով Xinabox xChips- ը ՝ ESP8266- ի հիման վրա:

Քայլ 1: Այս նախագծում օգտագործվող բաները

Սարքավորման բաղադրիչներ

  • XinaBox IP01 x 1 xChip USB ծրագրավորող ՝ հիմնված FT232R From FTDI Limited- ի վրա
  • XinaBox CW01 x 1 xChip Wi-Fi Core ՝ հիմնված ESP8266 Wi-Fi մոդուլի վրա
  • XinaBox SW01 x 1 xChip peratերմաստիճանի, խոնավության և մթնոլորտային ճնշման տվիչ ՝ հիմնված Bosch- ի BME280- ի վրա:
  • XinaBox OD01 x 1 xChip 128x64 պիքսելանոց OLED էկրան
  • XinaBox PU01 x 1 xChip USB (տիպ A) սնուցման աղբյուր
  • XinaBox XC10 x 1 xChip ավտոբուսի միակցիչներ
  • 5V USB սնուցման աղբյուր x 1

Softwareրագրային ապահովման ծրագրեր և առցանց ծառայություններ

Arduino IDE

Քայլ 2: Պատմություն

Ներածություն

Ես կառուցեցի այս նախագիծը ՝ ամսաթիվը, UCT- ն ու ջերմաստիճանը ցուցադրելու համար ՝ օգտագործելով XinaBox xChips- ը, որն օգտագործում է I2C ավտոբուսի արձանագրությունը: Timeամանակը վերցվեց google NTP սերվերից: Շրջակա միջավայրի ջերմաստիճանը չափվել է SW01 xChip- ի միջոցով և ցուցադրվել է Celsius և Fahrenheit OD01 xChip OLED էկրանին: Ստորև բերված պատկերը ցույց է տալիս OLED էկրանը:

Պատկեր
Պատկեր

OLED- ով ցուցադրվում է ամսաթիվը, ժամը և ջերմաստիճանը

Քայլ 3: Ներբեռնեք անհրաժեշտ ֆայլերը

Այս նախագծի համար ձեզ կպահանջվեն հետևյալ գրադարաններն ու ծրագրակազմը:

  • Arduino IDE - Softwareարգացման ծրագիր, որում կոդավորելու եք
  • xSW01 - Temերմաստիճանի տվիչների գրադարան
  • xCore - հիմնական գրադարան XinaBox xChips- ի համար
  • xOD01 - OLED ցուցադրման գրադարան:
  • Zամային գոտի - Գրադարան `ձեր ժամային գոտին ընտրելու համար
  • Timeամանակ - timeամանակի գործառույթներից օգտվելու համար
  • NTPClient - Ձեզ հնարավորություն է տալիս ժամանակ ստանալ սերվերից
  • Տախտակը տեղադրելու համար անհրաժեշտ է նաև ներբեռնել ESP8266 տախտակը և հետևել դրան ուղեկցող հրահանգներին:

Ներբեռնելուց հետո դուք կտեղադրեք IDE- ն և գրադարանները: Դա բավականին ուղիղ է, եթե հետևեք հրահանգներին:

Քայլ 4: Հավաքեք

Ձեր հիմնական xChip- ը, որը կիրականացնի և կմշակի ծրագիրը, CW01- ն է: Այն հիմնված է ESP8266 WiFi մոդուլի վրա և օգտագործում է I2C ավտոբուսի արձանագրությունը: CW01- ին ծրագրավորելու համար ձեզ հարկավոր է ծրագրավորման xChip: IP01- ը թույլ է տալիս ծրագրավորել CW01- ը մեր համակարգչի USB պորտի միջոցով `պարզապես երկու XChip- երը միասին սեղմելով XC10 ավտոբուսային միակցիչների միջոցով և տեղադրելով այն USB պորտի մեջ: Էլեկտրամոնտաժ և զոդում չի պահանջվում: Մի բան, որին պետք է ուշադրություն դարձնել, xChip նույնականացման անունների կողմնորոշումն է: Նրանք բոլորը պետք է կողմնորոշվեն նույն ուղղությամբ: Այժմ դուք պետք է ունենաք հետևյալ կարգավորումը.

Պատկեր
Պատկեր

Սեղմեք միասին CW01 և IP01 և տեղադրեք այն ձեր համակարգչի USB պորտի մեջ

Եթե ծանոթ եք xChips- ին, կարող եք յուրաքանչյուր xChip- ը միացնել իրար ՝ օգտագործելով XC10 ավտոբուսային միակցիչներ, որոնք ցանկանում եք օգտագործել ձեր նախագծի համար, այնուհետև այն տեղադրել USB պորտի մեջ: Մենք կօգտագործենք SW01 ջերմաստիճանի տվիչ և OD01 OLED էկրան:

Պատկեր
Պատկեր

Դուք կարող եք միացնել ձեր բոլոր չիպերը միասին, այնուհետև տեղադրել այն ձեր USB պորտի մեջ

Քայլ 5: րագիր

Ներբեռնեք կամ պատճենեք և տեղադրեք ներքևի ծածկագիրը ձեր Arduino IDE- ում: Եթե ծածկագրում որևէ փոփոխություն չեք կատարում, պարզապես մուտքագրեք ձեր WiFi- ի տվյալները համապատասխան դաշտերում, ինչպես ցույց է տրված ստորև: Մուտքագրեք նաև հուսալի NTP ժամանակային սերվեր: Այս նախագծի համար ես օգտագործել եմ Google ժամանակի սերվեր:

Պատկեր
Պատկեր

WiFi մանրամասներ և NTP ժամանակի սերվեր

Այժմ կազմեք և վերբեռնեք: Համոզվեք, որ Arduino IDE- ի գործիքների ընտրացանկում ընտրել եք COM- ի ճիշտ նավահանգիստը և տախտակը: Վերբեռնելուց հետո ժամանակը, ամսաթիվը և ջերմաստիճանը պետք է ցուցադրվեն ստորև:

Պատկեր
Պատկեր

Բեռնելուց հետո դուք պետք է տեսնեք հետևյալը

Քայլ 6: Դարձրեք շարժական

Այժմ կարող եք միավորը հեռացնել ձեր USB պորտից և առանձնացնել յուրաքանչյուր xChip- ը ՝ պարզապես այն առանձնացնելով: Քանի որ ծրագրավորումն ավարտված է, IP01- ն այլևս չի պահանջվում: Այժմ դուք կարող եք միացնել ձեր նախագիծը ցանկացած ձևով, քանի դեռ նույնականացման անունները բոլորն ուղղված են նույն ուղղությամբ: Մեր միավորը սնուցելու համար մենք կօգտագործենք PU01- ը: Սա թույլ է տալիս մեզ սնուցել այն սովորական սնուցման բանկից կամ ցանկացած 5V USB սնուցման աղբյուրից: Ես միացրել եմ իմը, ինչպես ցույց է տրված ստորև:

Պատկեր
Պատկեր

Վերջնական հավաքում: xChips- ը կարող է կապված լինել ձեր ցանկացած ցանկությամբ:

Քայլ 7: Եզրակացություն

Այս նախագծի իրականացման համար կպահանջվի 20 րոպե: Եթե ցանկանում եք ժամանակը ձեր գտնվելու վայրում, դիտեք Timezone գրադարանի օրինակելի կոդը կամ որոշ թվաբանություն կատարեք UTC ժամանակի հետ: Ոչ մի լար չօգտագործվեց և զոդման կարիք չկար:

Քայլ 8: Կոդ

Date_Time_Temp.ino Arduino Պարզապես մուտքագրեք ձեր WiFi տվյալները համապատասխան դաշտերում և վերբեռնեք ձեր տախտակին:

#ներառել // ներառել XinaBox xCHIPS- ի հիմնական գրադարանը

#ներառել // ներառել OLED ցուցադրման գրադարան #ներառել // ներառել ջերմաստիճանի տվիչների գրադարան #ներառել // ներառել ESP8266WiFi ֆունկցիոնալությունը #ներառել // ներառել ժամանակի գրադարաններ #ներառել #ներառել #ներառել #ներառել #ներառել xSW01 SW01; // սահմանել NTP հատկությունները #սահմանել ntpOffset 60 * 60 // վայրկյանների ընթացքում #սահմանել ntpInterval 60 * 1000 // միլիվայրկյաններում // տեղադրել կրկնակի մեջբերումների միջև հուսալի ntp ժամանակի սերվեր // այստեղ ես օգտագործել եմ Google ntp ժամանակի սերվեր # սահմանել ntpAddress "time1.google.com" // ստեղծել NTP UDP հաճախորդ WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // ջերմաստիճանի փոփոխական float tempC; // celsius float tempF; // fahrenheit // ձեր wifi մանրամասները const char* wifi_ssid = "XinaBox"; // ձեր wifi ssid const char* wifi_pass = "RapidIoT"; // ձեր wifi գաղտնաբառը // ամսաթիվ և ժամ փոփոխական Լարային ամսաթիվ; Լարային ժամեր; // օր և ամիս պարունակող փոփոխականներ char char * days = {"կիրակի", "երկուշաբթի", "երեքշաբթի", "չորեքշաբթի", "հինգշաբթի", "ուրբաթ", "շաբաթ"}; const char * ամիս = {«Յան», «Փետր», «Մար», «Ապրիլ», «Մայիս», «Հունիս», «Հուլիս», «Օգոստոս», «Սեպ», «Հոկտեմբեր», «Նոյեմբեր "," Dec "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // սկզբնական ջերմաստիճանը հասցնել զրոյի timeClient.begin (); // սկսել NTP UDP հաճախորդը // սկսել սերիական հաղորդակցություն Serial.begin (115200); // սկսել i2c կապը և տեղադրել կապերը Wire.begin (2, 14); // սկսել ջերմաստիճանի տվիչ SW01.begin (); // սկսել OLED էկրան OLED.begin (); // մաքրել OLED էկրանը OD01.clear (); // հաստատել wifi կապ wifi_connect (); ուշացում (1000); } void loop () {// գործարկել, եթե wifi կապը հաստատվի, եթե (WiFi.status () == WL_CONNECTED) {SW01.poll (); // կարդալ ջերմաստիճանը tempC = SW01.getTempC (); // պահել ջերմաստիճանը celcius tempF = SW01.getTempF (); // պահել ջերմաստիճանը Ֆարենհայտ ամսաթվով = ""; // մաքրել ամսաթվի փոփոխական clktime = ""; // մաքրել ժամանակի փոփոխականը // թարմացնել ntp հաճախորդը և ստանալ unix utc timestamp timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // ստացված ժամանակային կնիքը փոխակերպել time_t օբյեկտի time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Վերջին, կիրակի, մարտ, 1, 0}; Zամային գոտի UTC (utcRule, utcRule); // ֆորմատավորել ժամանակային փոփոխականների ամսաթիվը += օրերը [շաբաթվա օր (utc) - 1]; ամսաթիվ += ","; ամսաթիվ += ամիսներ [ամիս (utc) - 1]; ամսաթիվ += ""; ամսաթիվ += օր (utc); ամսաթիվ += ","; ամսաթիվ += տարի (utc); // ձևակերպեք ժամանակը 12-ժամյա ձևաչափով AM/PM- ով և առանց վայրկյանների clktime += hourFormat12 (utc); clktime += ":"; եթե (րոպե (utc)

Խորհուրդ ենք տալիս: