Tuya Link SDK IoT स्मार्ट एनवायरनमेंट सेंसिग एंड ह्यमिडिफ़ायर

मैं पिछले कुछ महीनों से Tuya IoT प्लेटफॉर्म की खोज कर रहा था और वे मुझे अपनी सुविधाओं की बढ़ती सूची के साथ विस्मित करने में कभी असफल नहीं हुए, डेवलपर्स के लिए सेंसर, मॉड्यूल का एक गुच्छा हथियाना और पूरी तरह से बनाना इतना आसान कभी नहीं था- कार्यात्मक IoT डिवाइस किसी भी निजी IoT डिवाइस कंपनी के समान काम करता है। हो सकता है कि आपने Tuya IoT Cloud और Platform को Arduinos के साथ उनके एंबेडेड SDK का उपयोग करते हुए कनेक्ट किया हो, लेकिन रास्पबेरी पाई के साथ रैपिड प्रोटोटाइप के लिए इसका उपयोग कैसे किया जाए (34 मिलियन से अधिक इकाइयों की बिक्री के साथ, रास्पबेरी पाई न केवल दुनिया के सबसे लोकप्रिय कंप्यूटरों में से एक है) ; यह सबसे महत्वपूर्ण में से एक है जब यह एक बहुमुखी शौक के साथ-साथ औद्योगिक परियोजनाओं के निर्माण की बात आती है। मुझे यकीन है कि आप इसे हर गीक डेस्क पर देख सकते हैं)। यह ट्यूटोरियल रास्पबेरी पाई को अपने Tuya Cloud और IoT प्लेटफॉर्म अकाउंट से जोड़ने के लिए Tuya Link SDKs का उपयोग करने के बारे में है और इस लेख के अंत तक, मैं Link SDK के माध्यम से नियंत्रित करने के लिए पर्यावरण सेंसर और पानी परमाणु मॉड्यूल जोड़ने के लिए भी दिखाऊंगा।

आइए जानते हैं प्रोजेक्ट के बारे में।

तो चलिए शुरू करते हैं लेकिन इससे पहले यदि आपने अभी तक एक Tuya खाता नहीं बनाया है, तो एक बनाएं और मुफ़्त डिवाइस लाइसेंस प्राप्त करें और हमें Tuya IoT के साथ अपनी सभी अनूठी परियोजनाओं और अनुभवों को यहां दिखाएं और बताएं।🤹

Tuya Sdk का उपयोग क्यों करें?

Sdks आपके जीवन को बहुत आसान बनाते हैं। यह आपको OpenAPI या संदेश सदस्यता क्षमताओं के संबंध में कुशलता से क्लाउड डेवलपमेंट प्रोजेक्ट बनाने में मदद करता है। अब आप सर्वर-साइड प्रोग्रामिंग या रिलेशनल डेटाबेस पर ध्यान दिए बिना व्यवसाय या प्रोजेक्ट लॉजिक पर पूरा ध्यान केंद्रित कर सकते हैं। तुया लिंक एसडीके एक ऐसा एसडीके है जो डिवाइस सक्रियण, DP (डेटापॉइंट्स) अपस्ट्रीम और डाउनस्ट्रीम, और फर्मवेयर OTA (ओवर-द-एयर) अपग्रेड जैसी बुनियादी सेवाओं का इंटरफेस एनकैप्सुलेशन प्रदान करता है। डेवलपर्स के लिए स्व-विकसित डिवाइस की लॉजिक सेवाओं को क्लाउड से कनेक्ट करना उपयुक्त है। एसडीके का उपयोग करने के लाभों की जांच करें – अब आप एक डेवलपर के रूप में आश्वस्त होंगे 😎

स्मार्ट डिवाइस डिवेलप्मन्ट

Tuya Link SDK का उपयोग करने के लिए, हमें Tuya IoT Cloud से इंटरैक्ट करने और कनेक्ट करने के लिए एक उत्पाद बनाने की आवश्यकता होगी। ऐसा करने के लिए अपने Tuya IoT खाते में जाएं और लॉग इन करें। Click here
Step 1: होम पेज पर क्रिएट बटन पर क्लिक करके प्रोडक्ट बनाएं।
Step 2: एक वेबपेज दिखाई देगा जहां आपको अपने उत्पाद के लिए एक श्रेणी का चयन करना होगा (आप Tuya द्वारा पेश किए गए विभिन्न SKUs की खोज करने का प्रयास कर सकते हैं)। चूंकि हम अपने कस्टम डिवाइस के रूप में Raspberry Pi का उपयोग करने जा रहे हैं, इसलिए हमें “Can’t find the category(श्रेणी नहीं मिल सकती)” पर क्लिक करना होगा और विवरण दर्ज करना होगा जैसा कि दिखाया गया है।
Step 3: डेटा भेजने और डिवाइस को नियंत्रित करने के लिए कस्टम फ़ंक्शन बनाएं, हमने CO2, आर्द्रता, तापमान और ह्यूमिडिफ़ायर स्विच के लिए कस्टम फ़ंक्शन बनाए। कस्टम फ़ंक्शन के लिए कुछ महत्वपूर्ण चीज़ों की आवश्यकता होती है जैसे Data Type, Transfer Type और सबसे महत्वपूर्ण Id और Identifier। इसके अलावा, PID ​​का ध्यान रखें, हमें बाद में भी इसकी आवश्यकता होगी। कस्टम फ़ंक्शंस के संपूर्ण अवलोकन के लिए यहां देखें https://developer.tuya.com/en/docs/iot/custom-functions?id=K937y38137c64
Step 4: डिवाइस का उपयोग करने के लिए हमें सभी आवश्यक कार्यात्मकताओं के साथ एक सुंदर पैनल की आवश्यकता होती है, हालांकि आप तुया Android और iOS एसडीके का उपयोग करके पैनल बना सकते हैं, फिर भी ड्रैग एंड ड्रॉप UI पैनल डिजाइनर किसी के लिए भी रोमांचक और तेज़ है, जो हर किसी को पसंद है, कम समय में ज्यादातर चीजें कर सकते हैं। आपके परिभाषित डेटा पॉइंट्स (Dp) के लिए आपको सभी प्रकार के ड्रैग एंड ड्रॉप विजेट मिलेंगे। आप इनका उपयोग कर सकते हैं और एक पेशेवर UI बना सकते हैं।
एक बार जब आप पैनल का निर्माण पूरा कर लें, तो रिलीज बटन पर क्लिक करें और पैनल को अंतिम रूप के लिए प्रतीक्षा करें। अब Link Sdk को जुड़ने का समय आ गया है। अपने Hardware Development अनुभाग में जाएं और Link Sdk पर क्लिक करें। लेकिन आपको Link Sdk का उपयोग करने के लिए लाइसेंस की आवश्यकता होगी।
Step 5: रास्पबेरी पाई के लिए हम हार्डवेयर प्रकार के रूप में सामान्य सीपीयू का उपयोग करने जा रहे हैं, साथ ही यदि आप प्लेटफॉर्म पर नए हैं तो आपको एक मुफ्त लाइसेंस उत्पन्न करने का विकल्प भी दिखाई देगा। ऑर्डर दें पर क्लिक करें और लाइसेंस सूची डाउनलोड करें। लाइसेंस Tuya UUID और AuthKey से बना है जो कि Tuya Cloud को डेटा प्राप्त करने और भेजने के लिए डिवाइस को अधिकृत करने के लिए आवश्यक है।

हार्डवेयर सेटअप

सुनिश्चित करें कि I2C इंटरफ़ेस Raspberry Pi कॉन्फ़िग कंसोल के माध्यम से सक्षम है। अब हम स्पार्कफुन क्विक सेंसर पैकेज स्थापित करने जा रहे हैं।
$ sudo pip3 install sparkfun-qwiic
स्रोत से Tuya Link Sdk स्थापित करें:
$ git clone https://github.com/tuya/tuyaos-link-sdk-python.git
$ python3 -m pip install ./tuyaos-link-sdk-python
जब आप इसे सफलतापूर्वक स्थापित कर लेते हैं, तो अब हम यह समझने जा रहे हैं कि हम कोड कैसे करेंगे। सबसे पहले हम सभी आवश्यक पैकेज आयात कर रहे हैं।
from __future__ import print_function, division
import qwiic
import time
import sys
import time
import coloredlogs
from tuyalinksdk.client import TuyaClient
from tuyalinksdk.console_qrcode import qrcode_generate
import RPi.GPIO as GPIO
अब क्रेडेंशियल और सेंसर ऑब्जेक्ट सेट करते हैं।
coloredlogs.install(level='DEBUG')

client = TuyaClient(productid='aat2td94fptlzhoh', uuid='tuyacb7c4616a0b51697', authkey='JEHlft0ZrDCUo33jBpE0T5vVS9onUBT9')

bme = qwiic.QwiicBme280()
ccs = qwiic.QwiicCcs811()

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
humidifier= 26
GPIO.setup(led1,GPIO.OUT)

bme.begin()
ccs.begin()

हम पिछले चरणों में किए गए Data Point के साथ बातचीत करने के लिए, Tuya Link SDK गाइड में दिए गए नमूना कोड को संशोधित कर रहे हैं। Dp Id यहां प्रतिक्रिया की पहचान करने और मोबाइल ऐप पैनल से डेटा अपडेट करने में एक प्रमुख भूमिका निभा रहा है।
def on_dps(dps):
    print('DataPoints:', dps)
    if(dps == {'102':True}):
    	GPIO.output(humidifier, GPIO.HIGH)
    elif(dps=={'102':False}):
    	GPIO.output(humidifier, GPIO.LOW)
    # send environmental sensor data
    dps['103']= bme.get_temperature_celsius()
    dps['104']= bme.read_humidity()
    ccs.read_algorithm_results() #update TVOC, CO2 values
    dps['101']= ccs.get_co2()

    client.push_dps(dps)

एक बार जब आप पूरी स्क्रिप्ट चला लेते हैं (इसे यूयूआईडी, उत्पाद आईडी के अपने सेट से बदलना न भूलें)।
$ python3 quick.py
यह एक QR कोड उत्पन्न करेगा जिसे आपके मोबाइल फोन पर तुया स्मार्ट ऐप द्वारा स्कैन किया जा सकता है और फिर यह उपयोग के लिए तैयार हो जाएगा।
समस्या निवारण सूचना पुस्तक (Troubleshooting Guide):
  • यदि रास्पबेरी पाई पर चलने वाली स्क्रिप्ट द्वारा क्यूआर कोड उत्पन्न नहीं किया जा रहा है, तो सुनिश्चित करें कि आपके पास एक उचित इंटरनेट कनेक्शन है, रास्पबेरी पाई डिवाइस और मोबाइल एक ही वाईफाई नेटवर्क (2.4GHz समर्थित) पर होना चाहिए।
  • यदि आपको प्रमाणित करने में असमर्थ होने जैसी त्रुटियां मिलती हैं, तो सुनिश्चित करें कि आपकी UID, PID और Auth Key सही हैं।
  • यदि कनेक्शन का समय समाप्त हो जाता है या वाईफाई से बार-बार डिस्कनेक्ट होता है, तो अपनी बिजली की आपूर्ति की जांच करें (मैं रास्पबेरी पाई के लिए 5V – 3A – 15W बिजली की आपूर्ति का उपयोग कर रहा हूं)
  • सोर्स कोड (Codes):

    from __future__ import print_function, division
    import qwiic
    import time
    import sys
    import time
    import coloredlogs
    from tuyalinksdk.client import TuyaClient
    from tuyalinksdk.console_qrcode import qrcode_generate
    import RPi.GPIO as GPIO
    
    coloredlogs.install(level='DEBUG')
    
    client = TuyaClient(productid='aat2td94fptlzhoh', uuid='tuyad1f130fd2d21fd1c', authkey='m7XFiWrTSktjBrMHSXl9teoF98xNeRwv')
    
    bme = qwiic.QwiicBme280()
    ccs = qwiic.QwiicCcs811()
    
    GPIO.setmode(GPIO.BCM)
    GPIO.setwarnings(False)
    humidifier= 26
    GPIO.setup(humidifier,GPIO.OUT)
    
    bme.begin()
    ccs.begin()
    
    def on_connected():
        print('Connected.')
    
    def on_qrcode(url):
        qrcode_generate(url)
    
    def on_reset(data):
        print('Reset:', data)
    
    def on_dps(dps):
        print('DataPoints:', dps)
        if(dps == {'102':True}):
        	GPIO.output(humidifier, GPIO.HIGH)
        elif(dps=={'102':False}):
        	GPIO.output(humidifier, GPIO.LOW)
        # send environmental sensor data
        dps['103']= int(bme.get_temperature_celsius())
        dps['104']= int(bme.read_humidity())
        ccs.read_algorithm_results()
        dps['101']= int(ccs.get_co2())
        
        client.push_dps(dps)
    
    
    client.on_connected = on_connected
    client.on_qrcode = on_qrcode
    client.on_reset = on_reset
    client.on_dps = on_dps
    client.connect()
    client.loop_start()
    
    while True:
        pressure = bme.get_reference_pressure() #in Pa
        altitudem = bme.get_altitude_meters()
        altitudef = bme.get_altitude_feet()
        humidity = bme.read_humidity()
        tempc = bme.get_temperature_celsius()
        tempf = bme.get_temperature_fahrenheit()
        dewc = bme.get_dewpoint_celsius()
        dewf = bme.get_dewpoint_fahrenheit()
    
    
        ccs.read_algorithm_results() #updates the TVOC and CO2 values
        tvoc = ccs.get_tvoc()
        co2 = ccs.get_co2()
    #     print (time.strftime("%a %b %d %Y %I:%M:%S%p", time.localtime())) #12-hour time
    # 
    #     print ("BME Temperature %.1f C" %tempc)
    #     print ("Humidity %.1f" %humidity)
    # 
    #     print ("Pressure %.2f Pa" %pressure)
    #     print ("Altitude %.2f ft" %altitudef)
    #     print ("Altitude % 2f mt" %altitudem)
    # 
    #     print ("TVOC %.2f" %tvoc)
    #     print ("CO2 %.2f" %co2)
        
        time.sleep(0.5)
    
    

    Leave a Reply

    STEPTOSTEM