INHOUDSOPGAWE:

USB binne/buite termometer (of 'my eerste USB -toestel'): 4 stappe (met foto's)
USB binne/buite termometer (of 'my eerste USB -toestel'): 4 stappe (met foto's)

Video: USB binne/buite termometer (of 'my eerste USB -toestel'): 4 stappe (met foto's)

Video: USB binne/buite termometer (of 'my eerste USB -toestel'): 4 stappe (met foto's)
Video: Bizarre iPhone-truc: ‘Deze ken je echt niet’ 2024, November
Anonim
USB binne/buite termometer (of 'my eerste USB -toestel')
USB binne/buite termometer (of 'my eerste USB -toestel')

Dit is 'n eenvoudige ontwerp wat die USB -randapparatuur op die PIC 18F's demonstreer. Daar is 'n klomp voorbeelde vir die 18F4550 40 -pen -skyfies aanlyn; hierdie ontwerp toon die kleiner 18F2550 -weergawe van 28 -pen. Ek gebruik onderdele op die oppervlak, want dit is vinniger om die bord te maak sonder om gate te boor. Die eindresultaat is 'n klein USB -randapparaat wat binne/buite -temperatuur meet. Data is beskikbaar vir die rekenaar via 'n virtuele seriële poort. Temperatuur sensors word in die voorbeeld gebruik, maar ander analoog sensors kan bygevoeg word. PS Sien 'n lewendige grafiek van die data van my logger hier: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = grafiek

Stap 1: Ontwerpoorsig

Ontwerpoorsig
Ontwerpoorsig
Ontwerpoorsig
Ontwerpoorsig
Ontwerpoorsig
Ontwerpoorsig

Vereiste PIC -komponente

Hierdie USB -randapparaat is gebaseer op die 28 -pins PIC 18F2550. Hierdie chip het alles wat nodig is vir 'n volspoed -USB -koppelvlak. 'N 0.1uf kondensator tussen krag en grond ontkoppel die PIC van die kragtoevoer. 'N 20 MHz kristal (wat gebruik word om 'n 48MHz interne klok op te wek) en twee 27pf kapasitors. 'N Weerstand van 10K van krag na die MCLR -pen. Ek het 'n 1n4148 ekwivalente diode bygevoeg tussen die weerstand en die krag, sodat die 13+volt wat op MCLR geplaas is tydens programmering nie ander komponente op die printplaat beskadig nie. 'N ICSP -kop (5 penne) word gebruik om die toestel te programmeer en te ontfout. Vereiste USB -items 'n USB -vroulike 'B' -aansluiting. Kapasiteit van 220nf-440nf word benodig vir die interne USB-spanningsreguleerder. Ek gebruik twee 0.1uf kapasitors (dieselfde as wat gebruik word vir ontkoppeling) sonder 'n probleem. 'N LED met 'n stroombeperkingsweerstand van 330ohm word gebruik om die USB -verbindingstatus te wys. Benodigde sensorgoed Ek het die mikroskyfie TC1047A temperatuursensor gebruik as die binnenshuise temperatuursensor. Dit word fisies aan die bord gesoldeer - dit laat 'n paar grade warmer as kamertemperatuur loop. 'N Kop word gebruik om 'n buitetemperatuur-sonde (TO-92 weergawe van TC1047a) aan te sluit. 'N Bykomende kapasiteit van 0.1uf help om 'n lang draad van die res van die bord los te maak. USB -spanningsvlakke is nie konsekwent genoeg om die temperatuur van die analoog sensors akkuraat te meet en te bereken nie. 'N Eksterne spanningsverwysing (MCP1525, 2.5volt) word gebruik. Die spanningsverwysing benodig 'n kapasitor op die uitset van 1uf tot 10uf. Sonder hierdie kondensator werk die spanningsverwysing nie.

Stap 2: Firmware

Die firmware gebruik die CDC USB -klas om 'n seriële poort na te boots. Die toestel verskyn as 'n virtuele com -poort op 'n rekenaar. Die firmware is in drie afdelings verdeel: 1. Die USB -bestuurder sorg vir die opsomming van die toestel op 'n rekenaar en die navolging van 'n COM -poort. 2. 'n Diensroetine lees afwisselend die temperatuurwaardes en verander dit in 'n leesbare formaat. Deur albei hierdie bewerkings gelyktydig uit te voer, het die USB -toestel die verbinding met die rekenaar losgemaak (tydsverbetering). Die omskakeling van die drywende puntwaardes na 'n string in die dienssiklus na die omskakeling het die verbindingsprobleem opgehelder.* 3. Laastens ontvang 'n hoofroetine grepe wat vanaf 'n rekenaar gestuur is en gee die verlangde metings terug. Meervoudige metings word deur 'n komma geskei, lyne word met 'n nul karakter beëindig (hex 0x00) Die demonstrasie-firmware aanvaar die volgende opdragte: Hexwaarde Returns0x00 Binnentemperatuur (boordsensor) 0x01 Buitentemperatuur (eksterne kop) 0x02 Beide temperature (komma) geskei) Die temperatuur word bereken op grond van die 2,5 volt -verwysing en die Microchip TC1047A -offset en helling. Ander temperatuursensors kan verskillende eienskappe hê. Die TC1047A -datablad is hier beskikbaar: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Die firmware is in MPLAB saam met die demonstrasie PIC C18 -samesteller geskryf. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=af010014&part=SW006011 Die werklike USB -firmware word deur Microchip verskaf. Die oorspronklike omgewing is hier beskikbaar: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631 Om die firmware te wysig: onttrek die volledige gidsstruktuur van die bron na u wortelgids (c: / MCHPFSUSB). U kan dan die werkspasie -lêer in MPLAB laai.*Die float to string -roetine is 'n hulpbron. Om die verbindingsprobleem die hoof te bied, word die USB -diensroetine op verskillende punte in die float2string -roetine gebel. Dit is die beste om dit reg te stel deur die USB -randapparaat op 'n onderbreking te bedien. Ek het die hack gebruik sodat die firmware so na as moontlik aan die verwysingsweergawe gebly het.

Stap 3: Toets die toestel

Toets die toestel
Toets die toestel
Toets die toestel
Toets die toestel
Toets die toestel
Toets die toestel

Die instruksies is vir vensters, maar die toestel kan verbind word met alles wat CDC -seriële poortemulasiebestuurders het.

Programmeer die toestel met die firmware. Alle konfigurasie -stukkies moet korrek in die firmware gestel word. Koppel die toestel aan 'n USB -poort. Windows sal dit opspoor en u vra om 'n bestuurder te kies. KLIEK OP ‘BLAAI VIR GEPASTE BESTUURDER’. Navigeer na die ligging van die.inf-lêer wat by die projekargief ingesluit is (driver-win2k_winxp). Windows sal hierdie lêer gebruik om die toestel te installeer. *'N Opmerking oor die CDC -bestuurder - die bestuurder van die emulasie van die CDC -seriële poort is by Windows ingesluit. Die.inf -lêer (verskaf deur Microchip) vertel Windows eenvoudig om hierdie bestuurders aan die toestel te koppel. Om uit te vind watter COM-poort die toestel toegewys is, doen die volgende: Gaan na die bedieningspaneel (begin-> instellings-> kontrolepaneel) Dubbelklik op 'stelsel' Klik op die 'hardeware'-oortjie. Klik op 'apparaatbestuurder' Klik op die '+' langs poorte 'n Lys met COM -poorte op die stelsel word gewys. Ek het gesien hoe die toestel verskyn as COM 3 en 4, maar dit sal wissel volgens stelsel. As dit nie duidelik is watter poort nuut is nie, probeer dit: Koppel die toestel uit die USB -poort. Een van die hawens sal verdwyn. Dit is die toestel se COM -poort #. Koppel die toestel weer aan, die poort verskyn weer. Die klein VB -toepassing (bron ingesluit) kan gebruik word om die toestel te toets. Voer die opdrag in wat gestuur moet word, klik op 'Start'. Die antwoord sal in die venster verskyn.

Stap 4: Wat anders kan dit doen?

Wat anders kan dit doen?
Wat anders kan dit doen?

Hierdie demonstrasiebord is 'n goeie beginpunt vir 'n klein weerstasie by die huis: Voeg 'n HIH3160 humiditeitsensor by, of vervang die analoge temperatuursensor met die Sensiron HT74 seriële temperatuur- en humiditeitsensor met hoë akkuraatheid. Voeg 'n Freescale MPX (a) 4115 druksensor by meet die barometriese druk. Wil u hierdie data na die web sindikeer? Sluit dit op u eie webwerf in, sien dit in Google Earth of kry u opdaterings in u RSS -riet? Lees hierdie instruksie oor die integrasie van hierdie toestel met die syndicIT.com web -backend:

Aanbeveel: