Daftar Isi:

USB Indoor/Outdoor Thermometer (atau, 'Perangkat USB Pertama Saya'): 4 Langkah (dengan Gambar)
USB Indoor/Outdoor Thermometer (atau, 'Perangkat USB Pertama Saya'): 4 Langkah (dengan Gambar)

Video: USB Indoor/Outdoor Thermometer (atau, 'Perangkat USB Pertama Saya'): 4 Langkah (dengan Gambar)

Video: USB Indoor/Outdoor Thermometer (atau, 'Perangkat USB Pertama Saya'): 4 Langkah (dengan Gambar)
Video: Langkah2 yang dilakukan sebelum mengevakuasi korban yang tersengat listrik tegangan 220-400 Volt 2024, Juli
Anonim
Termometer USB Indoor/Outdoor (atau, 'Perangkat USB Pertama Saya')
Termometer USB Indoor/Outdoor (atau, 'Perangkat USB Pertama Saya')

Ini adalah desain sederhana yang menunjukkan periferal USB pada PIC 18Fs. Ada banyak contoh untuk chip 18F4550 40 pin online, desain ini menunjukkan versi 18F2550 28 pin yang lebih kecil. PCB menggunakan bagian pemasangan permukaan, tetapi semua komponen tersedia dalam versi lubang. Saya menggunakan bagian pemasangan permukaan karena lebih cepat membuat papan tanpa lubang bor. Hasil akhirnya adalah periferal USB kecil yang mengukur suhu dalam/luar ruangan. Data tersedia untuk PC melalui port serial virtual. Sensor suhu digunakan dalam contoh, tetapi sensor analog lainnya dapat ditambahkan. PSLihat grafik langsung data dari logger saya di sini:https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/?format= grafik

Langkah 1: Ikhtisar Desain

Ikhtisar Desain
Ikhtisar Desain
Ikhtisar Desain
Ikhtisar Desain
Ikhtisar Desain
Ikhtisar Desain

Komponen PIC yang diperlukan

Periferal USB ini didasarkan pada 28 pin PIC 18F2550. Chip ini memiliki semua yang dibutuhkan untuk antarmuka USB kecepatan penuh. Kapasitor 0.1uf antara daya dan ground memisahkan PIC dari catu daya. Kristal 20MHz (digunakan untuk menghasilkan clock internal 48MHz) dan dua kapasitor 27pf. Resistor 10K dari daya ke pin MCLR. Saya menambahkan dioda setara 1n4148 antara resistor dan daya sehingga 13+ volt yang ditempatkan pada MCLR selama pemrograman tidak merusak komponen lain di papan sirkuit. Header ICSP (5 pin) digunakan untuk memprogram dan men-debug perangkat. Barang USB yang diperlukan Soket gaya USB perempuan 'B'. 220nf-440nf kapasitansi diperlukan untuk regulator tegangan USB internal. Saya menggunakan dua kapasitor 0.1uf (sama seperti yang digunakan untuk decoupling) tanpa masalah. Sebuah LED dengan resistor pembatas arus 330ohm digunakan untuk menampilkan status koneksi USB. Hal-hal sensor yang diperlukan Saya menggunakan sensor suhu microchip TC1047A sebagai sensor suhu dalam ruangan. Secara fisik disolder ke papan - ini menyebabkannya bekerja beberapa derajat lebih panas dari suhu kamar. Header digunakan untuk menghubungkan probe suhu luar ruangan (versi TO-92 dari TC1047a). Kapasitor 0.1uf tambahan membantu memisahkan kabel panjang dari bagian papan lainnya. Level tegangan USB tidak cukup konsisten untuk mengukur dan menghitung suhu secara akurat dari sensor analog. Referensi tegangan eksternal (MCP1525, 2.5volt) digunakan. Referensi tegangan membutuhkan kapasitor pada output 1uf hingga 10uf. Tanpa kapasitor ini referensi tegangan tidak akan bekerja.

Langkah 2: Firmware

Firmware menggunakan kelas USB CDC untuk meniru port serial. Perangkat akan muncul sebagai port com virtual pada PC. Firmware dibagi menjadi tiga bagian:1. Driver USB menangani enumerasi perangkat pada PC dan meniru port COM. 2. Rutinitas layanan secara bergantian membaca nilai suhu dan mengubahnya ke format yang dapat dibaca. Melakukan kedua operasi ini sekaligus menyebabkan perangkat USB kehilangan koneksi ke PC (time hogging). Mengubah nilai floating point menjadi string dalam siklus layanan setelah konversi menyelesaikan masalah konektivitas.* 3. Terakhir, rutinitas utama menerima byte yang dikirim dari PC dan mengembalikan pengukuran yang diminta. Beberapa ukuran dipisahkan dengan koma, garis diakhiri dengan karakter nol (hex 0x00) Firmware demonstrasi menerima perintah berikut: Nilai Hex Mengembalikan0x00 Suhu dalam ruangan (sensor terpasang)0x01 Suhu luar ruangan (header eksternal)0x02 Kedua suhu (koma terpisah)Suhu dihitung berdasarkan referensi 2,5 volt dan offset dan kemiringan Microchip TC1047A. Sensor suhu lainnya mungkin memiliki karakteristik yang berbeda. Lembar data TC1047A tersedia di sini: https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdf Firmware ditulis dalam MPLAB dengan kompiler demonstrasi PIC C18. https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011Firmware USB sebenarnya disediakan oleh Microchip. Lingkungan asli tersedia di sini:https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en021631Untuk mengedit firmware: ekstrak seluruh struktur direktori sumber ke direktori root Anda (c:\MCHPFSUSB). Anda kemudian dapat memuat file ruang kerja di MPLAB.*Rutin float to string adalah resource hog. Untuk mengatasi masalah konektivitas, rutin layanan USB dipanggil di berbagai titik dalam rutinitas float2string. Ini akan diperbaiki dengan memperbaiki periferal USB pada interupsi. Saya menggunakan peretasan sehingga firmware tetap sedekat mungkin dengan versi referensi.

Langkah 3: Menguji Perangkat

Menguji Perangkat
Menguji Perangkat
Menguji Perangkat
Menguji Perangkat
Menguji Perangkat
Menguji Perangkat

Instruksi untuk windows, tetapi perangkat dapat dihubungkan ke apa pun yang memiliki driver emulasi port serial CDC.

Program perangkat dengan firmware. Semua bit konfigurasi harus diatur dengan benar di firmware. Colokkan perangkat ke port USB. Windows akan mendeteksinya dan meminta Anda untuk memilih driver. PASTIKAN KLIK 'BROWSE FOR CUSTOM DRIVER'. Arahkan ke lokasi file.inf yang disertakan dengan arsip proyek (driver-win2k_winxp). Windows akan menggunakan file ini untuk menginstal perangkat. *Catatan tentang driver CDC – driver emulasi port serial CDC disertakan dengan Windows. File.inf (disediakan oleh Microchip) hanya memberitahu Windows untuk menghubungkan driver ini ke perangkat. Untuk mengetahui port COM apa yang ditetapkan perangkat, lakukan hal berikut: Buka panel kontrol (mulai->pengaturan->panel kontrol) Klik dua kali 'sistem' Klik tab 'perangkat keras'. Klik 'pengelola perangkat' Klik '+' di sebelah port Daftar port COM pada sistem ditampilkan. Saya telah melihat perangkat muncul sebagai COM 3 dan 4, tetapi akan bervariasi menurut sistem. Jika tidak jelas port mana yang baru, coba ini: Cabut perangkat dari port USB. Salah satu port akan hilang. Ini adalah port COM perangkat #. Pasang kembali perangkat, port akan muncul kembali. Aplikasi VB kecil (termasuk sumber) dapat digunakan untuk menguji perangkat. Masukkan perintah untuk mengirim, klik 'Mulai'. Balasan akan ditampilkan di jendela.

Langkah 4: Apa Lagi Yang Bisa Dilakukan?

Apa Lagi Yang Bisa Dilakukan?
Apa Lagi Yang Bisa Dilakukan?

Papan demonstrasi ini adalah titik awal yang baik untuk stasiun cuaca rumah kecil: Tambahkan sensor kelembaban HIH3160, atau ganti sensor suhu analog dengan sensor suhu dan kelembaban seri Sensiron HT74 akurasi tinggi. Tambahkan sensor tekanan Freescale MPX(a)4115 ke mengukur tekanan barometrik. Ingin mensindikasikan data ini ke web? Sertakan di situs web Anda sendiri, lihat di google earth, atau dapatkan pembaruan di RSS reed Anda? Lihat instruksi ini tentang mengintegrasikan perangkat ini dengan backend web syndicIT.com:

Direkomendasikan: