विषयसूची:

स्मार्टबिन: 8 कदम
स्मार्टबिन: 8 कदम

वीडियो: स्मार्टबिन: 8 कदम

वीडियो: स्मार्टबिन: 8 कदम
वीडियो: Crow Solves An 8 Step Puzzle To Get Food. Incredible! 2024, नवंबर
Anonim
स्मार्टबिन
स्मार्टबिन

एस्टे ई उम प्रोजेटो पैरा उम सिस्टेमा इंटेलिजेंट डे कोलेटस, नो क्वाल ओएस कैमिन्हेस डी लिक्सो रिसेबेम डैडोस दास लिक्सीरास, आइडेंटिफांडो ए क्वांटिडेड डी लिक्सो प्रेजेंट एम कैडा उमा डेलस, ई उमा रोटा डे कोलेट ट्रैकाडा, कॉम बेस नास इंफॉर्मेशन।

इस परियोजना के लिए आवश्यक है:

  • नोडएमसीयू
  • सेंसर Ultrassônico de Distancia
  • कैक्सा डे पपेलाओ
  • protoboard
  • कैबॉस
  • डिस्पोजिटिवो एंड्रॉइड

चरण 1: कनेक्टेंडो ओ सेंसर

प्राइमिरामेंटे, वामोस एफेट्यूअर ए कॉन्क्सो एंट्रे ओ सेंसर अल्ट्रासोनिको ई ओ नोडेमकू। पैरा टैंटो, वामोस कोनेक्टर एज़ पोर्टस ट्रिगर ई इको डू सेंसर नास पोर्टस डी4 ई डी3 डू नोडएमसीयू:

// पिन नंबर को परिभाषित करता है #define pino_trigger 2 //D4

#define pino_echo 0 //D3

पहले से ही एक लेटुरा डॉस डैडोस डू सेंसर, फोई सेगुइडो या ट्यूटोरियल विस्तृत पेलो फिलिपफ्लॉप, डिस्पोनिवेल एक्वी।

फ्लोट cmMsec, inMsec;

लंबा माइक्रोसेक = अल्ट्रासोनिक। समय ();

cmMsec = अल्ट्रासोनिक। कन्वर्ट (माइक्रोसेक, अल्ट्रासोनिक:: सीएम);

inMsec = अल्ट्रासोनिक। कन्वर्ट (माइक्रोसेक, अल्ट्रासोनिक:: IN);

// Exibe की जानकारी में कोई सीरियल मॉनिटर नहीं है

सीरियल.प्रिंट ("डिस्टेंसिया ईएम सेमी:");

सीरियल.प्रिंट (cmMsec);

सीरियल.प्रिंट ("- डिस्टेंसिया एम पोलेगाडस:");

Serial.println (inMsec);

स्ट्रिंग डेटा = स्ट्रिंग (cmMsec);

Serial.println (डेटा);

चरण 2: मोंटांडो और लिक्सीरा

अगोरा, वामोस मोंटार और लिक्सीरा इंटेलिजेंट। Precisaremos conectar या सेंसर ultrassônico no "teto" da lixeira। पैरा ओ उदाहरण, यूजई उम काबो ए फिटा आइसोलेंट। एम सेगुइडा, टेम्पोस क्यू मेदिर ए डिस्टेंशिया इनिशियल, पैरा सेबर ओ वेलोर पैरा ए लिक्ज़ेरा वज़िया। नो मेउ कासो, फोई डे 26, 3 सेमी। एसे ई ओ वेलोर क्यू विचारआर्मोस पैरा उमा लिक्सेरा वजिया।

पैरा सिमुलाकाओ, विस्टो क्यू नो पोसुओ माईस डे उम सेंसर अल्ट्रासोनिको, फॉई फीटो उम अल्गोरिटमो पैरा साल्वर रैंडमिकामेंट ए डिस्टेंसिया लिडा एम 4 लिक्सीरास अलग।

// सिमुलैंडो 4 लिक्सीरास

लंबी लिक्सीराआईडी;

शून्य लूप () {

लिक्सीराआईडी = यादृच्छिक (1, 5);

}

चरण 3: Para a Nuvem. अपलोड करें

अगोरा, प्रीसीसमोस एनवीयर एस्टेस डैडोस पैरा ए न्यूवेम। यू एस्कोलही ओ थिंगस्पीक, द्वारा परिचित कॉम ओ मेस्मो। प्राइमिरामेंटे, यह आवश्यक है कि आगे क्या करें, रिसेबेंडो 4 पैरामेट्रोस, रेफरेंस एओ वॉल्यूम डे कैडा लिक्सेरा।

पैरा कनेक्टर और थिंगस्पीक कॉम पर, यह आवश्यक है कि नीमेरो दा एपीआई डू कैनाल क्रियोडो। Siga os passos descritos कोई साइट अधिकारी नहीं है।

De Volta aplicação, vamos utilizar a biblioteca ESP8266WiFi.h para efetuar conexão com o ThingSpeak, e transferir os dados.

प्राइमिरामेंटे, उमा फनकाओ पैरा एफेटुअर कोनेक्सो कॉम ए रेडे (डिफिना प्रीविएमेंट डुआस वेरिएविस, एसएसआईडी ई पास , कंटेंडो ओ आइडेंटिफाडोर ई ए सेन्हा डे सुआ रेडे)।

शून्य कनेक्ट वाईफाई () {

Serial.print("कनेक्ट कर रहा है"+ *ssid);

वाईफाई.बेगिन (एसएसआईडी, पास);

जबकि (WiFi.status() != WL_CONNECTED) {

देरी (500);

सीरियल.प्रिंट ("।");

}

सीरियल.प्रिंट्लन ("");

Serial.print ("कनेक्टैडो ना रेडे");

सीरियल.प्रिंट्लन (एसएसआईडी);

सीरियल.प्रिंट ("आईपी:");

Serial.println (वाईफाई.लोकलआईपी ());

}

दुरांटे या सेटअप, टेंटामोस एफ़ेटुअर ए कॉन्टेक्साओ कॉम ए रेडे।

व्यर्थ व्यवस्था() {

सीरियल.बेगिन (९६००);

Serial.println ("लेंडो डैडोस डू सेंसर…");

// कनेक्टैंडो या वाई-फाई

कनेक्ट वाईफाई ();

}

ई, पैरा एनवीयर ओएस डैडोस पैरा ओ थिंगस्पीक, बस्ता अबिर उमा कोनेक्सो एचटीटीपी पैड्रो, पासांडो ओ नेमेरो दा एपीआई ई ओएस पैरामेट्रोस।

शून्य प्रेषणडेटा (फ्लोट सेमीएमएसईसी, लंबी आईडी) {

अगर (क्लाइंट.कनेक्ट (सर्वर, 80)) {

Serial.println ("एनविआंडो डैडोस पैरा ओ थिंगस्पीक");

स्ट्रिंग पोस्टस्ट्र = apiKey;

पोस्टस्ट्र + = "और फ़ील्ड";

पोस्टस्ट्र + = आईडी;

पोस्टस्ट्र + = "=";

पोस्टस्ट्र + = स्ट्रिंग (सेमीएमएसईसी);

पोस्टस्ट्र + = "\r\n\r\n";

सीरियल.प्रिंट्लन (पोस्टस्ट्र);

क्लाइंट.प्रिंट ("पोस्ट / अपडेट HTTP / 1.1 / n");

क्लाइंट.प्रिंट ("होस्ट: api.thingspeak.com\n");

क्लाइंट.प्रिंट ("कनेक्शन: बंद करें / n");

client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n");

client.print ("सामग्री-प्रकार: एप्लिकेशन / x-www-form-urlencoded / n");

क्लाइंट.प्रिंट ("सामग्री-लंबाई:");

क्लाइंट.प्रिंट (postStr.length ());

क्लाइंट.प्रिंट ("\ n / n");

क्लाइंट.प्रिंट (पोस्टस्ट्र);

देरी (1000);

}

क्लाइंट.स्टॉप ();

}

ओ प्रिमेइरो पैरामेट्रो कॉरेस्पोन्डर डिस्टेंसिया एम सेंटिमेट्रोस एनकॉन्ट्राडा पेलो सेंसर अल्ट्रासोनिको। ओ सेगुंडो पैरामेट्रो ई ओ आईडी दा लिक्सेरा क्यू फोई लिडा (क्यू फोई गेराडो रैंडमिकामेंटे, उम नेमेरो डे 1 ए 4)।

O ID da lixeira सर्व करें também para identificar para qual campo será feito o upload do valor lido.

चरण 4: रिकूपरंडो डैडोस डू थिंगस्पीक

ओ थिंगस्पीक परमिट एफ़ेटुअर लिटुरा डॉस डैडोस डो सेउ कैनाल, एट्रावेस डे उम सर्विको रिटॉर्नेंडो उम जेएसओएन। जैसा कि विभिन्न प्रकार के पैरा लिटुरा डो फीड डू सेउ कैनाल एस्ताओ डिस्क्रिटास एक्वी:

www.mathworks.com/help/thingspeak/get-a-ch…

नेस्ट प्रोजेक्टो, ऑप्टो-से पोर लेर डाइरेटामेंटे ओएस डैडोस डे कैडा कैंपो। इस संदर्भ में URL पर जाएं:

api.thingspeak.com/channels/CHANNEL_ID/fields/FIELD_NUMBER/last.json?api_key=API_KEY&status=true

Cada campo está descrito no link infoado previamente. ऑस माईस इम्पोर्टेन्सेस पैरा ओ प्रोजेटो साओ:

  • CHANNEL_ID: número do seu canal
  • FIELD_NUMBER: o número do campo
  • API_KEY: ए चेव डे एपीआई डू सेउ कैनाल

यह एक यूआरएल है जिसे एंड्रॉइड के लिए इस्तेमाल किया जा सकता है, इसके लिए आप थिंगस्पीक कर सकते हैं।

चरण 5: क्रिआंडो ए एप्लिकाकाओ एंड्रॉइड

कोई एंड्रॉइड स्टूडियो नहीं, क्राय उम नोवो प्रोजेटो एंड्रॉइड। पैरा o correto funcionamento da aplicação, é necessário configurar as permissões abaixo no AndroidManifest.

गूगल मैप्स के लिए उपयोग की जाने वाली वस्तुएँ, आवश्यक रूप से गूगल पर उपलब्ध हैं। Siga os passos descritos no link Obter chave de API.

उमा वेज़ कॉम अ चेव, वोक देवे टैम्बेम कॉन्फिगुरा-ला ना एप्लीकासाओ।

Google मानचित्र-आधारित API के लिए API कुंजी को एक स्ट्रिंग संसाधन के रूप में परिभाषित किया गया है।

(फ़ाइल "res/values/google_maps_api.xml" देखें)।

ध्यान दें कि एपीआई कुंजी एपीके पर हस्ताक्षर करने के लिए उपयोग की जाने वाली एन्क्रिप्शन कुंजी से जुड़ी है। आपको प्रत्येक एन्क्रिप्शन कुंजी के लिए एक अलग API कुंजी की आवश्यकता है, जिसमें रिलीज़ कुंजी भी शामिल है जिसका उपयोग प्रकाशन के लिए APK पर हस्ताक्षर करने के लिए किया जाता है। आप डिबग के लिए कुंजियों को परिभाषित कर सकते हैं और src/debug/ और src/release/में लक्ष्य जारी कर सकते हैं।

<मेटा-डेटा

android:name="com.google.android.geo. API_KEY"

android:value="@string/google_maps_key" />

AndroidManifest anexado ao projeto को पूरा करें।

एन

चरण 6: Recuperando O Feed No Android

कोई एंड्रॉइड नहीं, मुख्य गतिविधि, क्राय 4 वेरिएविस पैरा आइडेंटिफ़ायर कैडा उम डॉस कैनैस डू थिंगस्पीक ए सेरम लिडोस:

निजी स्ट्रिंग url_a = "https://api.thingspeak.com/channels/429823/fields/1/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true"; निजी स्ट्रिंग url_b = "https://api.thingspeak.com/channels/429823/fields/2/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true"; निजी स्ट्रिंग url_c = "https://api.thingspeak.com/channels/429823/fields/3/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true"; निजी स्ट्रिंग url_d = "https://api.thingspeak.com/channels/429823/fields/4/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true";

पैरा एफ़ेटुअर ए लेटुरा डॉस डैडोस, इरेमोस यूटिलिज़र उमा क्लासे डू एंड्रॉइड स्पेसिफिक, चामाडा JSONObject। मैस उमा वेज़, वामोस क्रिअर उम ओब्जेतो पैरा काडा यूआरएल:

JSONObject प्रतिक्रिया लिक्सीराए; JSONObject प्रतिक्रिया लिक्सीराबी; JSONObject प्रतिक्रिया लिक्सीरासी; JSONObject प्रतिक्रिया लिक्सीराडी;

पैरा अब्रीर ए कॉन्क्साओ कॉम एज़ urls, वामोस यूसर क्रिअर उमा क्लास ऑक्जिलियर, चमाडा एचटीपीजेसनपार्सर। इस पर प्रतिक्रिया दी गई है और अब तक इस पर विचार किया जा रहा है यूआरएल, एफ़ेटुअर लेइटुरा डॉस डैडोस एनकॉन्ट्राडोस, ई रिटोरनर या ओब्जेटो जेएसओएन मोंटाडो।

सार्वजनिक JSONObject makeHttpRequest (स्ट्रिंग यूआरएल, स्ट्रिंग विधि, मानचित्र पैराम्स) {

प्रयत्न {

उरी.बिल्डर बिल्डर = नया उरी.बिल्डर (); यूआरएल urlObj; स्ट्रिंग एन्कोडेड पैराम्स = ""; if (params != null) { for (Map. Entry entry: params.entrySet ()) {builder.appendQueryParameter(entry.getKey(), entry.getValue()); } } अगर (builder.build().getEncodedQuery() != null) {encodedParams =builder.build().getEncodedQuery();

}

अगर ("प्राप्त करें। बराबर (विधि)) {url = url + "?" + एन्कोडेड पैराम्स; urlObj = नया यूआरएल (यूआरएल); urlConnection = (HttpURLConnection) urlObj.openConnection (); urlConnection.setRequestMethod (विधि);

} अन्यथा {

urlObj = नया यूआरएल (यूआरएल); urlConnection = (HttpURLConnection) urlObj.openConnection (); urlConnection.setRequestMethod (विधि); urlConnection.setRequestProperty ("सामग्री-प्रकार", "एप्लिकेशन/x-www-form-urlencoded"); urlConnection.setRequestProperty("Content-Length", String.valueOf(encodedParams.getBytes().length)); urlConnection.getOutputStream ()। लिखें (encodedParams.getBytes ()); } // सर्वर से कनेक्ट करें urlConnection.connect (); // प्रतिक्रिया पढ़ें = urlConnection.getInputStream (); BufferedReader रीडर = नया BufferedReader (नया इनपुटस्ट्रीम रीडर (है)); स्ट्रिंगबिल्डर एसबी = नया स्ट्रिंगबिल्डर (); स्ट्रिंग लाइन;

// प्रतिक्रिया को पार्स करें

जबकि ((लाइन = रीडर। रीडलाइन ())! = शून्य) {एसबी.एपेंड (लाइन + "\ n"); } बंद है(); json = sb.toString (); // प्रतिक्रिया को JSON ऑब्जेक्ट jObj = new JSONObject (json) में बदलें;

} पकड़ें (असमर्थित एन्कोडिंग अपवाद ई) {

ई.प्रिंटस्टैकट्रेस (); } कैच (प्रोटोकॉल एक्सेप्शन ई) { ई.प्रिंटस्टैकट्रेस (); } कैच (IOException e) { e.printStackTrace (); } पकड़ें (JSONException e) { Log.e ("JSON पार्सर", "डेटा पार्स करने में त्रुटि" + e.toString ()); } पकड़ें (अपवाद ई) { Log.e ("अपवाद", "डेटा पार्स करने में त्रुटि" + e.toString ()); }

// JSON ऑब्जेक्ट लौटाएं

नौकरी वापसी;

}

}

डी वोल्टा ए एटीविडेड प्रिंसिपल, वामोस एफेटुअर ए चामाडा s urls de forma assíncrona, escrevendo este código dentro do método doInBackground।

@Override संरक्षित स्ट्रिंग doInBackground (स्ट्रिंग … पैराम्स) { HttpJsonParser jsonParser = नया HttpJsonParser ();

responseLixeiraA = jsonParser.makeHttpRequest(url_a, "GET", null);

responseLixeiraB = jsonParser.makeHttpRequest(url_b, "GET", null); responseLixeiraC = jsonParser.makeHttpRequest(url_c, "GET", null); responseLixeiraD = jsonParser.makeHttpRequest(url_d, "GET", null);

वापसी शून्य;}

पोस्ट एक्सक्यूट पर एंड्रॉइड पासा पैरा ओ को नियंत्रित करें। नेस्टे मेटोडो, वामोस क्रिअर ओएस ओब्जेटोस लिक्सीरा, ई पॉपुलर कॉम ओएस डैडोस रिकुपेरैडोस डू थिंगस्पीक:

संरक्षित शून्य onPostExecute (स्ट्रिंग परिणाम) {pDialog.dismiss (); runOnUiThread (नया रननेबल () {सार्वजनिक शून्य रन () {

// लिस्ट व्यू लिस्ट व्यू = (लिस्ट व्यू) findViewById (R.id.feedList);

मुख्य दृश्य देखें =(देखें)findViewById(R.id.activity_main); अगर (सफलता == 1) {कोशिश करें {//Cria FeedDetail पैरा काडा लिक्सीरा लिक्सीरा फीडडिटेल्स1 = नया लिक्सीरा (); Lixeira FeedDetails2 = नया Lixeira (); Lixeira FeedDetails3 = नया Lixeira (); Lixeira FeedDetails4 = नया Lixeira ();

FeedDetails1.setId ('ए');

FeedDetails1.setPesoLixo(Double.parseDouble(responseLixeiraA.getString(KEY_FIELD1))); FeedDetails1.setVolumeLixo(Double.parseDouble(responseLixeiraA.getString(KEY_FIELD1)));

FeedDetails2.setId ('बी');

FeedDetails2.setPesoLixo(Double.parseDouble(responseLixeiraB.getString(KEY_FIELD2))); FeedDetails2.setVolumeLixo(Double.parseDouble(responseLixeiraB.getString(KEY_FIELD2)));

FeedDetails3.setId ('सी');

FeedDetails3.setPesoLixo(Double.parseDouble(responseLixeiraC.getString(KEY_FIELD3))); FeedDetails3.setVolumeLixo(Double.parseDouble(responseLixeiraC.getString(KEY_FIELD3)));

FeedDetails4.setId ('डी');

FeedDetails4.setPesoLixo(Double.parseDouble(responseLixeiraD.getString(KEY_FIELD4))); FeedDetails4.setVolumeLixo(Double.parseDouble(responseLixeiraD.getString(KEY_FIELD4)));

FeedList.add(feedDetails1);

FeedList.add(feedDetails2); FeedList.add(feedDetails3); FeedList.add(feedDetails4);

// कैलकुला डैडोस दास लिक्सीरास

SmartBinService कैलकुलेटर = नया SmartBinService (); कैलकुलेटर.मोंटालिस्टा लिक्सीरास (फीडलिस्ट);

// रेकुपेरा घटक

TextView createDate = (TextView) mainView.findViewById(R.id.date); ListView listaDeLixeiras = (ListView) findViewById(R.id.lista); एडेप्टर.एडऑल (फीडलिस्ट);

// डेटा वास्तविक

दिनांक वर्तमान समय = कैलेंडर। getInstance ()। getTime (); SimpleDateFormat simpleDate = नया SimpleDateFormat ("dd/MM/yyyy"); स्ट्रिंग करंटडेट = simpleDate.format (वर्तमान समय); createDate.setText (KEY_DATE + currentDate + ""); listaDeLixeiras.setAdapter (एडाप्टर);

} पकड़ें (JSONException e) {

ई.प्रिंटस्टैकट्रेस (); }

} अन्यथा {

Toast.makeText(MainActivity.this, "डेटा लोड करते समय कुछ त्रुटि हुई", Toast. LENGTH_LONG)। शो ();

}

} }); }

अगोरा, इनिशियल डू एप्लिकेटिवो, सेरो लिस्टैडोस ओएस डैडोस डी कैडा लिक्सीरा।

चरण 7: मोस्ट्रांडो नो मैपा

मोस्ट्रांडो नो मैपा
मोस्ट्रांडो नो मैपा

आंदा ना अतिविदेड प्रिंसिपल, वामोस एडिसियोनार उमा अकाओ ए सेर रिलेसियोनाडा एओ बोताओ मैपा, ना तेल इनिशियल।

/** कॉल किया जाता है जब उपयोगकर्ता Mapa बटन टैप करता है */ public void openMaps(View view) {इरादा आशय = नया इरादा (यह, LixeiraMapsActivity.class);

// Passa a lista de lixeiras

बंडल बंडल = नया बंडल (); बंडल.पुटपार्सलेबलअरेलिस्ट ("लिक्सीरास", फीडलिस्ट); इंटेंट.पुटएक्स्ट्रा (बंडल);

स्टार्टएक्टिविटी (इरादा);

}

कोई नक्शा नहीं, temos três atividades a executar:

  1. marcar a posição atual do caminha de lixo
  2. मार्कर ओएस पोंटोस संवाददाता एक कैडा लिक्सीरा नो मैपा
  3. ट्रैक ए रोटा एंट्रे ओएस पोंटोसी

पैरा एक्जीक्यूटर ओएस पासोस एसिमा, वामोस यूसर ए एपीआई गूगल डायरेक्शन। para desenhar as rotas, foram seguidos os passos do tutorial Google Map Android API V2 में Google दिशा-निर्देशों का उपयोग करते हुए दो स्थानों के बीच ड्राइविंग मार्ग निर्देश आरेखित करना

प्रिमिरो, वामोस क्रिअर लोकलिडेड्स पैरा कैडा उम डॉस पोंटोस क्यू देसेजामोस मार्कर:

// स्थान

निजी लैटलिंग करंट;

निजी लैटिन लिक्सेराए; निजी लैटिन लिक्सेराबी; निजी लैटिन लिक्सेरासी; निजी लैटिन लिक्सेराडी;.

पैरा एडिकियनर ए पॉसीकाओ एटुअल नो मैपा, फोई क्रिआडो ओ मेटोडो:

Private void checkLocationandAddToMap() {// जाँच कर रहा है कि क्या उपयोगकर्ता ने अनुमति दी है अगर (ActivityCompat.checkSelfPermission (यह, android. Manifest.permission. ACCESS_FINE_LOCATION)!= PackageManager. PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android. Manifest.permission. ACCESS_COARSE_LOCATION) != PackageManager. PERMISSION_GRANTED) {// स्थान अनुमति का अनुरोध करना वापसी; }

// Fus. का उपयोग करके अंतिम ज्ञात स्थान प्राप्त करना

स्थान स्थान = स्थान सेवा. FusedLocationApi.getLastLocation(googleApiClient);

// MarkerOptions का उपयोग एक नया Marker बनाने के लिए किया जाता है। आप MarkerOptions के साथ स्थान, शीर्षक आदि निर्दिष्ट कर सकते हैं

यह। वर्तमान = नया अक्षांश (स्थान। प्राप्त अक्षांश (), स्थान। प्राप्त देशांतर ()); मार्करऑप्शन मार्करऑप्शन = नया मार्करऑप्शन ()। स्थिति (वर्तमान)। शीर्षक ("पोसीकाओ एटुअल");

// मानचित्र पर बनाए गए मार्कर को जोड़ना, कैमरे को स्थिति में ले जाना

MarkOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory. HUE_GREEN)); System.out.println ("+++++++++++++ Passei aqui! +++++++++++++"); mMap.addMarker (markerOptions);

// कैमरे को तुरंत 15 के ज़ूम के साथ स्थान पर ले जाएं।

mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(वर्तमान, 15));

// ज़ूम इन करें, कैमरे को एनिमेट करें।

mMap.animateCamera(CameraUpdateFactory.zoomTo(14), 2000, null);

}

एम सेगुइडा, पैरा कैडा लिक्सीरा, फोरम क्रायडोस मेटोडोस सिमिलिस एओ अबाइक्सो:

निजी शून्य addBinALocation() {// जांच कर रहा है कि उपयोगकर्ता ने अनुमति दी है या नहीं (ActivityCompat.checkSelfPermission (यह, android. Manifest.permission. ACCESS_FINE_LOCATION)!= PackageManager. PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, android. Manifest.permission. ACCESS_COARSE_LOCATION) != PackageManager. PERMISSION_GRANTED) {// स्थान अनुमति का अनुरोध करना वापसी; }

//प्राका दा एस्टाकाओ

दोहरा अक्षांश = -19.9159578; दोहरा देशांतर = -43.9387856; this.lixeiraA = नया अक्षांश (अक्षांश, देशांतर);

मार्करऑप्शन मार्करऑप्शन = नया मार्करऑप्शन ()। स्थिति (लिक्सेराए)। शीर्षक ("लिक्सीरा ए");

MarkOptions.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory. HUE_RED)); mMap.addMarker (markerOptions); }

एज़ पॉज़िस डे लैटिट्यूड ई लॉन्गिट्यूड डे कैडा लिक्सीरा फ़ोरम रिकुपरदास एट्रैवेस डो प्रोप्रियो गूगल मैप्स, ई डिक्साडास फिक्सस नो कोडिगो। आइडियलमेंटे, एस्टेस वेलोरेस फिकारियम साल्वोस एम उम बैंको डे डैडोस (पोर उदाहरण फायरबेस)। सेरा ए प्राइमिरा इवोलुकाओ डेस्टे प्रोजेटो!

ओ अल्टिमो पासो अगोरा ई ट्रेसर एज़ रोटास एंट्रे ऑस पोंटोस। पैरा ताल, उम कॉन्सिटो म्यूइटो इम्पोर्टेन्टे, ई क्यू सेरा यूटिलिज़ैडो नेस्ट प्रोजेटो, साओ ऑस वेपॉइंट्स!

फ़ोई क्रिआडो उम मेतोदो पैरा ट्रेसर ए रोटा एंट्रे डोइस डैडोस पोंटोस:

निजी स्ट्रिंग getDirectionsUrl (LatLng मूल, LatLng गंतव्य, सूची मार्ग बिंदु सूची) {

// मार्ग की उत्पत्ति

स्ट्रिंग str_origin = "origin="+origin.latitude+", "+origin.longitude;

// मार्ग का गंतव्य

स्ट्रिंग str_dest = "गंतव्य ="+dest.latitude+", "+dest.longitude;

// मार्ग के साथ वेपॉइंट

//waypoints=optimize:true|-19.9227365, -43.9473546|-19.9168006, -43.9361124 स्ट्रिंग वेप्वाइंट्स = "waypoints=optimize:true"; के लिए (LatLng बिंदु: वेपॉइंट्सलिस्ट) {वेपॉइंट्स + = "|" + बिंदु। अक्षांश + "," + बिंदु। देशांतर; }

// सेंसर सक्षम

स्ट्रिंग सेंसर = "सेंसर = झूठा";

// वेब सेवा के लिए मापदंडों का निर्माण

स्ट्रिंग पैरामीटर = str_origin+"&"+str_dest+"&"+sensor + "&" + Waypoints;

// आउटपुट स्वरूप

स्ट्रिंग आउटपुट = "जेसन";

// वेब सेवा के लिए url का निर्माण

स्ट्रिंग url = "https://maps.googleapis.com/maps/api/directions/"+output+"?"+पैरामीटर; System.out.println ("++++++++++++++"+url);

वापसी यूआरएल;

}

ई, पोर फिम, जुंटांडो टुडो नो मेटोडो प्रिंसिपल डा क्लासे, ऑनमैपरेडी:

@MapReady पर सार्वजनिक शून्य को ओवरराइड करें (GoogleMap googleMap) {mMap = googleMap;

checkLocationandAddToMap ();

अगर (lixeirasList.get(0).getVolumeLixo() > Lixeira. MIN_VOLUME_GARBAGE

|| lixeirasList.get(0).getPesoLixo()-10 > Lixeira. MIN_SIZE_GARBAGE){ addBinALocation(); } अगर (lixeirasList.get(1).getVolumeLixo() > Lixeira. MIN_VOLUME_GARBAGE || lixeirasList.get(1).getPesoLixo() > Lixeira. MIN_SIZE_GARBAGE){ addBinBLocation(); } अगर (lixeirasList.get(2).getVolumeLixo() > Lixeira. MIN_VOLUME_GARBAGE || lixeirasList.get(2).getPesoLixo() > Lixeira. MIN_SIZE_GARBAGE){ addBinCLocation(); } अगर (lixeirasList.get(3).getVolumeLixo() > Lixeira. MIN_VOLUME_GARBAGE || lixeirasList.get(3).getPesoLixo() > Lixeira. MIN_SIZE_GARBAGE){ addBinDLocation(); }

// मार्ग बनाएं

// Google दिशा-निर्देश API का URL प्राप्त करना

सूची अंक = नया ArrayList (); पॉइंट्स.एड (लिक्सेराबी); पॉइंट्स.एड (लिक्सेरासी); पॉइंट्स.एड (लिक्सेराडी);

स्ट्रिंग url = getDirectionsUrl (वर्तमान, lixeiraA, अंक);

डाउनलोड टास्क डाउनलोड टास्क = नया डाउनलोड टास्क (); // गूगल डायरेक्शन एपीआई downloadTask.execute(url) से json डेटा डाउनलोड करना शुरू करें; }

एक्वी पासामोस एपेनस पेलोस पोंटोस प्रिंसिपिस। ओ कोडिगो कम्प्लीटो डू प्रोजेटो सेरा डिस्पोनिबिलिजाडो पैरा कंसल्टा।

चरण 8: निष्कर्ष

एस्टे फोई उम प्रोजेटो ट्रैबलहैंडो कॉन्सिटोस डी आईओटी, मोस्ट्रेंडो उमा दास वेरियस ओप्सेस डी कोनेक्टर डिस्पोजिटिवोस एट्रैवेस दा नुवेम, ई एफेटुअर टोमाडा डे डिसीज सेम इंटरफेरेंशिया ह्यूमन डायरेटा। एम एनेक्सो, सेग्यूउम वीडियो डू प्रोजेटो कम्प्लीटो, पैरा ilustração, e os fontes das atividades criadas no Android।

सिफारिश की: