खोज…


उदाहरण - तापमान संवेदक

रास्पबेरी पाई के साथ DS18B20 का इंटरफेस

रास्पबेरी पाई के साथ DS18B20 का कनेक्शन

यहाँ छवि विवरण दर्ज करें

आप देख सकते हैं कि तीन टर्मिनल हैं

  1. VCC
  2. Gnd
  3. डेटा (एक तार प्रोटोकॉल)

यहाँ छवि विवरण दर्ज करें

वोल्टेज स्तर को ऊपर खींचने के लिए आर 1 4.7k ओम प्रतिरोध है

  1. Vcc को रास्पबेरी पाई के 5v या 3.3v पिन में से किसी से जोड़ा जाना चाहिए (पिन: 01, 02, 04, 17)।
  2. गोंड को रास्पबेरी पाई के किसी भी पिन पिन से जोड़ा जाना चाहिए (पिन: 06, 09, 14, 20, 25)।
  3. DATA से जुड़ा होना चाहिए (PIN: 07)

आरपीआई पक्ष से एक-तार इंटरफ़ेस को सक्षम करना

  1. पोटीन या किसी अन्य लिनक्स / यूनिक्स टर्मिनल का उपयोग करके रास्पबेरी पाई में प्रवेश करें।

  2. लॉगिन करने के बाद, अपने पसंदीदा ब्राउज़र में /boot/config.txt फ़ाइल खोलें।

    नैनो /boot/config.txt

  3. अब इस लाइन को फ़ाइल के अंत में dtoverlay=w1–gpio जोड़ें।

  4. अब रास्पबेरी पी sudo reboot

  5. रास्पबेरी पाई में लॉग इन करें, और sudo modprobe g1-gpio चलाएं

  6. फिर sudo modprobe w1-therm चलाएं

  7. अब डायरेक्टरी / sys / Bus / w1 / devices cd /sys/bus/w1/devices

  8. अब आपको 28 से शुरू होने वाले तापमान संवेदक से बना एक आभासी निर्देशिका पता चलेगा - ********।

  9. इस निर्देशिका cd 28-********

  10. अब फ़ाइल नाम w1-slave है , इस फ़ाइल में तापमान और CRC जैसी अन्य जानकारी है। cat w1-slave

अब तापमान को पढ़ने के लिए अजगर में एक मॉड्यूल लिखें

import glob
import time

RATE = 30
sensor_dirs = glob.glob("/sys/bus/w1/devices/28*")

if len(sensor_dirs) != 0:
    while True:
        time.sleep(RATE)
        for directories in sensor_dirs:
            temperature_file = open(directories + "/w1_slave")
            # Reading the files
            text = temperature_file.read()
            temperature_file.close()
            # Split the text with new lines (\n) and select the second line.
            second_line = text.split("\n")[1]
            # Split the line into words, and select the 10th word
            temperature_data = second_line.split(" ")[9]
            # We will read after ignoring first two character.
            temperature = float(temperature_data[2:])
            # Now normalise the temperature by dividing 1000.
            temperature = temperature / 1000
            print 'Address : '+str(directories.split('/')[-1])+', Temperature : '+str(temperature)

ऊपर अजगर मॉड्यूल अनंत समय के लिए तापमान बनाम पते को प्रिंट करेगा। RATE पैरामीटर को सेंसर से तापमान क्वेरी की आवृत्ति को बदलने या समायोजित करने के लिए परिभाषित किया गया है।

GPIO पिन आरेख

  1. ]


Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow