Obsah:
Video: Vnitřní/venkovní teploměr USB (nebo „Moje první zařízení USB“): 4 kroky (s obrázky)
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
Jedná se o jednoduchý design, který demonstruje periferní zařízení USB na PIC 18F. Existuje spousta příkladů 40pipových čipů 18F4550 online, tento design ukazuje menší 28pinovou verzi 18F2550. DPS používá součásti pro povrchovou montáž, ale všechny komponenty jsou k dispozici ve verzích s průchozími otvory. Používám díly pro povrchovou montáž, protože je rychlejší vyrobit desku bez vrtání otvorů. Konečným výsledkem je malá periferie USB, která měří vnitřní/venkovní teploty. Data jsou k počítači k dispozici prostřednictvím virtuálního sériového portu. V tomto příkladu jsou použita teplotní čidla, ale lze přidat i další analogová čidla. PS Podívejte se na živý graf dat z mého záznamníku zde: https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/? Format = graf
Krok 1: Přehled návrhu
Požadované komponenty PIC
Tato periferie USB je založena na 28kolíkovém PIC 18F2550. Tento čip má vše potřebné pro plné rychlost rozhraní USB. Kondenzátor 0,1 uF mezi napájením a zemí odpojuje PIC od napájecího zdroje. Krystal 20 MHz (používá se ke generování interních hodin 48 MHz) a dva kondenzátory 27 pf. Odpor 10K od napájení ke kolíku MCLR. Mezi odpor a napájení jsem přidal ekvivalentní diodu 1n4148, aby 13+voltů umístěných na MCLR během programování nepoškodilo ostatní součásti na desce s obvody. K programování a ladění zařízení slouží záhlaví ICSP (5 pinů). Požadované USB věci Zásuvka USB typu B ve stylu „B“. Pro interní regulátor napětí USB je vyžadována kapacita 220nf-440nf. Bez problému používám dva kondenzátory 0,1uf (stejné jako používané pro oddělení). K zobrazení stavu připojení USB se používá LED dioda s odporem omezujícím proud 330 ohmů. Požadované věci ze senzoru Použil jsem teplotní snímač mikročipu TC1047A jako snímač vnitřní teploty. Je fyzicky připájen k desce - to způsobí, že běží o několik stupňů tepleji než pokojová teplota. K připojení sondy venkovní teploty (TO-92 verze TC1047a) se používá konektor. Další kondenzátor 0,1 uff pomáhá odpojit dlouhý vodič vedený od zbytku desky. Úrovně napětí USB nejsou dostatečně konzistentní, aby přesně měřily a počítaly teplotu z analogových senzorů. Je použita externí referenční napětí (MCP1525, 2,5volt). Napěťová reference vyžaduje kondenzátor na výstupu 1uf až 10uf. Bez tohoto kondenzátoru nebude referenční napětí fungovat.
Krok 2: Firmware
Firmware používá k emulaci sériového portu třídu USB CDC. Zařízení se na počítači zobrazí jako virtuální komunikační port. Firmware je rozdělen do tří částí: 1. Ovladač USB se stará o výčet zařízení v počítači a emulaci portu COM. 2. Servisní rutina střídavě čte hodnoty teploty a převádí je do čitelného formátu. Provedení obou těchto operací najednou způsobilo, že zařízení USB ztratilo připojení k počítači (časová prodleva). Převedením hodnot s plovoucí desetinnou čárkou na řetězec v servisním cyklu po převodu se vyřešil problém s připojením.* 3. Nakonec hlavní rutina přijímá bajty odeslané z počítače a vrací požadovaná měření. Vícenásobné míry jsou odděleny čárkou, řádky jsou zakončeny znakem null (hex 0x00) Demonstrační firmware přijímá následující příkazy: Šestihranná hodnota Vrací0x00 Vnitřní teplota (palubní čidlo) 0x01 Venkovní teplota (externí záhlaví) 0x02 Obě teploty (čárka oddělené) Teplota se vypočítá na základě 2,5voltové reference a ofsetu a sklonu Microchip TC1047A. Jiné teplotní senzory mohou mít odlišné vlastnosti. Datový list TC1047A je k dispozici zde: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Firmware je napsán v MPLAB s ukázkovým kompilátorem PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011 Skutečný firmware USB poskytuje společnost Microchip. Původní prostředí je k dispozici zde: https://www.microchip.com/stellent/idcplg? IdcService = SS_GET_PAGE & nodeId = 1824 & appnote = en021631 Chcete -li upravit firmware: extrahujte celou adresářovou strukturu zdroje do kořenového adresáře (c: / MCHPFSUSB). Potom můžete načíst soubor pracovního prostoru do MPLAB.*Rutina float to string je prase zdrojů. Aby se problém s připojením obešel, je v různých bodech rutiny float2string volána servisní rutina USB. To by bylo nejlépe opravit servisem periferního zařízení USB při přerušení. Použil jsem hack, aby firmware zůstal co nejblíže referenční verzi.
Krok 3: Testování zařízení
Pokyny jsou pro Windows, ale zařízení lze připojit ke všemu, co má ovladače emulace sériového portu CDC.
Naprogramujte zařízení pomocí firmwaru. Ve firmwaru by měly být správně nastaveny všechny konfigurační bity. Připojte zařízení k portu USB. Systém Windows to detekuje a vyzve vás k výběru ovladače. NEJISTĚTE KLIKNUTÍM „PROCHÁZET PRO VLASTNÍ ŘIDIČE“. Přejděte do umístění souboru INF, který je součástí archivu projektu (driver-win2k_winxp). Systém Windows použije tento soubor k instalaci zařízení. *Poznámka k ovladači CDC - ovladač emulace sériového portu CDC je součástí systému Windows. Soubor INF (poskytovaný společností Microchip) jednoduše řekne systému Windows, aby připojil tyto ovladače k zařízení. Chcete-li zjistit, kterému portu COM bylo zařízení přiřazeno, postupujte takto: Přejděte na ovládací panel (start-> nastavení-> ovládací panel) Dvakrát klikněte na „systém“Klikněte na kartu „Hardware“. Klikněte na „správce zařízení“Klikněte na „+“vedle portů Zobrazí se seznam portů COM v systému. Viděl jsem, že se zařízení zobrazuje jako COM 3 a 4, ale bude se lišit podle systému. Pokud není zřejmé, který port je nový, zkuste toto: Odpojte zařízení z portu USB. Jeden z portů zmizí. Toto je COM port zařízení #. Připojte zařízení zpět, port se znovu objeví. K testování zařízení lze použít malou aplikaci VB (včetně zdroje). Zadejte příkaz k odeslání, klikněte na 'Start'. Odpověď se zobrazí v okně.
Krok 4: Co jiného může udělat?
Tato ukázková deska je dobrým výchozím bodem pro malou domácí meteorologickou stanici: Přidejte čidlo vlhkosti HIH3160 nebo vyměňte analogový snímač teploty za vysoce přesný sériový snímač teploty a vlhkosti Sensiron HT74. Přidejte snímač tlaku Freescale MPX (a) 4115 do změřit barometrický tlak. Chcete tato data syndikovat na web? Chcete jej zahrnout na svůj vlastní web, zobrazit jej v aplikaci Google Earth nebo získat aktualizace do svého RSS kanálu? Viz tento návod k integraci tohoto zařízení s webovým serverem syndicIT.com:
Doporučuje:
Automatizovaný zahradní systém postavený na Raspberry Pi pro venkovní nebo vnitřní použití - MudPi: 16 kroků (s obrázky)
Automatizovaný zahradní systém postavený na Raspberry Pi pro venkovní nebo vnitřní použití - MudPi: Máte rádi zahradničení, ale nemůžete si najít čas na jeho údržbu? Možná máte nějaké pokojové rostliny, které vypadají trochu žíznivě nebo hledají způsob, jak automatizovat vaši hydroponii? V tomto projektu tyto problémy vyřešíme a naučíme se základy
Moje zařízení IoT - první relé: 5 kroků
Moje zařízení IoT - první relé: V tomto pokynu budeme ovládat relé od Blynka. Zapínání a vypínání z aplikace.BEWARE !!!! Pokud hodláte připojit relé k elektrické síti, ujistěte se, že víte, co děláte !!! POZOR
Moje první zařízení IoT: 14 kroků
Moje první IoT zařízení: V tomto Instructable se naučíme, jak nainstalovat Arduino IDE pro Moje první IoT zařízení, abychom na něm mohli na konci spustit arduino kód a ovládat ho z mobilního telefonu
WiFi automatický podavač rostlin s rezervoárem - nastavení vnitřní/venkovní kultivace - vodní rostliny automaticky s dálkovým monitorováním: 21 kroků
WiFi automatický podavač rostlin s rezervoárem - vnitřní/venkovní nastavení kultivace - vodní rostliny automaticky s dálkovým monitorováním: V tomto tutoriálu předvedeme, jak nastavit vlastní vnitřní/venkovní systém podavače rostlin, který automaticky zalévá rostliny a lze jej dálkově monitorovat pomocí platformy Adosia
Vnitřní / venkovní motýlí anténa: 5 kroků
Vnitřní / venkovní motýlí anténa: Vždy jsem byl fascinován standardní motýlkovou anténou a zjistil jsem, že mají dobré vlastnosti. takže když jsem byl před nějakou dobou na RadioShacku a viděl jsem 2 z nich na stojanu za 5 $ za kus, nemohl jsem si pomoci a přidal jsem 2 do své sbírky, takže 3