Агуулгын хүснэгт:
- Алхам 1: Conectando O Sensor
- Алхам 2: Монтандо ба Ликсейра
- Алхам 3: Para a Nuvem -ийг байршуулна уу
- Алхам 4: Recuperando Dados ThingSpeak хий
- Алхам 5: Криандо ба Андройд аппликейшн
- Алхам 6: Recuperando O Feed No Android
- Алхам 7: Mostrando No Mapa
- Алхам 8: Дүгнэлт
Видео: SmartBin: 8 алхам
2024 Зохиолч: John Day | [email protected]. Хамгийн сүүлд өөрчлөгдсөн: 2024-01-31 10:22
Төсөөлөл нь ямар ч шаардлага хангаагүй, ямар ч шаардлага хангаагүй, хэн ч биш, хэн ч гэсэн тодорхой мэдээлэл өгч чадна.
Пара монтар прожекто, зайлшгүй шаардлагатай:
- NodeMCU
- Ultrassônico de Distancia мэдрэгч
- Caixa de papelão
- Protoboard
- Кабос
- Андройд хувилбар
Алхам 1: Conectando O Sensor
Хамгийн гол нь NODEMCU -ийн хэт мэдрэмтгий мэдрэгчийг ашиглах боломжтой. Тохиромжтой, vamos conectar нь порт үүсгэгч, цуурай, мэдрэгч, D4 ба D3 -ийн NodeMCU портууд юм.
// зүү тоог тодорхойлдог #pino_trigger 2 -ийг тодорхойлно // D4
#тодорхойлох pino_echo 0 // D3
Мэдрэгч, мэдрэгч, сургалтын заавар, FilipeFlop -ийг ашиглах боломжтой.
float cmMsec, inMsec;
урт microsec = хэт авианы. timing ();
cmMsec = ultrasonic.convert (microsec, Ultrasonic:: CM);
inMsec = ultrasonic.convert (microsec, Ultrasonic:: IN);
// Exibe informacoes цуваа дэлгэцгүй
Serial.print ("Distancia em cm:");
Цуваа.хэвлэх (cmMsec);
Serial.print (" - Distancia em polegadas:");
Serial.println (inMsec);
String өгөгдөл = String (cmMsec);
Serial.println (өгөгдөл);
Алхам 2: Монтандо ба Ликсейра
Agora, vamos montar a lixeira inteligente. Precisaremos conectar эсвэл мэдрэгч хэт ягаан туяаны хэт ягаан туяаны мэдрэгч. Жишээлбэл, үүнийг ашиглах боломжтой болно. Энэ тохиолдолд, албан ёсны мэдээлэл, үнэт зүйлсийн талаар мэдээлэл өгөх хэрэгтэй. 26, 3 см -ийн зайтай. Энэ нь маш чухал юм.
Энэ нь хэт мэдрэгчийн хувьд хэт мэдрэгчийн хувьд маш чухал юм.
// Simulando 4 lixeiras
урт lixeiraID;
void loop () {
lixeiraID = санамсаргүй (1, 5);
}
Алхам 3: Para a Nuvem -ийг байршуулна уу
Агра, хамгийн сайн ойлголттой болно. ThingSpeak, танил талууд хоорондоо танилцана уу. Нэвтрүүлгийн суваг, суваг, 4 параметро, дахин лавлах, эсвэл том хэмжээний суваг.
Энэ нь ThingSpeak програмыг ашиглах боломжтой бөгөөд API -ийн сувгийг ашиглах боломжтой болно. Siga os passos descritos ямар ч албан ёсны сайт байхгүй.
Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах Deep volta à aplicação, vamos utilizar a biblioteca ESP8266WiFi.h is a part of conectão com o ThingSpeak, and transferir os os.
Эхний ээлжинд, энэ асуудлыг шийдэхийн тулд (тодорхойлолт хийх, тохируулах нэвтрүүлэх , тодорхойлолт эсвэл тодорхой мэдээлэл авах).
хүчингүй холболтWifi () {
Serial.print ("Холбогдох"+ *ssid);
WiFi.begin (ssid, pass);
байхад (WiFi.status ()! = WL_CONNECTED) {
саатал (500);
Serial.print (".");
}
Serial.println ("");
Serial.print ("Conectado na rede");
Serial.println (ssid);
Serial.print ("IP:");
Serial.println (WiFi.localIP ());
}
Тохиргоо хийх, тохируулах, тохируулах боломжтой.
хүчингүй тохиргоо () {
Цуваа эхлэх (9600);
Serial.println ("Lendo dados do sensor …");
// Wi-Fi эсвэл Conectando
connectWifi ();
}
ThingSpeak, HTTP програмыг ашиглахын тулд та API -ийг ашиглах боломжтой болно.
хүчингүй sendDataTS (float cmMsec, урт id) {
if (client.connect (сервер, 80)) {
Serial.println ("Enviando dados para o ThingSpeak");
String postStr = apiKey;
postStr += "& талбар";
postStr += id;
postStr += "=";
postStr += String (cmMsec);
postStr += "\ r / n / r / n";
Serial.println (postStr);
client.print ("POST /update HTTP /1.1 / n");
client.print ("Хост: api.thingspeak.com / n");
client.print ("Холболт: хаах / n");
client.print ("X-THINGSPEAKAPIKEY:" + apiKey + "\ n");
client.print ("Агуулгын төрөл: application/x-www-form-urlencoded / n");
client.print ("Агуулга-Урт:");
client.print (postStr.length ());
client.print ("\ n / n");
client.print (postStr);
саатал (1000);
}
client.stop ();
}
Параметро нь хэт мэдрэгчтэй ultrasônico харгалзана. Охидын параметро é o ID da lixeira que foi lida (que foi gerado randomicamente, um número de 1 a 4).
O ID da lixeira нь танигдахын тулд чанарын шаардлага хангахуйц үүрэг гүйцэтгэдэг.
Алхам 4: Recuperando Dados ThingSpeak хий
O ThingSpeak -ийн зөвшөөрөгдөх хугацаа нь JSON суваг, сүлжээний үйлчилгээ юм. Хоол тэжээлийн сувгийн суваг өөр өөр байдлаар тайлбарлахад:
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 information previoamente. Энэ нь чухал ач холбогдолтой:
- CHANNEL_ID: сувгийн суваг
- FIELD_NUMBER: Кампу хийх үү
- API_KEY: API сувгийн суваг
Андройд болон ThingSpeak -ийг ашиглахын тулд та URL хаягийг ашиглах боломжтой болно.
Алхам 5: Криандо ба Андройд аппликейшн
Андройд студи байхгүй, Андройд дээр шинэ хувилбарыг үзээрэй. Та AndroidManifest -ийг ашиглахын тулд тохиргоог хийх хэрэгтэй болно.
Google газрын зураг ашиглах, Google -ийг ашиглах шаардлагатай болно. Ямар ч холбоос байхгүй байна.
Тэмдэглэл, тохиргоог тохируулаарай.
Google Газрын зураг дээр суурилсан API-ийн API түлхүүрийг мөрийн эх сурвалж гэж тодорхойлдог.
("Res/values/google_maps_api.xml" файлыг үзнэ үү).
API түлхүүр нь APK -д гарын үсэг зурахад ашигладаг шифрлэлтийн түлхүүртэй холбогдсон болохыг анхаарна уу. Шифрлэх түлхүүр бүрийн хувьд танд өөр API түлхүүр хэрэгтэй бөгөөд үүнд APK -ийг нийтлэхэд гарын үсэг зурахад ашигладаг түлхүүрийг оруулна уу. Та дибаг хийх болон гаргах зорилтуудын түлхүүрүүдийг src/debug/ба src/release/дээр тодорхойлж болно.
<мета өгөгдөл
android: name = "com.google.android.geo. API_KEY"
android: value = "@string /google_maps_key" />
AndroidManifest програмыг өөрөө тохируулах боломжтой.
n
Алхам 6: Recuperando O Feed No Android
Ямар ч Android, MainActivity -ийн үндсэн хуулбарыг ашиглан ThingSpeak -ийг ашиглахын тулд 4 хувилбарыг сонгоно уу:
хувийн String url_a = "https://api.thingspeak.com/channels/429823/fields/1/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true"; хувийн String url_b = "https://api.thingspeak.com/channels/429823/fields/2/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true"; хувийн String url_c = "https://api.thingspeak.com/channels/429823/fields/3/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true"; хувийн String url_d = "https://api.thingspeak.com/channels/429823/fields/4/last.json?api_key="+API_THINGSPEAK_KEY+"&status=true";
Энэ нь Android програм хангамж, JSONObject -ийг ашиглахад маш чухал үүрэг гүйцэтгэдэг. Хязгаарлагдмал URL, URL -ууд:
JSONObject хариуLixeiraA; JSONObject хариуLixeiraB; JSONObject хариуLixeiraC; JSONObject хариуLixeiraD;
Хяналтын комментийг url гэж нэрлэвэл, туслалцаа авах боломжтой, HttpJsonParser. Хариулт нь URL -тай холбоотой бөгөөд энэ нь JSON -ийг ашиглах боломжтой болно.
нийтийн JSONObject makeHttpRequest (String url, String арга, Газрын зургийн параметрүүд) {
оролдох {
Uri. Builder builder = шинэ Uri. Builder (); URL urlObj; String encodedParams = ""; if (params! = null) {for (Map. Entry оруулга: params.entrySet ()) {builder.appendQueryParameter (entry.getKey (), entry.getValue ()); }} if (builder.build (). getEncodedQuery ()! = null) {encodedParams = builder.build (). getEncodedQuery ();
}
if ("GET". тэнцүү (арга)) {url = url + "?" + кодлогдсон Парам; urlObj = шинэ URL (url); urlConnection = (HttpURLConnection) urlObj.openConnection (); urlConnection.setRequestMethod (арга);
} өөр {
urlObj = шинэ URL (url); urlConnection = (HttpURLConnection) urlObj.openConnection (); urlConnection.setRequestMethod (арга); urlConnection.setRequestProperty ("Агуулгын төрөл", "application/x-www-form-urlencoded"); urlConnection.setRequestProperty ("Агуулга-Урт", String.valueOf (encodedParams.getBytes (). урт)); urlConnection.getOutputStream (). бичих (encodedParams.getBytes ()); } // Серверт холбогдох urlConnection.connect (); // Хариултыг уншина уу = urlConnection.getInputStream (); BufferedReader уншигч = шинэ BufferedReader (шинэ InputStreamReader (is)); StringBuilder sb = шинэ StringBuilder (); Мөрний шугам;
// Хариултыг задлан шинжлэх
while ((мөр = уншигч.readLine ())! = null) {sb.append (мөр + "\ n"); } is.close (); json = sb.toString (); // Хариултыг JSON Object jObj = new JSONObject (json) болгон хөрвүүлэх;
} барих (Дэмжигдээгүй EncodingException e) {
e.printStackTrace (); } барих (ProtocolException e) {e.printStackTrace (); } барих (IOException e) {e.printStackTrace (); } catch (JSONException e) {Log.e ("JSON Parser", "Өгөгдлийг задлахад алдаа гарсан" + e.toString ()); } catch (Exception e) {Log.e ("Exception", "Өгөгдлийг задлахад алдаа гарсан" + e.toString ()); }
// JSON объектыг буцаана
буцах jObj;
}
}
Сургалтын удирдагч, удирдагч, вэбсайт, холбоо барих хаягууд.
@Orride хамгаалагдсан String doInBackground (String… params) {HttpJsonParser jsonParser = шинэ HttpJsonParser ();
answerLixeiraA = jsonParser.makeHttpRequest (url_a, "GET", null);
answerLixeiraB = jsonParser.makeHttpRequest (url_b, "GET", null); answerLixeiraC = jsonParser.makeHttpRequest (url_c, "GET", null); responseLixeiraD = jsonParser.makeHttpRequest (url_d, "GET", null);
буцах null;}
InPackExecrando эсвэл Android -ийн дамжуулалтыг тохируулахын тулд onPostExecute програмыг ажиллуулна уу. Neste método, vamos criar os objetos Lixeira, ThingSpeak -ийн алдартай com os dados recuperados:
onPostExecute (String үр дүн) {pDialog.dismiss (); runOnUiThread (шинэ Runnable () {public void run () {
// ListView listView = (ListView) findViewById (R.id.feedList);
MainView харах (View) findViewById (R.id.activity_main); if (амжилт == 1) {оролдох {// Cria feedDetail para cada lixeira Lixeira feedDetails1 = шинэ Lixeira (); Lixeira feedDetails2 = шинэ Lixeira (); Lixeira feedDetails3 = шинэ Lixeira (); Lixeira feedDetails4 = шинэ Lixeira ();
feedDetails1.setId ('A');
feedDetails1.setPesoLixo (Double.parseDouble (answerLixeiraA.getString (KEY_FIELD1))))); feedDetails1.setVolumeLixo (Double.parseDouble (answerLixeiraA.getString (KEY_FIELD1)))));
feedDetails2.setId ('B');
feedDetails2.setPesoLixo (Double.parseDouble (responseLixeiraB.getString (KEY_FIELD2))))); feedDetails2.setVolumeLixo (Double.parseDouble (answerLixeiraB.getString (KEY_FIELD2))));
feedDetails3.setId ('C');
feedDetails3.setPesoLixo (Double.parseDouble (answerLixeiraC.getString (KEY_FIELD3))))); feedDetails3.setVolumeLixo (Double.parseDouble (responseLixeiraC.getString (KEY_FIELD3)))));
feedDetails4.setId ('D');
feedDetails4.setPesoLixo (Double.parseDouble (хариуLixeiraD.getString (KEY_FIELD4)))); feedDetails4.setVolumeLixo (Double.parseDouble (answerLixeiraD.getString (KEY_FIELD4))));
feedList.add (feedDetails1);
feedList.add (feedDetails2); feedList.add (feedDetails3); feedList.add (feedDetails4);
// Calcos dados das lixeiras
SmartBinService тооцоолуур = шинэ SmartBinService (); тооцоолуур.montaListaLixeiras (feedList);
// Recupera бүрэлдэхүүн хэсгүүд
TextView createDate = (TextView) mainView.findViewById (R.id.date); ListView listaDeLixeiras = (ListView) findViewById (R.id.lista); adapter.addAll (feedList);
// Мэдээлэл
CurrentTime огноо = Calendar.getInstance (). GetTime (); SimpleDateFormat simpleDate = шинэ SimpleDateFormat ("dd/MM/yyyy"); String currentDate = simpleDate.format (currentTime); createDate.setText (KEY_DATE + currentDate + ""); listaDeLixeiras.setAdapter (адаптер);
} барих (JSONException e) {
e.printStackTrace (); }
} өөр {
Toast.makeText (MainActivity.this, "Өгөгдлийг ачаалах явцад зарим алдаа гарлаа", Toast. LENGTH_LONG).show ();
}
} }); }
Агра, албан ёсны мэдээлэл, албан ёсны жагсаалтууд дээр үндэслэсэн болно.
Алхам 7: Mostrando No Mapa
Хариуцлага тооцохгүй бол үндсэн мэдээлэл, албан ёсны мэдээлэл байхгүй байна.
/ ** Хэрэглэгч Mapa товчлуурыг дарахад дууддаг*/ public void openMaps (View view) {Зорилго = шинэ зорилго (энэ, LixeiraMapsActivity.class);
// Passa a lista de lixeiras
Багцалсан багц = шинэ багц (); bundle.putParcelableArrayList ("lixeiras", feedList); aim.putExtras (багц);
startActivity (зорилго);
}
Гүйцэтгэх үүрэг гүйцэтгэдэг хүн байхгүй:
- marcar a posição atual do caminha de lixo
- marcar os pontos газрын зураг дээр сурвалжлага хийдэг
- traçar a rota entre os pontos
Google -ийн удирдамжийг ашиглахын тулд та API -г ашиглах боломжтой болно. Google газрын зургийн Android API V2 дээрх Google -ийн чиглэлийг ашиглан хоёр байршлын хоорондох маршрутын чиглэлийг зурах.
Primeiro, vamos criar localidades para cada um dos pontos que desejamos marcar:
// Байршил
хувийн LatLng гүйдэл;
хувийн LatLng lixeiraA; хувийн LatLng lixeiraB; хувийн LatLng lixeiraC; хувийн LatLng lixeiraD;.
Хариуд нь ямар ч газрын зураг, газрын зураг дээр:
private void checkLocationandAddToMap () {// Хэрэглэгч зөвшөөрсөн эсэхийг шалгах (ActivityCompat.checkSelfPermission (энэ, android. Manifest.permission. ACCESS_FINE_LOCATION)! = PackageManager. PERMISSION_GRANTED && ActivityCompat.checkSelfPerm ACCESS_COARSE_LOCATION)! = PackageManager. PERMISSION_GRANTED) {// Байршлын зөвшөөрлийг хүсч байна ActivityCompat.requestPermissions (энэ, шинэ String {android. Manifest.permission. ACCESS_FINE_LOCATION}, LOCATION_REQUEST_CODE); буцах; }
// Fus ашиглан сүүлийн мэдэгдэж буй байршлыг татаж байна
Байршлын байршил = LocationServices. FusedLocationApi.getLastLocation (googleApiClient);
// MarkerOptions нь шинэ Marker үүсгэхэд ашиглагддаг. MarkerOptions -ийн тусламжтайгаар та байршил, гарчиг зэргийг зааж өгч болно.
this.current = шинэ LatLng (location.getLatitude (), location.getLongitude ()); MarkerOptions markerOptions = шинэ MarkerOptions (). Байрлал (одоогийн). Гарчиг ("Posicaão atual");
// Үүсгэсэн тэмдэглэгээг газрын зураг дээр нэмж, камерыг байрлалд шилжүүлнэ
markerOptions.icon (BitmapDescriptorFactory.defaultMarker (BitmapDescriptorFactory. HUE_GREEN)); System.out.println ("+++++++++++++++++++++++++++"); mMap.addMarker (markerOptions);
// Камерыг 15 томруулалтаар шууд байрлал руу зөөнө үү.
mMap.moveCamera (CameraUpdateFactory.newLatLngZoom (одоогийн, 15));
// Томруулж, камерыг хөдөлгөөнд оруулна уу.
mMap.animateCamera (CameraUpdateFactory.zoomTo (14), 2000, null);
}
Em seguida, para cada lixeira, foram criados métodos similares ao abaixo:
private void addBinALocation () {// Хэрэглэгч зөвшөөрөл өгсөн эсэхийг шалгах (ActivityCompat.checkSelfPermission (энэ, android. Manifest.permission. ACCESS_FINE_LOCATION)! = PackageManager. PERMISSION_GRANTED && ActivityCompat.checkSperPermission (энэ, ACCESS_COARSE_LOCATION)! = PackageManager. PERMISSION_GRANTED) {// Байршлын зөвшөөрлийг хүсч байна ActivityCompat.requestPermissions (энэ, шинэ String {android. Manifest.permission. ACCESS_FINE_LOCATION}, LOCATION_REQUEST_CODE); буцах; }
// Praça da Estação
давхар өргөрөг = -19.9159578; давхар уртраг = -43.9387856; this.lixeiraA = шинэ LatLng (өргөрөг, уртраг);
MarkerOptions markerOptions = шинэ MarkerOptions (). Байрлал (lixeiraA). Гарчиг ("Lixeira A");
markerOptions.icon (BitmapDescriptorFactory.defaultMarker (BitmapDescriptorFactory. HUE_RED)); mMap.addMarker (markerOptions); }
Өргөрөг ба уртрагийн хувьд cada lixeira foram recuperadas através do próprio Google газрын зураг, e deixadas fixas no código. Idealmente, estes vales ficariam salvos em um banco de dados (жишээ нь Firebase гэх мэт). Төсөөлж болно!
Тайлбарыг буцааж англи (Америкийн Нэгдсэн Улс) руу орчуулах Орчуулах O último passo agora é traçar as rotas entre os pontos. Төсөөлөл, чухал ач холбогдолтой, хамгийн чухал зүйл бол замын цэгүүд юм!
Фэйсбүүк хийх нь маш чухал юм:
хувийн String getDirectionsUrl (LatLng гарал үүсэл, LatLng dest, Замын цэгүүдийн жагсаалт) {
// Маршрутын гарал үүсэл
String str_origin = "үүсэл ="+гарал үүсэл. "+", "+Гарал үүсэл.
// Маршрутын чиглэл
String str_dest = "destination ="+dest.latitude+","+dest.longitude;
// Маршрутын дагуух цэгүүд
//waypoints=optimize:true|-19.9227365, -43.9473546 | -19.9168006, -43.9361124 String waypoints = "waypoints = optimize: true"; for (LatLng point: waypointsList) {замын цэг += "|" + цэг.хөндлөн + "," + цэгийн.урам; }
// Мэдрэгчийг идэвхжүүлсэн
String sensor = "мэдрэгч = худал";
// Вэб үйлчилгээний параметрүүдийг бий болгох
String параметрүүд = str_origin+"&"+str_dest+"&"+мэдрэгч+"&"+замын цэгүүд;
// Гаралтын формат
String гаралт = "json";
// Вэб үйлчилгээний URL хаягийг бий болгох
String url = "https://maps.googleapis.com/maps/api/directions/"+output+"?"+parameters; System.out.println ("++++++++++++++"+url);
буцах url;
}
E, por fim, juntando tudo no método asosiy da classe, onMapReady:
OnMapReady (GoogleMap googleMap) {mMap = googleMap;
checkLocationandAddToMap ();
if (lixeirasList.get (0).getVolumeLixo ()> Lixeira. MIN_VOLUME_GARBAGE
|| lixeirasList.get (0).getPesoLixo ()-10> Lixeira. MIN_SIZE_GARBAGE) {addBinALocation (); } if (lixeirasList.get (1).getVolumeLixo ()> Lixeira. MIN_VOLUME_GARBAGE || lixeirasList.get (1).getPesoLixo ()> Lixeira. MIN_SIZE_GARBAGE) {addBinBLocation (); } if (lixeirasList.get (2).getVolumeLixo ()> Lixeira. MIN_VOLUME_GARBAGE || lixeirasList.get (2).getPesoLixo ()> Lixeira. MIN_SIZE_GARBAGE) {addBinCLocation (); } if (lixeirasList.get (3).getVolumeLixo ()> Lixeira. MIN_VOLUME_GARBAGE || lixeirasList.get (3).getPesoLixo ()> Lixeira. MIN_SIZE_GARBAGE) {addBinDLocation (); }
// Маршрут зур
// Google Directions API руу URL авах
Жагсаалтын цэгүүд = шинэ ArrayList (); оноо нэмнэ (lixeiraB); оноо нэмнэ (lixeiraC); оноо нэмнэ (lixeiraD);
String url = getDirectionsUrl (одоогийн, lixeiraA, оноо);
DownloadTask downloadTask = шинэ DownloadTask (); // Google Directions API downloadTask.execute (url) -аас json өгөгдлийг татаж эхлэх; }
Aqua passamos apenas pelos pontos principais. Зөвлөмжийг боловсруулж дуусгах болно.
Алхам 8: Дүгнэлт
IoT, mostrando uma das várias opções de conectar dispositivos através da nuvem, efetuar tomada de decisões sem interferência humana direta. Нэмэлт тайлбарлахдаа, Android -ийг ашиглах боломжтой.
Зөвлөмж болгож буй:
Ухаалаг мотоциклийн HUD прототип (алхам алхмаар навигаци хийх гэх мэт): 9 алхам
Ухаалаг мотоциклийн HUD прототип (ээлжлэн навигаци хийх гэх мэт): Сайн байна уу! Энэхүү зааварчилгаа нь миний мотоциклийн дуулга дээр суурилуулах зориулалттай HUD (Heads-Up Display) платформыг хэрхэн бүтээж, бүтээсэн тухай түүх юм. Үүнийг " газрын зураг " уралдааны хүрээнд бичсэн болно. Харамсалтай нь би үүнийг бүрэн дуусгаж чадаагүй
Arduino машины урвуу зогсоолын дохиоллын систем - Алхам алхамаар: 4 алхам
Arduino машины урвуу зогсоолын дохиоллын систем | Алхам алхамаар: Энэ төсөлд би Arduino UNO болон HC-SR04 хэт авианы мэдрэгч ашиглан Arduino автомашины урвуу зогсоолын мэдрэгчийн энгийн хэлхээг зохион бүтээнэ. Энэхүү Arduino дээр суурилсан Автомашины Урвуу дохиоллын системийг бие даасан навигаци, роботын хүрээ болон бусад хүрээний зориулалтаар ашиглаж болно
Arduino Uno ашиглан акустик левитаци Алхам алхам (8 алхам): 8 алхам
Arduino Uno-тай акустик Levitation Алхам алхамаар (8 алхам): хэт авианы дууны дамжуулагч L298N Dc эмэгтэй адаптерийн эрэгтэй тэжээлийн тэжээлийн хангамж Arduino UNOBreadboard Энэ нь хэрхэн ажилладаг вэ: Нэгдүгээрт, та кодыг Arduino Uno-д байршуулдаг (энэ нь дижитал төхөөрөмжөөр тоноглогдсон микроконтроллер юм. кодыг хөрвүүлэх аналог портууд (C ++)
SmartBin: 4 алхам
SmartBin: Энэхүү төслийн гол зорилго нь дор хаяж нэг Raspberry Pi ашигладаг электрон төхөөрөмж бий болгох явдал юм. Баг нь ирээдүйн 5 механик инженер, нэг автоматжуулалтын инженерээс бүрдэнэ. Манай төсөл бол нээж, хаадаг хогийн сав хийхээс бүрдэнэ
DIY Arduino робот гар, Алхам алхам: 9 алхам
DIY Arduino робот гар, алхам алхмаар: Эдгээр заавар нь танд робот гарыг хэрхэн яаж хийхийг зааж өгөх болно