Sadržaj:
- Supplies
- Korak 1: Povežite digitalni pogon i segmentni pogon za višestruki prikaz
- Korak 2: Testirajte veze
- Korak 3: Kod za prikaz vremena i PWM za kontrolu svjetline
- Korak 4: Uspostavite internetsku vezu
- Korak 5: Dodajte BASIC kod za raščlanjivanje vremena s weba
- Korak 6: Dodajte svjetlosni senzor i kôd za zatamnjivanje zaslona
- Korak 7: Satirajte sat i počnite ga koristiti
Video: Digitalni sat sa mrežnim povezivanjem: 7 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:06
Pronašao sam digitalni sat od 10 USD na Amazonu. Sada ga prilagodite kako biste dobili vrijeme s interneta.
Supplies
ARM pečat koji se može programirati na BASIC -u dostupan je ovdje
Korak 1: Povežite digitalni pogon i segmentni pogon za višestruki prikaz
Počeo sam s jeftinim digitalnim satom velikog broja. Prvo sam uklonio postojeći sat čip. Zatim smo izvršili malo sondiranja i locirali 7 segmentne veze, koje se mogu pokretati direktno pomoću mikroprocesora. Zatim smo pronašli četveroznamenkaste upravljačke programe koji su bili tranzistori koje mikroprocesor može pokretati. A onda ih povezao.
Korak 2: Testirajte veze
Kao eksperiment napisao sam BASIC program za pogon svih linija, za provjeru ožičenja i mjerenje struje, koja je u ovom slučaju iznosila 82 mA
Slijedilo je pisanje koda za skeniranje linija.
'pogon prikaza web sata
IO (7) = 0 'PMOS pogon - jednog dana će biti PWM
za y = 45 do 48
IO (y) = 0 'cifreni pogon
za x = 8 do 15
IO (x) = 0 'segmentni pogon
čekaj (500)
IO (x) = 1
sljedeći x
DIR (y) = 0 'onemogući pogon na segmentu
next y
Korak 3: Kod za prikaz vremena i PWM za kontrolu svjetline
Zatim sam dodao PMOS tranzistor u napajanje svim upravljačkim programima za znamenke. S tim upravljanjem širine impulsa modulacija će kontrolirati svjetlinu ekrana. Evo BASIC koda za prikaz vremena.
'pogon za prikaz web sata #include "LPC11U3x.bas"
'globals
hr = 0 'definirajte sat
min = 0 'definirajte minutu
#define SEG_0 & HBB00
#define SEG_1 & H1800
#define SEG_2 & HD300
#define SEG_3 & HD900
#define SEG_4 & H7800
#define SEG_5 & HE900
#define SEG_6 & HEB00
#define SEG_7 & H9800
#define SEG_8 & HFB00
#define SEG_9 & HF800
#define SEG_o & H4B00
#define SEG_f & HE200
const DIGarray = {SEG_0, SEG_1, SEG_2, SEG_3, SEG_4, SEG_5, SEG_6, SEG_7, SEG_8, SEG_9, SEG_o, SEG_f}
#define DIG_WAIT 1
#define US_TIME
sub display_time (greška, sat, min)
dim hr10, hr1, min10, min1, i
#ifdef US_TIME
ako je hr> 12 tada je hr -= 12
ako je hr = 0, tada je hr = 12
#endif
hr10 = hr / 10
hr1 = hr MOD 10
min10 = min / 10
min1 = min MOD 10
za i = 0 do 1
ako hr10 tada
IO (45) = 0
endif
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarija (hr10)
GPIO_CLR (0) = DIGarray (hr10)
čekaj (DIG_WAIT)
ULAZ (45)
IO (46) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarija (hr1) + IF (i, & H400, 0)
GPIO_CLR (0) = DIGarray (hr1) + IF (i, & H400, 0)
čekaj (DIG_WAIT)
ULAZ (46)
IO (47) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarray (min10)
GPIO_CLR (0) = DIGarray (min10)
čekaj (DIG_WAIT)
ULAZ (47)
IO (48) = 0
GPIO_DIR (0) = (GPIO_DIR (0) & HFFFF00FF) + DIGarija (min1)
GPIO_CLR (0) = DIGarray (min1)
čekaj (DIG_WAIT)
ULAZ (48)
next i
ENDUB
'korisnik TIMER1 (32 bit) za prekidanje svake minute
PREKID SUB TIMER1IRQ
T1_IR = 1 'Obriši prekid
min += 1
ako je min> 59 tada
min = 0
hr += 1
ako je hr> 23 tada
hr = 0
endif
endif
ENDSUB
SUB ON_TIMER (max_cnt, ovo)
TIMER1_ISR = radi li ovo +1 funkcija VIC -a - potrebno je +1 za operaciju Thumb
SYSCON_SYSAHBCLKCTRL ILI = (1 << 10) 'omogući TIMER1
T1_PR = 0 'bez predskale - podešava vrijednost za preciznije vrijeme
VICIntEnable OR = (1 << TIMER1_IRQn) 'Omogući prekid
T1_MR0 = max_cnt-1 'podešen broj podudaranja ms
T1_MCR = 3 'Prekini i resetiraj uključeno
MR0 T1_IR = 1 'brisanje prekida
T1_TC = 0 'obriši brojač vremena
T1_TCR = 1 'TIMER1 Omogući
ENDSUB
#define MINUT_PCLK 2880000000 '60 sekundi na 48 MHz
glavni:
hr = 9
min = 33
ON_TIMER (MINUT_PCLK, ADDRESSOF TIMER1IRQ)
IO (7) = 0 'PWM jednog dana - potrebno je preći na P0_22 ??
dok je 1
display_time (0, sat, min)
petlja
Korak 4: Uspostavite internetsku vezu
Za WiFi vezu koristite ESP8266. Nakon što je neko vrijeme čekao po webu, najbolje rješenje bila je nodemcu verzija 0.9.6, a stariji esp8266_flasher je najbolje funkcionirao.
www.electrodragon.com/w/File:Nodemcu_20150704_firmware.zip
Zatim jednostavna PHP web stranica koja služi vremenu s interneta--
Coridium Time Server
<? php
$ timezone = htmlspecialchars ($ _ GET ["zone"]); if ($ vremenska zona == "")
$ timezone = 'America/Los_Angeles';
$ tz_object = novi DateTimeZone ($ vremenska zona);
$ datetime = new DateTime ();
$ datetime-> setTimezone ($ tz_object);
echo "vrijeme je-", $ datetime-> format ('H: i: s');
echo "";
echo "datum je-", $ datetime-> format ('m/d/Y');
?>
Ta web stranica je takva da možete zatražiti
coridium.us/time.php - i dobro ste dobili američku pacifičku vremensku zonu
ili
coridium.us/time.php?zone=Europe/London
Nema provjere grešaka i najvjerovatnije nikada neće biti
A Lua da to pročita …
wifi.sta.config ("your_SSID", "your_PASSWORD")> wifi.sta.connect ()…
sk = net.createConnection (net. TCP, 0)
sk: on ("primi", funkcija (sck, c) ispis (c) kraj)
sk: connect (80, "coridium.us")
sk: send ("GET /time.php HTTP/1.1 / r / nHost: coridium.us / r / nVeza: keep-living / r / nPrihvati: */ *\ r / n / r / n")
I vraćate vrijeme kao
vrijeme je-09: 38: 49datum je -2018-31-12
Korak 5: Dodajte BASIC kod za raščlanjivanje vremena s weba
Ovo je podskup cijelog BASIC programa, koji se može pogledati na linku u posljednjem koraku.
ako je strstr (build_gets, "vrijeme je-") = 0 tada
hr = build_gets (8) - "0"
if build_gets (9) = ":" tada
min = (build_gets (10) - "0")*10
min += build_gets (11) - "0"
else
hr = hr * 10 + build_gets (9) - "0"
min = (build_gets (11) - "0")*10
min += build_gets (12) - "0"
endif
endif
Korak 6: Dodajte svjetlosni senzor i kôd za zatamnjivanje zaslona
Dodan je foto tranzistor koji je osjetio ambijentalno svjetlo u prostoriji. Bez njega ekran je dovoljno svetao da probudi mrtve (mene) noću.
Očitava se analogni napon na izlazu foto tranzistora, a modulacija širine impulsa postavlja ukupnu svjetlinu ekrana.
Korak 7: Satirajte sat i počnite ga koristiti
Konačna verzija prikazuje vrijeme, a oko 3 sata ujutro izlazi na web kako bi pročitalo trenutno vrijeme. Ovo takođe upravlja dnevnim uštedama vremena.
Motivacija za ovaj projekt bili su nestanci struje koje doživljavamo ovdje u planinama i potreba za resetiranjem satova ili zamjenom baterija kako bi ih održali u životu.
Ovo je bio kratak pregled projekta.
Potpuni detalji ovog DIY sata povezanog s internetom.
Preporučuje se:
Kako napraviti analogni sat i digitalni sat sa LED trakom pomoću Arduina: 3 koraka
Kako napraviti analogni sat i digitalni sat sa LED trakom pomoću Arduina: Danas ćemo napraviti analogni sat & Digitalni sat sa Led Stripom i MAX7219 Dot modulom s Arduinom. Popravit će vrijeme s lokalnom vremenskom zonom. Analogni sat može koristiti dužu LED traku pa se može objesiti na zid kako bi postao umjetničko djelo
Radio tipke s elektroničkim povezivanjem (*poboljšane!*): 3 koraka
Radio dugme sa elektronskim povezivanjem (*poboljšano!*): Izraz "radio dugmad" dolazi iz dizajna starih auto radija, gdje bi bilo nekoliko tipki unaprijed podešenih na različite kanale i mehanički međusobno zaključanih tako da se samo jedan može pritisnuti u isto vrijeme. Htio sam pronaći wa
IoT RC automobil sa daljinskim upravljačem sa pametnom lampom ili mrežnim prolazom: 8 koraka (sa slikama)
IoT RC automobil sa daljinskim upravljačem za pametne lampe ili mrežnim prolazom: Za nepovezan projekat, pisao sam neki Arduino kôd za razgovor sa MiLight pametnim lampama i daljinskim upravljačima koje imam u svom domu. Nakon što sam uspio presresti naredbe sa bežičnih daljinskih upravljača, Odlučio sam napraviti mali RC automobil za testiranje
Noćni noćni sat za djecu sa povezivanjem: 12 koraka
Povezani noćni sat za djecu: Slijedeći ove upute, moći ćete izgraditi sat koji se aktivira pokretom i koji će prikazivati datum, vrijeme i relevantni događaj u danu. Pokazat će noćni način kada je vrijeme za spavanje, a kada se djeca probude, mogu se brzo sjetiti šta je
Spojite svoju web stranicu (Google Stvoritelj stranica) s Picasa mrežnim albumom: 5 koraka
Spojite svoju web stranicu (Google Stvoritelj stranica) sa Picasa on Line albumom: Zdravo, evo moje prve instrukcije, uživajte! nastavljajući s ovim uputama Postavljanje web stranice s Googleovim Stvoriteljem stranica