iToilet। कार्यालय का शौचालय निःशुल्क है



हेलो, हेब्र!
मेरा नाम Serg Krivoblotsky है और मैं एक शराबी iOS डेवलपर हूं। मैं एक छोटी सी कीव कंपनी के लिए काम करता हूं जो हमारे प्लेटफॉर्म के लिए iOS के विकास और डिजाइन में माहिर है। "आप जो करते हैं उससे प्यार करते हैं और करते हैं।" हम करते हैं। प्यार।

मासिक हैकथॉन के विचार ने हमारी टीम में पूरी तरह से जड़ें जमा ली हैं। महीने में एक बार, सप्ताहांत पर, एक टीम कोड लिखने, नई तकनीक सीखने, सिर्फ विचार पैदा करने, या पिज्जा खाने के रूप में मनोरंजन के लिए इकट्ठा होती है। अलग-अलग कार्य थे: वर्चुअल प्लानिंग पोकर से, चेक पर मूल्य मान्यता और राष्ट्रीय में रूपांतरण के लिए। मुद्रा। इस सब का मुख्य लक्ष्य तैयार उत्पाद को जारी करना नहीं है, बल्कि एक कामकाजी प्रोटोटाइप, उर्फ ​​एमवीपी, जैसा आप चाहते हैं, लिखना है।
विचारों में से एक और इसके कार्यान्वयन के बारे में, मैं अधिक विस्तार से बताना चाहूंगा।

हर कोई जो एक सह-काम कर रहा है, या एक छोटा कार्यालय अपने कार्यों के ऐसे एल्गोरिथ्म में आया है:
  1. आप शौचालय जाते हैं
  2. उफ़, व्यस्त
  3. आप कार्यस्थल पर जाते हैं।
  4. आप तब तक प्रतीक्षा करें जब तक कि यह मुक्त न हो जाए।

एक समस्या है - एक समाधान होना चाहिए। यह सुविधाजनक होगा यदि, कार्यस्थल पर, मुझे पहले से ही पता था कि शौचालय वर्तमान में कब्जा कर लिया गया था, क्या मुझे वहां जाना चाहिए।




इसके लिए हमें क्या चाहिए:


इसे खरीदा गया था:

  1. PCduino
  2. सबसे साधारण एनालॉग लाइट सेंसर
  3. तारों और कई प्रतिरोधों के बहुत सारे


प्रगति:
मैं ज्यादा कोड नहीं लिखूंगा, क्योंकि इसे हैलो वर्ल्ड समझा जाता है। लेख के अंत में गिथब के लिंक होंगे।

  1. सेंसर को pcduino से कनेक्ट करें:

    संवेदक 0..4096 सीमा में मान लौटाएगा।
    जाहिर है, यह निर्धारित किया गया था कि टॉयलेट में हमारा प्रकाश जब चालू होता है:
    > 3400 - अंधेरा
    <3400 - प्रकाश
  2. अपाचे उठाएं। (पहले वहाँ ubuntu रखा)।
  3. हम रीडिंग रीडिंग के लिए php में कोड लिखते हैं (GitHub पर लेख लिंक के अंत में)।

    $this->port = (isset($_GET["port"]) && is_numeric($_GET["port"])) ? $_GET["port"]:2; $this->data = exec("cat /proc/adc".$this->port); 


  4. हम मोबाइल के लिए एक एपीआई लिख रहे हैं, और न केवल ग्राहक:
      $this->answer(array( 'light_value' => (int)$this->data, 'light_status' => (bool)$l_status, 'light_change' => (int)$l_change, 'sensor_status' => true )); 
  5. हम आपके द्वारा सुविधाजनक तरीके से टाइमर द्वारा डिवाइस से पूछताछ करते हैं:
    OSX:
      NSURL *toiletURL = [NSURL URLWithString:kToiletURLString]; NSError *requestError = nil; NSData *responseData = [NSData dataWithContentsOfURL:toiletURL options:NSDataReadingUncached error:&requestError]; 

    iOS:
      NSURL *url = [NSURL URLWithString:urlString]; NSURLRequest *request = [NSURLRequest requestWithURL:url]; //Send NSURLSession dataTask [self sendRequest:request withCompletion:completion]; 

  6. सूचना पोस्ट करें:
     [self.notificationController deliverNotificationWithTitle:kBusyNotificationText andText:notificationText]; 



... सामान्य तौर पर, यह वह सब है जिसकी आवश्यकता है। बाद में हमने टाइमर के रूप में और पॉप-अप नोटिफिकेशन को अक्षम करने की क्षमता में कुछ अच्छाइयों को जोड़ा।
काम का परिणाम:
OSX:


आईओएस


हैकाथॉन स्रोत:
OSX:
github.com/Krivoblotsky/iToilet-Mac-OS

आईओएस
github.com/Krivoblotsky/iToilet

पीएचपी:
github.com/Krivoblotsky/iToilet-PHP

@Krivoblotsky

Source: https://habr.com/ru/post/In216059/


All Articles