12 KiB
टाइमर सेट करा - व्हर्च्युअल IoT हार्डवेअर आणि रास्पबेरी पाय
या धड्याच्या भागामध्ये, तुम्ही तुमचा सर्व्हरलेस कोड कॉल कराल, भाषेचा अर्थ समजून घेण्यासाठी आणि परिणामांवर आधारित तुमच्या व्हर्च्युअल IoT डिव्हाइस किंवा रास्पबेरी पायवर टाइमर सेट कराल.
टाइमर सेट करा
स्पीच टू टेक्स्ट कॉलमधून परत आलेला मजकूर तुमच्या सर्व्हरलेस कोडला पाठवणे आवश्यक आहे, जो LUIS द्वारे प्रक्रिया केली जाईल आणि टाइमरसाठी सेकंदांची संख्या परत मिळेल. ही सेकंदांची संख्या टाइमर सेट करण्यासाठी वापरली जाऊ शकते.
टाइमर सेट करण्यासाठी Python च्या threading.Timer
क्लासचा वापर केला जाऊ शकतो. हा क्लास एक विलंब वेळ आणि एक फंक्शन घेतो, आणि विलंब वेळेनंतर ते फंक्शन कार्यान्वित केले जाते.
कार्य - मजकूर सर्व्हरलेस फंक्शनला पाठवा
-
VS Code मध्ये
smart-timer
प्रोजेक्ट उघडा आणि जर तुम्ही व्हर्च्युअल IoT डिव्हाइस वापरत असाल तर टर्मिनलमध्ये व्हर्च्युअल एन्व्हायर्नमेंट लोड केले असल्याची खात्री करा. -
process_text
फंक्शनच्या वर,get_timer_time
नावाचे एक फंक्शन घोषित करा जे तुम्ही तयार केलेल्या REST एन्डपॉइंटला कॉल करेल:def get_timer_time(text):
-
या फंक्शनमध्ये खालील कोड जोडा जे कॉल करण्यासाठी URL परिभाषित करेल:
url = '<URL>'
<URL>
ला तुमच्या REST एन्डपॉइंटच्या URL ने बदला, जो तुम्ही मागील धड्यात तुमच्या संगणकावर किंवा क्लाउडमध्ये तयार केला आहे. -
कॉलसाठी JSON म्हणून पाठवले जाणारे प्रॉपर्टी म्हणून मजकूर सेट करण्यासाठी खालील कोड जोडा:
body = { 'text': text } response = requests.post(url, json=body)
-
याखाली, प्रतिसाद पेलोडमधून
seconds
मिळवा, आणि कॉल अयशस्वी झाल्यास 0 परत करा:if response.status_code != 200: return 0 payload = response.json() return payload['seconds']
यशस्वी HTTP कॉल्स 200 श्रेणीतील स्टेटस कोड परत करतात, आणि तुमचा सर्व्हरलेस कोड 200 परत करतो जर मजकूर प्रक्रिया केला गेला असेल आणि सेट टाइमर हेतू म्हणून ओळखला गेला असेल.
कार्य - बॅकग्राउंड थ्रेडवर टाइमर सेट करा
-
फाईलच्या शीर्षस्थानी खालील इम्पोर्ट स्टेटमेंट जोडा जे threading Python लायब्ररी आयात करेल:
import threading
-
process_text
फंक्शनच्या वर, प्रतिसाद बोलण्यासाठी एक फंक्शन जोडा. सध्या हे फक्त कन्सोलवर लिहील, पण या धड्याच्या पुढील भागात हे मजकूर बोलेल.def say(text): print(text)
-
याखाली एक फंक्शन जोडा जे टाइमर पूर्ण झाल्यावर घोषणा करेल:
def announce_timer(minutes, seconds): announcement = 'Times up on your ' if minutes > 0: announcement += f'{minutes} minute ' if seconds > 0: announcement += f'{seconds} second ' announcement += 'timer.' say(announcement)
हे फंक्शन टाइमरसाठी मिनिटे आणि सेकंदांची संख्या घेते आणि टाइमर पूर्ण झाल्याचे सांगणारे वाक्य तयार करते. हे मिनिटे आणि सेकंदांची संख्या तपासेल आणि प्रत्येक वेळ युनिटमध्ये फक्त संख्या असल्यास समाविष्ट करेल. उदाहरणार्थ, जर मिनिटांची संख्या 0 असेल तर फक्त सेकंद संदेशात समाविष्ट केले जातील. हे वाक्य नंतर
say
फंक्शनला पाठवले जाते. -
याखाली, टाइमर तयार करण्यासाठी खालील
create_timer
फंक्शन जोडा:def create_timer(total_seconds): minutes, seconds = divmod(total_seconds, 60) threading.Timer(total_seconds, announce_timer, args=[minutes, seconds]).start()
हे फंक्शन टाइमरसाठी एकूण सेकंदांची संख्या घेते जी कमांडमध्ये पाठवली जाईल, आणि याला मिनिटे आणि सेकंदांमध्ये रूपांतरित करते. नंतर हे एकूण सेकंदांचा वापर करून टाइमर ऑब्जेक्ट तयार करते आणि सुरू करते,
announce_timer
फंक्शन आणि मिनिटे आणि सेकंदांचा समावेश असलेल्या यादीला पास करते. टाइमर संपल्यावर, हेannounce_timer
फंक्शनला कॉल करेल आणि या यादीतील सामग्री पॅरामीटर्स म्हणून पास करेल - त्यामुळे यादीतील पहिला आयटमminutes
पॅरामीटर म्हणून पास होतो, आणि दुसरा आयटमseconds
पॅरामीटर म्हणून पास होतो. -
create_timer
फंक्शनच्या शेवटी, वापरकर्त्याला टाइमर सुरू होत असल्याची घोषणा करण्यासाठी बोलण्याचा संदेश तयार करण्यासाठी काही कोड जोडा:announcement = '' if minutes > 0: announcement += f'{minutes} minute ' if seconds > 0: announcement += f'{seconds} second ' announcement += 'timer started.' say(announcement)
पुन्हा, यामध्ये फक्त वेळ युनिट समाविष्ट आहे ज्यामध्ये मूल्य आहे. हे वाक्य नंतर
say
फंक्शनला पाठवले जाते. -
process_text
फंक्शनच्या शेवटी खालील कोड जोडा जे मजकूरातून टाइमरसाठी वेळ मिळवेल, आणि नंतर टाइमर तयार करेल:seconds = get_timer_time(text) if seconds > 0: create_timer(seconds)
टाइमर फक्त सेकंदांची संख्या 0 पेक्षा जास्त असल्यास तयार केला जातो.
-
अॅप चालवा, आणि फंक्शन अॅप देखील चालू असल्याची खात्री करा. काही टाइमर सेट करा, आणि आउटपुट टाइमर सेट होत असल्याचे दाखवेल, आणि नंतर टाइमर संपल्यावर दाखवेल:
pi@raspberrypi:~/smart-timer $ python3 app.py Set a two minute 27 second timer. 2 minute 27 second timer started. Times up on your 2 minute 27 second timer.
💁 तुम्ही हा कोड code-timer/pi किंवा code-timer/virtual-iot-device फोल्डरमध्ये शोधू शकता.
😀 तुमचा टाइमर प्रोग्राम यशस्वी झाला!
अस्वीकृती:
हा दस्तऐवज AI भाषांतर सेवा Co-op Translator वापरून भाषांतरित करण्यात आला आहे. आम्ही अचूकतेसाठी प्रयत्नशील असलो तरी कृपया लक्षात ठेवा की स्वयंचलित भाषांतरांमध्ये त्रुटी किंवा अचूकतेचा अभाव असू शकतो. मूळ भाषेतील दस्तऐवज हा अधिकृत स्रोत मानला जावा. महत्त्वाच्या माहितीसाठी व्यावसायिक मानवी भाषांतराची शिफारस केली जाते. या भाषांतराचा वापर करून निर्माण होणाऱ्या कोणत्याही गैरसमज किंवा चुकीच्या अर्थासाठी आम्ही जबाबदार राहणार नाही.