Satura rādītājs:

USB iekštelpu/āra termometrs (vai “Mana pirmā USB ierīce”): 4 soļi (ar attēliem)
USB iekštelpu/āra termometrs (vai “Mana pirmā USB ierīce”): 4 soļi (ar attēliem)

Video: USB iekštelpu/āra termometrs (vai “Mana pirmā USB ierīce”): 4 soļi (ar attēliem)

Video: USB iekštelpu/āra termometrs (vai “Mana pirmā USB ierīce”): 4 soļi (ar attēliem)
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #3 2024, Jūlijs
Anonim
USB iekštelpu/āra termometrs (vai “Mana pirmā USB ierīce”)
USB iekštelpu/āra termometrs (vai “Mana pirmā USB ierīce”)

Šis ir vienkāršs dizains, kas demonstrē PIC 18Fs USB perifēriju. Tiešsaistē ir daudz piemēru 18F4550 40 kontaktu mikroshēmām, šis dizains parāda mazāko 18F2550 28 kontaktu versiju. PCB tiek izmantotas virsmas montāžas detaļas, bet visas sastāvdaļas ir pieejamas caurumu versijās. Es izmantoju virsmas montāžas detaļas, jo tā dēļu izgatavošana notiek ātrāk, neizurbjot caurumus. Gala rezultāts ir neliela USB perifērija, kas mēra iekštelpu/āra temperatūru. Dati ir pieejami datoram, izmantojot virtuālo seriālo portu. Piemērā tiek izmantoti temperatūras sensori, bet var pievienot citus analogos sensorus. PS Skatiet manu reģistrētāja datu tiešo grafiku šeit: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = grafiks

1. darbība: dizaina pārskats

Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats

Nepieciešamās PIC sastāvdaļas

Šīs USB perifērijas pamatā ir 28 kontaktu PIC 18F2550. Šajā mikroshēmā ir viss nepieciešamais pilna ātruma USB interfeisam. 0.1uf kondensators starp barošanu un zemi atvieno PIC no barošanas avota. 20MHz kristāls (izmantots 48MHz iekšējā pulksteņa ģenerēšanai) un divi 27pf kondensatori. 10K rezistors no barošanas līdz MCLR tapai. Es pievienoju 1n4148 ekvivalentu diodu starp rezistoru un jaudu, lai programmēšanas laikā uz MCLR novietotie 13+volti nesabojātu citus shēmas plates komponentus. Ierīces programmēšanai un atkļūdošanai tiek izmantota ICSP galvene (5 tapas). Nepieciešamie USB sīkumi A USB “B” stila ligzda. Iekšējam USB sprieguma regulatoram ir nepieciešama 220nf-440nf kapacitāte. Es bez problēmām izmantoju divus 0.1uf kondensatorus (tos pašus, ko izmanto atvienošanai). Lai parādītu USB savienojuma statusu, tiek izmantota gaismas diode ar 330 omu strāvas ierobežošanas rezistoru. Nepieciešamās sensoru lietas Kā iekštelpu temperatūras sensoru es izmantoju mikroshēmu TC1047A temperatūras sensoru. Tas ir fiziski pielodēts pie tāfeles - tas liek tam darboties par dažiem grādiem karstāk nekā istabas temperatūra. Galvene tiek izmantota, lai savienotu āra temperatūras zondi (TC1047a versija TO-92). Papildu 0.1uf kondensators palīdz atdalīt garu vadu no pārējās plates. USB sprieguma līmeņi nav pietiekami konsekventi, lai precīzi izmērītu un aprēķinātu temperatūru no analogiem sensoriem. Tiek izmantota ārējā sprieguma atsauce (MCP1525, 2,5 volti). Sprieguma atskaitei nepieciešams kondensators, kura izeja ir no 1uf līdz 10uf. Bez šī kondensatora sprieguma atsauce nedarbosies.

2. darbība: programmaparatūra

Programmaparatūra izmanto CDC USB klasi, lai emulētu seriālo portu. Ierīce tiks parādīta kā virtuāls datora datora ports. Programmaparatūra ir sadalīta trīs sadaļās: 1. USB draiveris rūpējas par ierīces uzskaitīšanu datorā un COM porta atdarināšanu. 2. Servisa kārtība pārmaiņus nolasa temperatūras vērtības un pārvērš tās lasāmā formātā. Veicot abas šīs darbības vienlaikus, USB ierīce zaudēja savienojumu ar datoru (laika aizķeršanās). Peldošā komata vērtību pārvēršana virknē pakalpojuma ciklā pēc konvertēšanas novērsa savienojamības problēmu.* 3. Visbeidzot, galvenā rutīna saņem no datora nosūtītos baitus un atgriež pieprasītos mērījumus. Vairāki mērījumi ir atdalīti ar komatu, līnijas tiek pārtrauktas ar nulles rakstzīmi (hex 0x00) Demonstrācijas programmaparatūra pieņem šādas komandas: Hex vērtība Atgriež0x00 Iekštelpu temperatūra (iebūvētais sensors) 0x01 Āra temperatūra (ārējā galvene) 0x02 Abas temperatūras (komats Temperatūra tiek aprēķināta, pamatojoties uz 2,5 voltu atskaiti un mikroshēmas TC1047A nobīdi un slīpumu. Citiem temperatūras sensoriem var būt atšķirīgas īpašības. TC1047A datu lapa ir pieejama šeit: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Programmaparatūra ir rakstīta MPLAB ar demonstrācijas PIC C18 kompilatoru. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Faktisko USB programmaparatūru nodrošina mikroshēma. Sākotnējā vide ir pieejama šeit: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631Aparatūras labošanai: izvelciet visu avota direktoriju struktūru savā saknes direktorijā (c: / MCHPFSUSB). Pēc tam varat ielādēt darbvietas failu MPLAB. Lai novērstu savienojamības problēmu, USB pakalpojuma rutīna tiek izsaukta dažādos float2string rutīnas punktos. To vislabāk varētu novērst, apkalpojot USB perifēriju pārtraukumā. Es izmantoju uzlaušanu, lai programmaparatūra paliktu pēc iespējas tuvāk atsauces versijai.

3. darbība: ierīces pārbaude

Ierīces pārbaude
Ierīces pārbaude
Ierīces pārbaude
Ierīces pārbaude
Ierīces pārbaude
Ierīces pārbaude

Norādījumi attiecas uz logiem, bet ierīci var savienot ar visu, kam ir CDC seriālā porta emulācijas draiveri.

Programmējiet ierīci ar programmaparatūru. Visi konfigurācijas biti ir pareizi jāiestata programmaparatūrā. Pievienojiet ierīci USB portam. Windows to atklās un liks jums izvēlēties draiveri. DROŠI SPIEDIET “PĀRBAUDĪT PIELĀGOTU ŠAUTOTĀJU”. Pārejiet uz projekta arhīvā iekļautā.inf faila atrašanās vietu (driver-win2k_winxp). Windows izmantos šo failu, lai instalētu ierīci. *Piezīme par CDC draiveri - CDC seriālā porta emulācijas draiveris ir iekļauts sistēmā Windows.. Inf fails (ko nodrošina Microchip) vienkārši liek Windows savienot šos draiverus ar ierīci. Lai uzzinātu, kurš COM ports ierīcei tika piešķirts, rīkojieties šādi: Dodieties uz vadības paneli (start-> settings-> control panel) Veiciet dubultklikšķi uz “system” Noklikšķiniet uz cilnes “hardware”. Noklikšķiniet uz “ierīces pārvaldnieks” Noklikšķiniet uz “+” blakus portiem Tiek parādīts sistēmas COM portu saraksts. Esmu redzējis, ka ierīce tiek parādīta kā COM 3 un 4, taču tā atšķirsies atkarībā no sistēmas. Ja nav skaidrs, kurš ports ir jauns, izmēģiniet šo: Atvienojiet ierīci no USB porta. Viena no ostām pazudīs. Šis ir ierīces COM ports #. Pievienojiet ierīci atpakaļ, ports atkal parādīsies. Ierīces pārbaudei var izmantot mazo VB lietojumprogrammu (iekļauts avots). Ievadiet nosūtāmo komandu, noklikšķiniet uz Sākt. Atbilde tiks parādīta logā.

4. solis: ko vēl tas var darīt?

Ko vēl tas var darīt?
Ko vēl tas var darīt?

Šī demonstrācijas dēlis ir labs sākumpunkts nelielai mājas laika stacijai: pievienojiet mitruma sensoru HIH3160 vai nomainiet analogo temperatūras sensoru pret Sensiron HT74 augstas precizitātes sērijas temperatūras un mitruma sensoru. Pievienojiet Freescale MPX (a) 4115 spiediena sensoru mērīt barometrisko spiedienu. Vai vēlaties šos datus apkopot tīmeklī? Vai iekļaut to savā vietnē, apskatīt to Google Earth vai saņemt atjauninājumus savā RSS niedrā? Skatiet šo pamācību, lai integrētu šo ierīci ar syndicIT.com tīmekļa aizmugures sistēmu:

Ieteicams: