Sunday, June 28, 2015

[How to] Stm32F0 Wireless Sensor Node [Sensor]

Sensor ที่นำมาใช้ในโปรเจคนี้มี 2 ตัวคือ


BMP085

TECHNICAL DETAILS


  • Vin: 3 to 5VDC

  • Logic: 3 to 5V compliant

  • I2C 7-bit address 0x77

  • Pressure sensing range: 300-1100 hPa (9000m to -500m above sea level)

  • Up to 0.03hPa / 0.25m resolution

  • -40 to +85°C operational range, +-2°C temperature accuracy 

  •        BMP085 เป็นตัวตรวจจับปริมาณของสภาพแวดล้อมที่พัฒนาขึ้นจากเทคโนโลยีเปียโซ-รีซิสตีฟ (Piezo-resistive technology) เป็นผลงานของ BOSCH หนึ่งในผู้ผลิตตัวตรวจจับคุณภาพสูงในวงการอุตสาหกรรมระดับโลก ใช้ไฟเลี้ยงในย่าน +1.8 ถึง +3.6V เชื่อมต่อกับไมโครคอนโทรลเลอร์ผ่านทางบัส I2C
    ________________________________________________________________


    TSL2561

    TECHNICAL DETAILS


  • Approximates Human eye Response

  • Precisely Measures Illuminance in Diverse Lighting Conditions

  • Temperature range: -30 to 80 *C

  • Dynamic range (Lux): 0.1 to 40,000 Lux

  • Voltage range: 2.7-3.6V

  • Interface: I2C

  • This board/chip uses I2C 7-bit addresses 0x39, 0x29, 0x49, selectable with jumpers

  • TSL2561 Datasheet

  •        TSL2561 Luminosity Sensor เป็นโมดูลที่ใช้วัดแสงได้หลากหลายในช่วงกว้าง วัดได้ทั้งแสงที่ตาคนเรามองเห็นและแสงที่มองไม่เห็น วัดได้ในช่วง 0.1-40,000 + Lux ใช้ไฟเลี้ยงที่ 2.7V -3.6V เซนเซอร์นี้มีอินเตอร์เฟสติดต่อแบบ I2C สามารถเลือก address ได้ 3 ค่า ดังนั้นจึงสามารถต่อร่วมกันได้ถึง 3 โมดูลในบอร์เดียวกัน
    ________________________________________________________________
    Software โดยทำการพอร์ต Library มาเพื่อใช้งานกับ STM32F0 With HAL Library



         BMP085 Library มี 3 ฟังก์ชั่นหลักในการใช้งานคือ

    • readeeprom (void)
    ใช้ในการอ่านค่า calibration data จาก Register
    • readtempbmp085 (int32_t * temperature)
    ใช้ในการคำนวณค่าที่ได้จาก calibration data ให้เป็นค่าอุณหภูมิ
    • readpressbmp085 (float * pressureatsealvl, float * Altitude)
    ใช้ในการคำนวณค่าที่ได้จาก calibration data ให้เป็นค่าความดันอากาศและค่าระดับความสูง (อิงจากระดับน้ำทะเล) **ในฟังก์ชั่นนี้จำเป็นต้องใช้ powf ในการยกกำลังค่าทศนิยม**
    ________________________________________________________________
         TSL2561 Library มี 1 ฟังก์ชั่นหลักในการใช้งานคือ

    • readtsl2561 (uint16_t * lux, uint32_t * fullspec, uint16_t * ir, uint16_t * visiblespec)
      ใช้ในการอ่านค่าแสงโดยแบ่งเป็น
         • ค่าความเข้มแสง
         • ค่าแสงทั้งหมด
         • ค่าแสงอินฟาเรด
         • ค่าแสงที่มนุษย์สามารถมองเห็นได้
    ________________________________________________________________
    Using on STM32
         ทำการทดลองโดยการเชื่อมต่ออุปกรณ์ทั้งสองตัวร่วมกับบอร์ด STM32F0 โดยใช้งานผ่านพอร์ต I2C1 โดยทำงานร่วมกับ HAL Library

    BMP085
    I2C1 on STM32F0
    SDA
    PB7(SDA)
    SCL
    PB6(SCL)
    VCC
    3.3-5V
    GND
    GND

    ________________________________________________________________
    Results

    เชื่อมต่อ STM32F0 กับ Sensor ผ่าน I2C และแสดงผลผ่านทาง UART

    ค่าที่อ่านได้จาก Sensor

         จา่กการทดลองเป็นการอ่านค่าจากทั้ง 2 Sensor และทำการส้งออกไปยัง UART เพื่อแสดงผลค่าที่ได้

    ________________________________________________________________

    No comments:

    Post a Comment