Talaan ng mga Nilalaman:

Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox: 8 Hakbang
Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox: 8 Hakbang

Video: Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox: 8 Hakbang

Video: Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox: 8 Hakbang
Video: КОНЕЦ МУЧЕНИЯМ. Трава больше не проблема! 2024, Disyembre
Anonim
Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox
Pagpapakita ng Petsa, Oras at Temperatura Gamit ang XinaBox

Ang cool na display ng OLED na nagpapakita ng petsa, oras at temperatura sa Celsius at Fahrenheit gamit ang Xinabox xChips batay sa ESP8266.

Hakbang 1: Mga Bagay na Ginamit sa Project na Ito

Mga bahagi ng hardware

  • XinaBox IP01 x 1 xChip USB Programmer batay sa FT232R Mula sa FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core batay sa ESP8266 Wi-Fi Module
  • XinaBox SW01 x 1 xChip Temperatura, kahalumigmigan at atmospheric pressure sensor batay sa BME280 mula sa Bosch.
  • XinaBox OD01 x 1 xChip 128x64 Pixel OLED Display
  • XinaBox PU01 x 1 xChip USB (Type A) Power Supply
  • XinaBox XC10 x 1 xChip Bus Connectors
  • 5V USB Power Supply x 1

Mga software app at serbisyong online

Arduino IDE

Hakbang 2: Kwento

Panimula

Itinayo ko ang proyektong ito upang maipakita ang petsa, oras at temperatura ng UCT gamit ang XinaBox xChip na gumagamit ng I2C bus protocol. Ang oras ay nakuha mula sa isang google NTP server. Ang temperatura sa paligid ay sinusukat gamit ang SW01 xChip at ipinakita sa OD01 xChip OLED display sa Celsius at Fahrenheit. Ipinapakita ng imahe sa ibaba ang display na OLED.

Larawan
Larawan

Petsa ng pagpapakita ng OLED, oras at temperatura

Hakbang 3: Mag-download ng Mga kinakailangang File

Kakailanganin mo ang mga sumusunod na aklatan at software para sa proyektong ito.

  • Arduino IDE - Development Software kung saan ka mag-code
  • xSW01 - Temperatura ng library ng sensor
  • xCore - Core library para sa XinaBox xChips
  • xOD01 - OLED Display library.
  • Timezone - Library upang piliin ang iyong timezone
  • Oras - Upang magamit ang mga pagpapaandar sa oras
  • NTPClient - Pinapagana ka upang makakuha ng oras mula sa isang server
  • Kakailanganin mo ring i-download ang board ng ESP8266 at sundin ang mga tagubilin na kasama nito upang mai-install ang board

Kapag na-download ay mai-install mo ang IDE at ang mga aklatan. Ito ay medyo tuwid kung susundin mo ang mga tagubilin.

Hakbang 4: Magtipon

Ang iyong pangunahing xChip na magpatupad at magproseso ng programa ay ang CW01. Ito ay batay sa ESP8266 WiFi Module at gumagamit ng I2C bus protocol. Upang mai-program sa CW01, kakailanganin mo ng isang xChip sa programa. Pinapayagan kami ng IP01 na i-program ang CW01 sa pamamagitan ng USB port sa aming computer sa pamamagitan lamang ng pag-click nang magkasama sa dalawang xChip gamit ang mga konektor ng XC10 bus at ipasok ito sa USB port. Walang mga kable at walang kinakailangang paghihinang. Ang isang bagay na dapat pansinin ay ang oryentasyon ng mga pangalan ng pagkilala sa xChip. Dapat silang lahat ay oriented sa parehong direksyon. Dapat ay mayroon ka ng sumusunod na pag-set up.

Larawan
Larawan

Mag-click nang magkasama CW01 at IP01 at ipasok ito sa USB port sa iyong computer

Kung pamilyar ka sa xChip maaari mong ikonekta ang bawat xChip nang magkasama gamit ang mga konektor ng XC10 bus na nais mong gamitin para sa iyong proyekto at pagkatapos ay ipasok ito sa USB port. Gumagamit kami ng SW01 temperatura sensor at ang OD01 OLED display.

Larawan
Larawan

Maaari mong ikonekta ang lahat ng iyong mga chips nang magkasama at pagkatapos ay ipasok ito sa iyong USB port

Hakbang 5: Programa

Mag-download o kopyahin at i-paste ang code sa ibaba sa iyong Arduino IDE. Kung hindi ka gumagawa ng anumang mga pagbabago sa code ipasok lamang ang iyong mga detalye sa WiFi sa kani-kanilang mga patlang tulad ng ipinakita sa ibaba. Ipasok din ang isang maaasahang server ng oras ng NTP. Gumamit ako ng isang server ng oras ng Google para sa proyektong ito.

Larawan
Larawan

Mga detalye ng WiFi at NTP time server

Ngayon ay ipunin at i-upload. Tiyaking napili mo ang tamang COM port at board sa ilalim ng menu ng mga tool sa Arduino IDE. Kapag na-upload na, dapat ipakita ang oras, petsa at temperatura tulad ng nasa ibaba.

Larawan
Larawan

Pagkatapos ng pag-upload dapat mong makita ang sumusunod

Hakbang 6: Gawin itong Portable

Maaari mo na ngayong alisin ang yunit mula sa iyong USB port at paghiwalayin ang bawat xChip sa pamamagitan lamang ng paghila nito. Dahil kumpleto ang programa, hindi na kinakailangan ang IP01. Maaari mo na ngayong ikonekta ang iyong proyekto sa anumang paraan na nais mo hangga't ang mga pangalan ng pagkakakilanlan ay nakatuon sa parehong direksyon. Upang mapagana ang aming yunit gagamitin namin ang PU01. Pinapayagan kaming mapalakas ito mula sa isang normal na power bank o anumang 5V USB power supply. Ikinonekta ko ang minahan tulad ng ipinakita sa ibaba.

Larawan
Larawan

Huling pagtitipon. xChip ay maaaring konektado sa anumang paraan na nais mo.

Hakbang 7: Konklusyon

Ang proyektong ito ay tatagal ng 20 minuto upang makumpleto. Kung nais mo ang oras sa iyong lokasyon, isaalang-alang ang pagtingin sa halimbawa ng code sa Timezone library o gumawa ng ilang arithmetic sa oras ng UTC. Walang ginamit na mga wire at hindi kinakailangan ng paghihinang.

Hakbang 8: Code

Date_Time_Temp.ino Arduino Ipasok lamang ang iyong mga detalye sa WiFi sa kani-kanilang mga patlang at i-upload sa iyong board.

# isama // isama ang pangunahing silid-aklatan para sa XinaBox xCHIPS

# isama // isama ang OLED display library #include // isama ang temperatura sensor library #include // isama ang pagpapaandar ng ESP8266WiFi #include // isama ang mga library sa oras # isama #include #include #include #include xSW01 SW01; // tukuyin ang mga pag-aari ng NTP #define ntpOffset 60 * 60 // sa segundo #define ntpInterval 60 * 1000 // sa miliseconds // ipasok ang isang maaasahang server ng oras ng NTp sa pagitan ng mga dobleng quote // dito nagamit ko ang isang server ng google ntp time # tukuyin ang ntpAddress "time1.google.com" // i-set up ang NTP UDP client WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // variable ng temperatura float tempC; // celsius float tempF; // fahrenheit // your wifi detail const char * wifi_ssid = "XinaBox"; // your wifi ssid const char * wifi_pass = "RapidIoT"; // your wifi password // date and time variable String date; String clktime; // variable na naglalaman ng araw at buwan const char * araw = {"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"}; const char * months = {"Jan", "Peb", "Mar", "Apr", "May", "June", "July", "Aug", "Sep", "Okt", "Nob "," Dis "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // ipasimula ang temperatura sa zero timeClient.begin (); // simulan ang NTP UDP client // simulan ang serial komunikasi Serial.begin (115200); // simulan ang i2c na komunikasyon at itakda ang mga pin na Wire.begin (2, 14); // start sensor ng temperatura SW01.begin (); // start OLED display OLED.begin (); // clear OLED display OD01.clear (); // magtatag ng koneksyon sa wifi wifi_connect (); pagkaantala (1000); } void loop () {// run kung wifi koneksyon ay itinatag kung (WiFi.status () == WL_CONNected) {SW01.poll (); // basahin ang temperatura tempC = SW01.getTempC (); // store temp in celcius tempF = SW01.getTempF (); // store temp in fahrenheit date = ""; // clear date variable clktime = ""; // clear time variable // update the ntp client and get the unix utc timestamp timeClient.update (); unsigned mahabang epochTime = timeClient.getEpochTime (); // convert natanggap na time stamp sa time_t object time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", Last, Sun, Mar, 1, 0}; Timezone UTC (utcRule, utcRule); // format time variable variable + = araw [weekday (utc) - 1]; petsa + = ","; petsa + = buwan [buwan (utc) - 1]; petsa + = ""; petsa + = araw (utc); petsa + = ","; petsa + = taon (utc); // format the time to 12-hour format with AM / PM at walang segundo clktime + = hourFormat12 (utc); clktime + = ":"; kung (minuto (utc)

Inirerekumendang: