สารบัญ:
- ขั้นตอนที่ 1: ภาพรวมการออกแบบ
- ขั้นตอนที่ 2: เฟิร์มแวร์
- ขั้นตอนที่ 3: ทดสอบอุปกรณ์
- ขั้นตอนที่ 4: มันทำอะไรได้อีก?
วีดีโอ: เครื่องวัดอุณหภูมิในร่ม/กลางแจ้ง USB (หรือ 'อุปกรณ์ USB เครื่องแรกของฉัน'): 4 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:08
นี่คือการออกแบบที่เรียบง่ายซึ่งแสดงให้เห็นอุปกรณ์ต่อพ่วง USB บน PIC 18F มีตัวอย่างมากมายสำหรับชิป 18F4550 40 พินออนไลน์ การออกแบบนี้แสดงให้เห็นถึงรุ่น 18F2550 28 พินที่เล็กกว่า PCB ใช้ชิ้นส่วนยึดพื้นผิว แต่ส่วนประกอบทั้งหมดมีอยู่ในเวอร์ชันรูทะลุ ฉันใช้ชิ้นส่วนยึดพื้นผิวเพราะมันเร็วกว่าในการทำบอร์ดโดยไม่ต้องเจาะรู ผลลัพธ์ที่ได้คืออุปกรณ์ต่อพ่วง USB ขนาดเล็กที่วัดอุณหภูมิในร่ม/กลางแจ้ง ข้อมูลสามารถใช้ได้กับพีซีผ่านพอร์ตอนุกรมเสมือน ในตัวอย่างมีการใช้เซ็นเซอร์อุณหภูมิ แต่สามารถเพิ่มเซ็นเซอร์อะนาล็อกอื่นๆ ได้ PSดูกราฟข้อมูลสดจากตัวบันทึกของฉันที่นี่:https://www.syndicit.com/stream/ian/nieuwemarkt/indoor_temperature/?format= กราฟ
ขั้นตอนที่ 1: ภาพรวมการออกแบบ
ส่วนประกอบ PIC ที่จำเป็น
อุปกรณ์ต่อพ่วง USB นี้ใช้ PIC 18F2550 28 พิน ชิปนี้มีทุกอย่างที่จำเป็นสำหรับอินเทอร์เฟซ USB ความเร็วสูง ตัวเก็บประจุ 0.1uf ระหว่างพลังงานและกราวด์แยก PIC ออกจากแหล่งจ่ายไฟ คริสตัล 20MHz (ใช้สร้างนาฬิกาภายใน 48MHz) และตัวเก็บประจุ 27pf สองตัว ตัวต้านทาน 10K จากกำลังไฟไปยังพิน MCLR ฉันเพิ่มไดโอดเทียบเท่า 1n4148 ระหว่างตัวต้านทานและกำลังเพื่อให้ 13+ โวลต์ที่วางบน MCLR ระหว่างการเขียนโปรแกรมไม่ทำลายส่วนประกอบอื่น ๆ บนแผงวงจร ส่วนหัว ICSP (5 พิน) ใช้สำหรับตั้งโปรแกรมและดีบักอุปกรณ์ อุปกรณ์ USB ที่จำเป็น ช่องเสียบ USB แบบหญิง 'B' ต้องใช้ความจุ 220nf-440nf สำหรับตัวควบคุมแรงดันไฟฟ้า USB ภายใน ฉันใช้ตัวเก็บประจุ 0.1uf สองตัว (เหมือนกับที่ใช้สำหรับการแยกส่วน) โดยไม่มีปัญหา LED ที่มีตัวต้านทานจำกัดกระแสไฟ 330ohm ใช้เพื่อแสดงสถานะการเชื่อมต่อ USB ฉันใช้เซ็นเซอร์อุณหภูมิไมโครชิป TC1047A เป็นเซ็นเซอร์อุณหภูมิในร่ม มันถูกบัดกรีเข้ากับบอร์ด - ทำให้ร้อนกว่าอุณหภูมิห้องสองสามองศา หัวต่อใช้สำหรับเชื่อมต่อหัววัดอุณหภูมิภายนอก (รุ่น TO-92 ของ TC1047a) ตัวเก็บประจุเพิ่มเติม 0.1uf ช่วยแยกสายไฟยาวออกจากส่วนที่เหลือของบอร์ด ระดับแรงดันไฟฟ้า USB ไม่สอดคล้องกันเพียงพอที่จะวัดและคำนวณอุณหภูมิจากเซ็นเซอร์อะนาล็อกได้อย่างแม่นยำ ใช้แรงดันอ้างอิงภายนอก (MCP1525, 2.5volt) การอ้างอิงแรงดันไฟฟ้าต้องใช้ตัวเก็บประจุที่เอาต์พุต 1uf ถึง 10uf หากไม่มีตัวเก็บประจุนี้ การอ้างอิงแรงดันไฟฟ้าจะไม่ทำงาน
ขั้นตอนที่ 2: เฟิร์มแวร์
เฟิร์มแวร์ใช้คลาส CDC USB เพื่อจำลองพอร์ตอนุกรม อุปกรณ์จะแสดงเป็นพอร์ตคอมเสมือนบนพีซี เฟิร์มแวร์แบ่งออกเป็นสามส่วน: ไดรเวอร์ USB จะทำหน้าที่ระบุอุปกรณ์บนพีซีและจำลองพอร์ต COM 2. กิจวัตรการบริการจะสลับอ่านค่าอุณหภูมิและแปลงเป็นรูปแบบที่อ่านได้ การดำเนินการทั้งสองอย่างพร้อมกันทำให้อุปกรณ์ USB สูญเสียการเชื่อมต่อกับพีซี (หมดเวลา) การแปลงค่าทศนิยมให้เป็นสตริงในวงจรบริการหลังการแปลงช่วยแก้ปัญหาการเชื่อมต่อได้* 3. สุดท้าย รูทีนหลักจะได้รับไบต์ที่ส่งจากพีซีและส่งคืนการวัดที่ร้องขอ การวัดหลายรายการถูกคั่นด้วยเครื่องหมายจุลภาค บรรทัดสิ้นสุดด้วยอักขระ null (เลขฐานสิบหก 0x00) เฟิร์มแวร์สาธิตยอมรับคำสั่งต่อไปนี้:ค่าฐานสิบหก ส่งกลับ0x00 อุณหภูมิภายในอาคาร (เซ็นเซอร์ออนบอร์ด)0x01 อุณหภูมิภายนอก (ส่วนหัวภายนอก)0x02 อุณหภูมิทั้งสอง (จุลภาค แยกจากกัน)อุณหภูมิคำนวณจากค่าอ้างอิง 2.5 โวลต์และค่าออฟเซ็ตและความชันของ Microchip TC1047A เซ็นเซอร์อุณหภูมิอื่นๆ อาจมีลักษณะที่แตกต่างกัน แผ่นข้อมูล TC1047A มีให้ที่นี่:https://ww1.microchip.com/downloads/en/DeviceDoc/21498c.pdfเฟิร์มแวร์เขียนด้วย MPLAB พร้อมคอมไพเลอร์ PIC C18 สาธิต https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010014&part=SW006011ไมโครชิปมีเฟิร์มแวร์ USB จริงมาให้ สภาพแวดล้อมดั้งเดิมมีอยู่ที่นี่:https://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1824&appnote=en021631ในการแก้ไขเฟิร์มแวร์: แยกโครงสร้างไดเร็กทอรีทั้งหมดของซอร์สไปยังไดเร็กทอรีรากของคุณ (c:\MCHPFSUSB). จากนั้นคุณสามารถโหลดไฟล์เวิร์กสเปซใน MPLAB *รูทีน float to string เป็นทรัพยากรหมู เพื่อแก้ไขปัญหาการเชื่อมต่อ รูทีนบริการ USB จะถูกเรียกที่จุดต่างๆ ในรูทีน float2string สิ่งนี้จะแก้ไขได้ดีที่สุดโดยการให้บริการอุปกรณ์ต่อพ่วง USB เมื่ออินเตอร์รัปต์ ฉันใช้แฮ็คเพื่อให้เฟิร์มแวร์ใกล้เคียงกับเวอร์ชันอ้างอิงมากที่สุด
ขั้นตอนที่ 3: ทดสอบอุปกรณ์
คำแนะนำมีไว้สำหรับ windows แต่อุปกรณ์สามารถเชื่อมต่อกับอะไรก็ได้ที่มีไดรเวอร์การจำลองพอร์ตอนุกรม CDC
ตั้งโปรแกรมอุปกรณ์ด้วยเฟิร์มแวร์ บิตการกำหนดค่าทั้งหมดควรตั้งค่าอย่างถูกต้องในเฟิร์มแวร์ เสียบอุปกรณ์เข้ากับพอร์ต USB Windows จะตรวจพบและแจ้งให้คุณเลือกไดรเวอร์ อย่าลืมคลิก 'เรียกดูสำหรับไดรเวอร์ที่กำหนดเอง' นำทางไปยังตำแหน่งของไฟล์.inf ที่มาพร้อมกับไฟล์เก็บถาวรของโครงการ (driver-win2k_winxp) Windows จะใช้ไฟล์นี้เพื่อติดตั้งอุปกรณ์ *หมายเหตุเกี่ยวกับไดรเวอร์ CDC – ไดรเวอร์การจำลองพอร์ตอนุกรม CDC รวมอยู่ใน Windows ไฟล์.inf (จัดทำโดย Microchip) เพียงบอกให้ Windows เชื่อมต่อไดรเวอร์เหล่านี้กับอุปกรณ์ หากต้องการค้นหาพอร์ต COM ที่อุปกรณ์ได้รับมอบหมายให้ทำดังต่อไปนี้: ไปที่แผงควบคุม (เริ่ม -> การตั้งค่า -> แผงควบคุม) ดับเบิลคลิก 'ระบบ' คลิกแท็บ 'ฮาร์ดแวร์' คลิก 'ตัวจัดการอุปกรณ์' คลิก '+' ถัดจากพอร์ต รายการพอร์ต COM ในระบบจะปรากฏขึ้น ฉันเคยเห็นอุปกรณ์แสดงเป็น COM 3 และ 4 แต่จะแตกต่างกันไปตามระบบ หากไม่ชัดเจนว่าพอร์ตใดเป็นพอร์ตใหม่ ให้ลองทำดังนี้: ถอดปลั๊กอุปกรณ์ออกจากพอร์ต USB พอร์ตใดพอร์ตหนึ่งจะหายไป นี่คือพอร์ต COM ของอุปกรณ์ # เสียบอุปกรณ์กลับเข้าไป พอร์ตจะปรากฏขึ้นอีกครั้ง สามารถใช้แอปพลิเคชัน VB ขนาดเล็ก (รวมแหล่งที่มา) เพื่อทดสอบอุปกรณ์ได้ ป้อนคำสั่งที่จะส่ง คลิก 'เริ่ม' การตอบกลับจะปรากฏในหน้าต่าง
ขั้นตอนที่ 4: มันทำอะไรได้อีก?
บอร์ดสาธิตนี้เป็นจุดเริ่มต้นที่ดีสำหรับสถานีตรวจอากาศในบ้านขนาดเล็ก: เพิ่มเซ็นเซอร์ความชื้น HIH3160 หรือเปลี่ยนเซ็นเซอร์อุณหภูมิแอนะล็อกด้วยเซ็นเซอร์อุณหภูมิและความชื้นอนุกรมความแม่นยำสูง Sensiron HT74 เพิ่มเซ็นเซอร์ความดัน Freescale MPX(a)4115 ไปที่ วัดความดันบรรยากาศ ต้องการเผยแพร่ข้อมูลนี้ไปยังเว็บหรือไม่ รวมไว้ในเว็บไซต์ของคุณเอง ดูใน Google Earth หรือรับการอัปเดตใน RSS reed ของคุณหรือไม่ ดูคำแนะนำในการรวมอุปกรณ์นี้กับแบ็กเอนด์เว็บ syndicIT.com:https://www.instructables.com/id/E25ZKI1NDCEQZJJOTC/
แนะนำ:
อุปกรณ์ IoT เครื่องแรกของฉัน: 14 ขั้นตอน
อุปกรณ์ IoT เครื่องแรกของฉัน: ในคำแนะนำนี้ เราจะเรียนรู้วิธีติดตั้ง Arduino IDE สำหรับอุปกรณ์ IoT เครื่องแรกของฉัน ดังนั้นในตอนท้าย เราสามารถเรียกใช้โค้ด Arduino บนมันและควบคุมจากโทรศัพท์มือถือของคุณได้
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: 4 ขั้นตอน
วิธีใช้ Neopixel Ws2812 LED หรือ LED STRIP หรือ Led Ring กับ Arduino: สวัสดีทุกคนเนื่องจาก Neopixel led Strip เป็นที่นิยมอย่างมากและเรียกอีกอย่างว่า ws2812 led strip เช่นกัน พวกเขาเป็นที่นิยมอย่างมากเพราะในแถบนำเหล่านี้เราสามารถระบุแต่ละ LED แยกจากกัน ซึ่งหมายความว่าหากคุณต้องการให้ไฟ LED สองสามดวงเรืองแสงเป็นสีเดียว
Arduino Ws2812 LED หรือ Neopixel Led Strip หรือ Ring Tutorial: 4 ขั้นตอน
Arduino Ws2812 LED หรือ Neopixel Led Strip หรือ Ring Tutorial: ในคำแนะนำนี้เราจะเรียนรู้วิธีใช้ neopixel หรือ ws 2812 หรือนำอย่างรวดเร็วด้วย Arduino LED หรือแถบหรือวงแหวนประเภทนี้ถูกควบคุมโดยพิน Vin เพียงอันเดียวและทั้งหมด LED สามารถระบุแอดเดรสแยกกันได้ ดังนั้นจึงเรียกอีกอย่างว่า indi
Faucet Faucet หรือ Pedal Faucet หรือ Water Saver Tap ฟรี: 5 ขั้นตอน
Hand Free Faucet หรือ Pedal Faucet หรือ Water Saver Tap: นี่เป็นวิธีที่ประหยัดและง่ายในการเปลี่ยน faucet ที่ทางออกเป็น faucet แบบแฮนด์ฟรี (ถูกสุขลักษณะ) แพทย์ต้องการเพื่อวัตถุประสงค์ที่ถูกสุขอนามัย หรือในห้องครัว พนักงานที่คล้ายกันสำหรับ Hand-free สำหรับ ล้างมือทั้งสองข้างพร้อมกันและประหยัดน้ำ มันคือ
MacBook Tablet หรือ DIY Cintiq หรือ Homebrew Mac Tablet: 7 ขั้นตอน
MacBook Tablet หรือ DIY Cintiq หรือ Homebrew Mac Tablet: ได้รับแรงบันดาลใจอย่างมากจากคำแนะนำที่โดดเด่นของ c4l3b ซึ่งได้รับแรงบันดาลใจจาก bongofish ฉันจึงตัดสินใจลองใช้สิ่งเดียวกันนี้กับ Core 2 Duo MacBook ของฉัน ขั้นตอนต่างกันมากจนฉันคิดว่าต้องมีการสอนแยกต่างหาก อีกด้วย