Innehållsförteckning:

Datum, tid och temperaturvisning med hjälp av XinaBox: 8 steg
Datum, tid och temperaturvisning med hjälp av XinaBox: 8 steg

Video: Datum, tid och temperaturvisning med hjälp av XinaBox: 8 steg

Video: Datum, tid och temperaturvisning med hjälp av XinaBox: 8 steg
Video: Fjärrvärme - Så ställer du in rätt temperatur på varmvattnet 2024, November
Anonim
Datum, tid och temperaturvisning med hjälp av XinaBox
Datum, tid och temperaturvisning med hjälp av XinaBox

Cool OLED -display som visar datum, tid och temperatur i Celsius och Fahrenheit med Xinabox xChips baserat på ESP8266.

Steg 1: Saker som används i detta projekt

Hårdvarukomponenter

  • XinaBox IP01 x 1 xChip USB -programmerare baserad på FT232R från FTDI Limited
  • XinaBox CW01 x 1 xChip Wi-Fi Core baserad på ESP8266 Wi-Fi-modul
  • XinaBox SW01 x 1 xChip Temperatur-, fukt- och atmosfärstryckssensor baserad på BME280 från Bosch.
  • XinaBox OD01 x 1 xChip 128x64 pixel OLED -skärm
  • XinaBox PU01 x 1 xChip USB (typ A) strömförsörjning
  • XinaBox XC10 x 1 xChip -busskontakter
  • 5V USB -strömförsörjning x 1

Programvaruappar och onlinetjänster

Arduino IDE

Steg 2: Berättelse

Introduktion

Jag byggde detta projekt för att visa datum, UCT -tid och temperatur med XinaBox xChips som använder I2C -bussprotokollet. Tiden hämtades från en google NTP -server. Omgivningstemperaturen mättes med SW01 xChip och visades på OD01 xChip OLED -displayen i Celsius och Fahrenheit. Bilden nedan visar OLED -displayen.

Bild
Bild

OLED visar datum, tid och temperatur

Steg 3: Ladda ner nödvändiga filer

Du kommer att behöva följande bibliotek och programvara för detta projekt.

  • Arduino IDE - Utvecklingsprogramvara där du kodar
  • xSW01 - Temperaturgivarbibliotek
  • xCore - Core -bibliotek för XinaBox xChips
  • xOD01 - OLED Display -bibliotek.
  • Tidszon - bibliotek för att välja din tidszon
  • Tid - För att använda tidsfunktioner
  • NTPClient - Gör att du kan få tid från en server
  • Du måste också ladda ner ESP8266 -kortet och följa instruktionerna som följer med det för att få kortet installerat

När du har laddat ner installerar du IDE och biblioteken. Det är ganska rakt fram om du följer instruktionerna.

Steg 4: Montera

Ditt främsta xChip som kommer att köra och bearbeta programmet är CW01. Den är baserad på ESP8266 WiFi -modulen och använder I2C -bussprotokollet. För att programmera till CW01 behöver du en programmering xChip. IP01 tillåter oss att programmera CW01 via USB -porten på vår dator genom att helt enkelt klicka ihop de två xChipsna med hjälp av XC10 -busskontakter och sätta in den i USB -porten. Ingen ledning och ingen lödning krävs. En sak att notera är orienteringen av xChip -identifieringsnamnen. De bör alla orienteras i samma riktning. Du bör nu ha följande inställningar.

Bild
Bild

Klicka ihop CW01 och IP01 och sätt in den i USB -porten på din dator

Om du är bekant med xChips kan du ansluta varje xChip tillsammans med XC10 -busskontakter som du vill använda för ditt projekt och sedan sätta in det i USB -porten. Vi kommer att använda SW01 temperatursensor och OD01 OLED -displayen.

Bild
Bild

Du kan ansluta alla dina chips tillsammans och sedan sätta in dem i din USB -port

Steg 5: Program

Ladda ner eller kopiera och klistra in koden nedan i din Arduino IDE. Om du inte gör några ändringar i koden anger du bara dina WiFi -detaljer i deras respektive fält enligt nedan. Ange också en pålitlig NTP -tidsserver. Jag har använt en Google -tidsserver för det här projektet.

Bild
Bild

WiFi -detaljer och NTP -tidsserver

Nu kompilera och ladda upp. Se till att du har valt rätt COM -port och kort under verktygsmenyn i Arduino IDE. När den har laddats upp ska tid, datum och temperatur visas enligt nedan.

Bild
Bild

Efter uppladdning bör du se följande

Steg 6: Gör det bärbart

Du kan nu ta bort enheten från din USB -port och separera varje xChip genom att helt enkelt dra isär den. Eftersom programmeringen är klar krävs inte längre IP01. Du kan nu ansluta ditt projekt på vilket sätt du vill så länge identifieringsnamnen alla är orienterade i samma riktning. För att driva vår enhet kommer vi att använda PU01. Detta gör att vi kan driva den från en vanlig powerbank eller någon 5V USB -strömförsörjning. Jag har anslutit min som visas nedan.

Bild
Bild

Slutmontering. xChips kan anslutas på vilket sätt du vill.

Steg 7: Slutsats

Detta projekt tar 20 minuter att slutföra. Om du vill ha tiden på din plats kan du överväga att titta på exempelkoden i tidszonsbiblioteket eller räkna lite med UTC -tiden. Inga trådar användes och ingen lödning krävdes.

Steg 8: Kod

Date_Time_Temp.ino Arduino Ange bara dina WiFi -detaljer i deras respektive fält och ladda upp till ditt kort.

#include // inkluderar kärnbibliotek för XinaBox xCHIPS

#inkludera // inkludera OLED -skärmbibliotek #inkludera // inkludera temperatursensorbiblioteket #inkludera // inkludera ESP8266WiFi -funktionalitet #inkludera // inkludera tidsbibliotek #inkludera #inkludera #inkludera #inkludera #inkludera xSW01 SW01; // definiera NTP -egenskaper #definiera ntpOffset 60 * 60 // i sekunder #define ntpInterval 60 * 1000 // i milisekunder // infoga en pålitlig ntp -tidsserver mellan de dubbla citattecken // här har jag använt en google ntp -tidsserver # definiera ntpAddress "time1.google.com" // konfigurera NTP UDP -klienten WiFiUDP ntpUDP; NTPClient timeClient (ntpUDP, ntpAddress, ntpOffset, ntpInterval); // temperaturvariabel float tempC; // celsius float tempF; // fahrenheit // dina wifi -detaljer const char* wifi_ssid = "XinaBox"; // din wifi ssid const char* wifi_pass = "RapidIoT"; // ditt wifi -lösenord // datum- och tidsvariabel Strängdatum; Strängtidstid; // variabler som innehåller dagar och månader const char * days = {"söndag", "måndag", "tisdag", "onsdag", "torsdag", "fredag", "lördag"}; const char * månader = {"Jan", "Feb", "Mar", "Apr", "Maj", "Juni", "Juli", "Aug", "Sep", "Okt", "Nov "," Dec "}; const char * ampm = {"AM", "PM"}; void setup () {tempC = tempF = 0; // initiera temperaturen till noll timeClient.begin (); // starta NTP UDP -klienten // starta seriell kommunikation Serial.begin (115200); // starta i2c -kommunikation och ställ in stift Wire.begin (2, 14); // start temperaturgivare SW01.begin (); // starta OLED -skärmen OLED.begin (); // rensa OLED -skärm OD01.clear (); // upprätta wifi -anslutning wifi_connect (); fördröjning (1000); } void loop () {// kör om wifi -anslutning upprättas om (WiFi.status () == WL_CONNECTED) {SW01.poll (); // läs temperatur tempC = SW01.getTempC (); // lagra temp i celcius tempF = SW01.getTempF (); // lagra temp i fahrenheit date = ""; // rensa datumvariabel clktime = ""; // rensa tidsvariabel // uppdatera ntp -klienten och få unix utc tidsstämpel timeClient.update (); osignerad lång epochTime = timeClient.getEpochTime (); // konvertera mottagen tidsstämpel till time_t objekt time_t utc; utc = epochTime; // utc time TimeChangeRule utcRule = {"UTC", sista, sön, mar, 1, 0}; Tidszon UTC (utcRule, utcRule); // formatera tidsvariabler datum += dagar [vardag (utc) - 1]; datum += ","; datum += månader [månad (utc) - 1]; datum += ""; datum += dag (utc); datum += ","; datum += år (utc); // formatera tiden till 12-timmarsformat med AM/PM och inga sekunder clktime += hourFormat12 (utc); clktime += ":"; om (minut (utc)

Rekommenderad: