Სარჩევი:

თარიღი, დრო და ტემპერატურა ჩვენება XinaBox– ის გამოყენებით: 8 ნაბიჯი
თარიღი, დრო და ტემპერატურა ჩვენება XinaBox– ის გამოყენებით: 8 ნაბიჯი

ვიდეო: თარიღი, დრო და ტემპერატურა ჩვენება XinaBox– ის გამოყენებით: 8 ნაბიჯი

ვიდეო: თარიღი, დრო და ტემპერატურა ჩვენება XinaBox– ის გამოყენებით: 8 ნაბიჯი
ვიდეო: FORD C MAX (როგორ დავაყენოთ ეკრანზე წყლის ტემპერატურის მაჩვენებლი) 2024, ივლისი
Anonim
თარიღი, დრო და ტემპერატურა ჩვენება XinaBox– ის გამოყენებით
თარიღი, დრო და ტემპერატურა ჩვენება XinaBox– ის გამოყენებით

მაგარი OLED ჩვენება, რომელიც აჩვენებს თარიღს, დროს და ტემპერატურას ცელსიუსსა და ფარენჰეიტში, 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 ტემპერატურა, ტენიანობა და ატმოსფერული წნევის სენსორი 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

პროგრამული უზრუნველყოფის პროგრამები და ონლაინ სერვისები

Arduino IDE

ნაბიჯი 2: ისტორია

შესავალი

მე შევქმენი ეს პროექტი თარიღის, დროისა და ტემპერატურის ჩვენების მიზნით XinaBox xChips– ის გამოყენებით, რომელიც იყენებს I2C ავტობუსის პროტოკოლს. დრო ამოღებულია google NTP სერვერიდან. გარემოს ტემპერატურა იზომება SW01 xChip გამოყენებით და ნაჩვენებია OD01 xChip OLED ეკრანზე ცელსიუსსა და ფარენჰეიტში. ქვემოთ მოყვანილი სურათი გვიჩვენებს OLED ეკრანს.

გამოსახულება
გამოსახულება

OLED ჩვენება თარიღი, დრო და ტემპერატურა

ნაბიჯი 3: ჩამოტვირთეთ საჭირო ფაილები

ამ პროექტისათვის დაგჭირდებათ შემდეგი ბიბლიოთეკები და პროგრამული უზრუნველყოფა.

  • Arduino IDE - განვითარების პროგრამული უზრუნველყოფა, რომელშიც თქვენ შეიყვანთ კოდირებას
  • xSW01 - ტემპერატურის სენსორების ბიბლიოთეკა
  • xCore - ძირითადი ბიბლიოთეკა XinaBox xChips– ისთვის
  • xOD01 - OLED ჩვენების ბიბლიოთეკა.
  • დროის ზონა - ბიბლიოთეკა თქვენი დროის ზონის ასარჩევად
  • დრო - დროის ფუნქციების გამოყენება
  • 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 დროის სერვერი

ახლა შეადგინეთ და ატვირთეთ. დარწმუნდით, რომ თქვენ შეარჩიეთ სწორი COM პორტი და დაფა ინსტრუმენტების მენიუში Arduino IDE– ში. ატვირთვის შემდეგ, დრო, თარიღი და ტემპერატურა უნდა იყოს ნაჩვენები ქვემოთ.

გამოსახულება
გამოსახულება

ატვირთვის შემდეგ თქვენ უნდა ნახოთ შემდეგი

ნაბიჯი 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; NTP კლიენტის დრო კლიენტი (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // ტემპერატურის ცვლადი float tempC; // ცელსიუსი float tempF; // ფარენჰაიტი // თქვენი wifi დეტალები const char* wifi_ssid = "XinaBox"; // თქვენი wifi ssid const char* wifi_pass = "RapidIoT"; // თქვენი wifi პაროლი // თარიღი და დრო ცვლადი სიმებიანი თარიღი; სიმებიანი დრო; // ცვლადები, რომლებიც შეიცავს დღეებსა და თვეებს const char * days = {"კვირა", "ორშაბათი", "სამშაბათი", "ოთხშაბათი", "ხუთშაბათი", "პარასკევი", "შაბათი"}; const char * თვე = {"იან", "თებერვალი", "მარ", "აპრ", "მაისი", "ივნისი", "ივლისი", "აგვისტო", "სექტემბერი", "ოქტომბერი", "ნოემბერი "," დეკემბერი "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // ტემპერატურის ინიციალიზაცია ნულამდე timeClient.begin (); // NTP UDP კლიენტის დაწყება // სერიული კომუნიკაციის დაწყება Serial.begin (115200); // დაიწყეთ i2c კომუნიკაცია და დააყენეთ ქინძისთავები Wire.begin (2, 14); // ტემპერატურის სენსორის დაწყება SW01. დაიწყოს (); // OLED ჩვენების დაწყება OLED.begin (); // გაასუფთავე OLED დისპლეი OD01. Clear (); // დაამყაროს wifi კავშირი wifi_connect (); დაგვიანება (1000); } void loop () {// გაუშვით თუ wifi კავშირი დამყარდა if (WiFi.status () == WL_CONNECTED) {SW01.poll (); // ტემპერატურის წაკითხვა tempC = SW01.getTempC (); // შეინახეთ ტემპერატურა ცელსიუსში tempF = SW01.getTempF (); // შეინახეთ ტემპერატურა ფარენჰეიტში თარიღი = ""; // თარიღის ცვლადი ცვლადი clktime = ""; // წმინდა დროის ცვლადი // განაახლეთ ntp კლიენტი და მიიღეთ unix utc timestamp timeClient.update (); unsigned long epochTime = timeClient.getEpochTime (); // მიღებული დროის ბეჭდის გადაკეთება time_t ობიექტში time_t utc; utc = ეპოქის დრო; // utc დრო TimeChangeRule utcRule = {"UTC", ბოლო, მზე, მარ, 1, 0}; დროის სარტყელი UTC (utcRule, utcRule); // დროის ცვლადების ფორმატი თარიღი += დღეები [კვირის დღე (utc) - 1]; თარიღი += ","; თარიღი += თვეები [თვე (utc) - 1]; თარიღი += ""; თარიღი += დღე (utc); თარიღი += ","; თარიღი += წელი (utc); // დროის ფორმატირება 12-საათიან ფორმატში AM/PM და წამების გარეშე clktime += hourFormat12 (utc); clktime += ":"; თუ (წუთი (utc)

გირჩევთ: