Тёмный
No video :(

إصنع مقياس لسرعتك وللمسافة بإستعمال الأردوينو - how to make a gps distance calculator by arduino 

pro-creativity
Подписаться 1,9 тыс.
Просмотров 466
50% 1

مقياس للسرعة والمسافة .جهاز يمكنك من تحديد المساغة المقطوعة بشكل مضبوط وكذلك السرعة باستعمال شريحة gps neo 6m .به زر بشبوتون يعمل على ضبط المسافة القصوى التي اذا قطغتها يشتغل البازار .يمكنك اضافة الكثير من المميزات للمشروع .اطلق العنان لأفكارك

Опубликовано:

 

29 авг 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 3   
@pro-creativity4471
@pro-creativity4471 Год назад
//GPScode finale #include #include #include #include #include #define SCREEN_WIDTH 128 // OLED display width, in pixels #define SCREEN_HEIGHT 32 // OLED display height, in pixels #define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin) #define SCREEN_ADDRESS 0x3C Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET); //GPS Module RX pin to Arduino 9 //GPS Module TX pin to Arduino 12 SoftwareSerial neogps(12,13); TinyGPSPlus gps; int buttonPin=14; int vib=16; int dismax=0; int secon=0; int mine=0; int heur=0; float initialLatitude = 0; int interval=3000; float initialLongitude = 0; unsigned long previousMillis2=0; // define distance variables int totalDistance = 0, distance = 0; float latitude, longitude; // define timer variables unsigned long prevMillis = 0, currMillis; void getGps(float& latitude, float& longitude); void setup() { display.begin(SSD1306_SWITCHCAPVCC, 0x3C); display.display(); delay(2000); display.clearDisplay(); display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(20, 0); display.println("pro"); display.setCursor(0, 15); display.println("creativity"); display.display(); delay(2000); display.clearDisplay(); // تأثيرات الإضاءة display.setTextSize(2); display.setTextColor(WHITE); display.setCursor(20, 0); display.println("pro"); display.setCursor(0, 15); display.println("creativity"); display.display(); delay(2000); for(int i=0; i= interval) { prevMillis = currMillis; // reset timer // check if GPS has new data if ( neogps.available()) { getGps(latitude, longitude); distance = getDistance(latitude, longitude, initialLatitude, initialLongitude); if (initialLatitude != 0.0 && initialLongitude != 0.0) { { totalDistance += distance; display.clearDisplay(); display.drawLine(SCREEN_WIDTH/2, 0, SCREEN_WIDTH/2, SCREEN_HEIGHT-1, WHITE); display.drawLine(0, SCREEN_HEIGHT/2, SCREEN_WIDTH-1, SCREEN_HEIGHT/2, WHITE); display.setCursor(5,0); display.setTextSize(2); display.print(totalDistance); display.setCursor(40,0); display.print("m"); // display.setCursor(30,15); // if (secon > 60) { // secon = 0; // mine++; // } // display.setCursor(10,15); //// display.print(mine); //display.print(":"); display.setCursor(7,15); display.print( millis()/ 1000); int vitesse =(distance/interval)*3.6; // int vitesse =(distance/interval); display.setCursor(75,15); display.print(vitesse); // display.setCursor(90,15); // display.print("km/h"); display.setCursor(65,0); display.print(dismax); display.setCursor(105,0); display.print("m"); display.display(); } } initialLatitude = latitude; initialLongitude = longitude; } if(totalDistance>dismax){ digitalWrite(vib,HIGH); } else{ digitalWrite(vib,LOW); }} } // insert any other program logic here float getDistance(float flat1, float flon1, float flat2, float flon2) { // Variables float dist_calc=0; float dist_calc2=0; float diflat=0; float diflon=0; // Calculations diflat = radians(flat2-flat1); flat1 = radians(flat1); flat2 = radians(flat2); diflon = radians((flon2)-(flon1)); dist_calc = (sin(diflat/2.0)*sin(diflat/2.0)); dist_calc2 = cos(flat1); dist_calc2*=cos(flat2); dist_calc2*=sin(diflon/2.0); dist_calc2*=sin(diflon/2.0); dist_calc +=dist_calc2; dist_calc=(2*atan2(sqrt(dist_calc),sqrt(1.0-dist_calc))); dist_calc*=6371000.0; //Converting to meters return dist_calc; } void getGps(float& latitude, float& longitude){ // Can take up to 60 seconds boolean newData = false; for (unsigned long start = millis(); millis() - start < 2000;){ while (neogps.available()){ if (gps.encode(neogps.read())){ newData = true; break; } } } if (newData) //If newData is true { latitude = gps.location.lat(); longitude = gps.location.lng(); newData = false; } else { latitude = 0; longitude = 0; } }
@dexter5601
@dexter5601 Год назад
قناتك رهيبه
@bdlh
@bdlh 4 месяца назад
لا يجوز الإستماع للموسيقى يا أخ
Далее
Reforged | Update 0.30.0 Trailer | Standoff 2
02:05
Просмотров 789 тыс.
Кого из блогеров узнали?
00:10
Просмотров 661 тыс.
جهاز رائع ستحتاجه كثيرا
9:02
Просмотров 223 тыс.