Mundarija:
- 1 -qadam: Baza stantsiyasini qurish
- 2 -qadam: Birinchi sinov
- 3 -qadam: interfeys yaratish
- 4 -qadam: o'lchagichni qo'shing
- 5 -qadam: GPS o'lchagichini torting va OpenStreetMap -ni qo'shing
- 6 -qadam: GPS o'lchagichini torting va jadvallar jurnalini qo'shing
- 7 -qadam: Kodni oling
- 8 -qadam: Arduino IDE
- 9 -qadam: Tafsilotlarni kodlash
Video: Arduino loyihasi: GPS -ni kuzatish uchun RF1276 modulli sinov diapazoni: 9 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
Ulanish: USB - ketma -ket
Kerak: Chrome brauzeri
Kerak: 1 X Arduino Mega
Ehtiyoj: 1 ta GPS
Kerak: 1 X SD karta
Ehtiyoj: 2 X LoRa modem RF1276
Funktsiya: Arduino GPS qiymatini asosiy bazaga yuboradi-Ma'lumotlar serverining asosiy ma'lumotlar bazasi Lora modulida saqlanadi: APPCONWIRELESS LoRa-dan olingan RF1276 ultra uzoq masofali ma'lumotlarni uzatish tezligini juda past tezlikda yuborish imkonini beruvchi yangi, xususiy va keng spektrli modulyatsiya usuli. uzoq masofalar. Ma'lumot uzatish tezligining pastligi (sekundiga bir necha baytgacha) va LoRa modulyatsiyasi qabul qiluvchilarning sezuvchanligini pasayishiga olib keladi, bu testda 10 km dan ortiq degan ma'noni anglatadi.
1 -qadam: Baza stantsiyasini qurish
Kompyuter kengligi Internetga ulanish va USB portiga ulangan LoRa modem.
Arduino avtomobillar to'plami ·
Metrik quti
Anduino Mega 2 -ketma -ketlikni GPS qabul qilgichga, 1 -seriyali esa LoRa modemiga ulangan. Ma'lumotlarni saqlash uchun SD -karta ishlatiladi.
2 -qadam: Birinchi sinov
· 10.6 km. Shahar markazlari, galereyalar va qirg'oq bo'ylab ko'chalarda
Qabul qilish /uzatish nisbati 321 /500TX nuqtani tashkil etdi
RX nuqtasi
3 -qadam: interfeys yaratish
1 - yangi LoRa loyihasini o'rnatish
Loyiha konfiguratsiyasini ochish uchun tishli belgini bosing
4 -qadam: o'lchagichni qo'shing
2) o'lchagich slayderini oching.
· 3) GPS -ga o'ting.
· 4) birini stolga qo'shing.
5 -qadam: GPS o'lchagichini torting va OpenStreetMap -ni qo'shing
· 5) OpenStreetMap xaritasini stolga qo'shing
Belgilangan xaritada GPS komponentini sudrab olib, OpenStreet xaritasi yaratiladi.
Interfeys yaratish
· 6) Xaritaning yangilanishini o'zgartirish
Xaritani yangilash vaqtini 5000 dan 10000 gacha o'zgartiring
6 -qadam: GPS o'lchagichini torting va jadvallar jurnalini qo'shing
· 7) Jadval jurnalining o'lchagichini qo'shing.
O'lchagichni GPS belgisi jadvali ustidan siljitish orqali o'lchagichlar jadvali yaratiladi
· 8) Jadvallar jurnalining yangilanishini o'zgartirish. Xaritani yangilash vaqtini 5000 dan 10000 gacha o'zgartiring
Ko'rsatkichlarning joylashishini sozlang
· 9) tortish o'lchagichlari o'lchagichlarning holatini ekran bo'ylab siljitish orqali to'g'rilaydi.
· 10) Loyihani saqlash
7 -qadam: Kodni oling
10) Kod konteynerini faollashtiring
O'ng yuqori tugmachani bosing, barchasini tanlang va asosiy kodni nusxalash.
8 -qadam: Arduino IDE
· 11) Arduino IDE -ga kodni joylashtiring
· 12) Kodni tahrirlash Ushbu qatorni ta'rifga qo'shing
9 -qadam: Tafsilotlarni kodlash
Bu qatorni ta'rifga qo'shing
//*************************************************************************
// ** KUTUBXONA ** // *************************************** ********************************
#include // ++ GPS kutubxonasi
#include // ++ SPI kutubxonasi #include
// ++ SD kutubxonasi //
*************************************************************************
// ** SD ** // *************************************** ********************************
// * SD -karta SPI avtobusiga quyidagicha biriktirilgan:
// ** UNO: MOSI - pin 11, MISO - pin 12, CLK - pin 13, CS - pin 4
// (CS pinini o'zgartirish mumkin) va pin 10 (SS) chiqish bo'lishi kerak
// ** Mega: MOSI - pin 51, MISO - pin 50, CLK - pin 52, CS - pin 53
// (CS pinini o'zgartirish mumkin) va #52 pin (SS) chiqish bo'lishi kerak
// ** Leonardo: ICSP sarlavhasi orqali apparat SPI -ga ulaning
// 4 -pin bu erda boshqa Arduino misollari bilan mos kelish uchun ishlatiladi const int chipSelect = 53;
// ++ SD -pin tanlagichi
//*************************************************************************
//** GPS ** //***************************************** ********************************
TinyGPS GPS; // Serialda ++ GPS2
bo'sh gpsdump (TinyGPS & gps); // ++
bool newdataGPS = noto'g'ri; // ++
Ushbu qatorni sozlamalarga qo'shing ()
//***********************************************************************
// ** GPS ketma -ket sozlash ** // ************************************* ********************************
Seriya2.begin (9600); // ++
kechikish (1000); // ++
//***********************************************************************
// ** SD ishga tushirilmoqda ** // ************************************** *******************************
// standart chip tanlash pimi // ++ ga o'rnatilganligiga ishonch hosil qiling
// chiqish, agar siz uni ishlatmasangiz ham: // ++
pinMode (SS, OUTPUT); // ++
Serial.println (F ("SD -karta ishga tushirilmoqda …")); // ++
// kartaning mavjudligini va uni ishga tushirish mumkinligini ko'ring: // ++
agar (! SD.begin (chipSelect)) {// ++
Serial.println (F ("Karta ishlamay qoldi yoki mavjud emas")); // ++
// boshqa hech narsa qilma: // ++
qaytish; // ++
} boshqa {// ++
Serial.println (F ("SD -karta OK")); // ++
} // ++
Bu satrlarni loop () void ga qo'shing
serialEvent2 (); // ++ qo'ng'iroq GPS ketma -ket voqea
SeriaEvent2 kodini qo'shing
//*************************************************************************
// ** GPS serialEvent ** // ************************************** *********************************
bekor serialEvent2 () {// ++
while (Serial2.available ()) {// ++
char c = Serial2.read (); // ++
//Serial.print(c); // xom GPS ma'lumotlarini ko'rish uchun izoh bermang // ++
agar (gps.encode (c)) {// ++
newdataGPS = haqiqiy; // ++
tanaffus; // darhol yangi ma'lumotlarni chop etishga izoh bermang! // ++
} // ++
} // ++
} // ++
Ovozli GPS dampini qo'shing
//*************************************************************************
// ** gps dump ** // ************************************** *********************************
// ** Kengliklarning graduslar bo'yicha amaldagi diapazoni -90 va +90. **
// ** Uzunlik -180 va +180 oralig'ida **
// ** sharq-g'arb pozitsiyasini ko'rsatish **
//** "123456789 1234567890" **
//** "000.00000;0000.00000" ** //*************************************************************************
bo'sh gpsdump (TinyGPS va gps) // ++
{ // ++
int yil; // ++
bayt oy, kun, soat, daqiqa, soniya, yuzinchi; // ++
imzosiz uzoq yosh; // ++
gps.f_get_position (& LATGP00, & LONGP00, & yosh); // ++
gps.crack_datetime (va yil, oy, kun va soat, // ++
& daqiqa, & sekund, & yuzdan, & yosh); // ++
uzun lat, uzun; // ++
gps.get_position (& lat, & lon, & age); // ++
// *********************************************************************
// ** jurnalga ma'lumotlarni yig'ish uchun qator yarating: **
// *********************************************************************
String dataString = ""; // ++
dataString += (lat / 100000); // ++
dataString += "."; // ++
dataString += lat - (lat / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += (uzunlik / 100000); // ++
dataString += "."; // ++
dataString += lon - (lon / 100000) * 100000; // ++
dataString += ";"; // ++
dataString += String (static_cast (kun)); // ++
dataString += "/"; // ++
dataString += String (static_cast (oy)); // ++
dataString += "/"; // ++
dataString += String (yil); // ++
dataString += ";"; // ++
dataString += String (static_cast (soat)); // ++
dataString += ":"; // ++
dataString += String (static_cast (daqiqa)); // ++
dataString += ":"; // ++
dataString += String (static_cast (ikkinchi)); // ++ // ****************************************** *****************************
// ** SD -ga SAVE ** // ************************************* **********************************
// faylni oching. E'tibor bering, bir vaqtning o'zida faqat bitta fayl ochilishi mumkin, **
// shuning uchun boshqasini ochishdan oldin uni yopishingiz kerak. ** // ******************************************** ***************************
Fayl ma'lumotlariFile = SD.open ("gps00.txt", FILE_WRITE); // ++
// ***********************************************************************
// ** agar fayl mavjud bo'lsa, unga yozing: **
// ***********************************************************************
if (dataFile) {// ++
dataFile.println (dataString); // ++
dataFile.close (); // ++
} boshqa {// ++
Serial.println (F ("SD xatosi xatosi")); // ++
} // ++
}
Agar siz kodni yuklab olishni xohlasangiz, ushbu sahifaga tashrif buyuring.
Tavsiya:
Yuvish uchun panjalar - mushuk Covid qo'l yuvish loyihasi bilan uchrashdi: 5 qadam (rasmlar bilan)
Yuvish uchun panjalar - Mushuk Covid qo'l yuvish loyihasi bilan uchrashdi: Hammamiz uyda uzoqlashayotganimiz uchun, Paws to Wash - bu DIY loyihasi bo'lib, u ota -onalar va bolalarga qo'llarini sog'lom yuvish odatlarini rag'batlantirish uchun siltagan mushuk bilan yoqimli aloqa taymerini yaratishga yordam beradi. Covid-19 davrida qo'l yuvish
Arduino avtomatlashtirilgan ekranli ekran loyihasi uchun qadam dvigatel va haydovchini tanlash: 12 qadam (rasmlar bilan)
Arduino avtomatlashtirilgan ekranli ekran loyihasi uchun qadam dvigateli va haydovchini tanlash: Ushbu yo'riqnomada men avtomatlashtirilgan ekran pardasi prototipi uchun qadam dvigateli va haydovchini tanlash uchun qilgan qadamlardan o'taman. Soyali ekranlar - qo'lda krankirovka qilingan mashhur va arzon modellar, va men ularni almashtirmoqchi edim
Ochiq kodli dasturiy ta'minot paneli uchun qulay modulli neopikselli panel: 4 qadam (rasmlar bilan)
Ochiq manba kodli panelli modulli Neopixel panellari: Bu ko'rsatma, bir-biriga yopishtirilishi va lehimlanishi mumkin bo'lgan Neopixel LED-lari uchun kichik (8mm x 10mm) plastinka taxtasi haqida bo'lib, u yupqa tuzilishga qaraganda ancha qattiqroq bo'ladi. LED tasmasi ancha kichikroq shaklda
Shubham Kumar tomonidan raqamli IC sinov qurilmasi (Sanoat va muhandislik kollejlari uchun), UIET, Panjab universiteti: 6 qadam (rasmlar bilan)
Shubham Kumar, Sanoat va muhandislik kollejlari uchun), Panjab universiteti, UIET: Raqamli IC sinov qurilmasining kirish va ishlashi (CMOS va TTL IClari uchun): REZA: har bir elektron sxemaning asosiy komponenti bo'lgan IC. maqsad va vazifalarning xilma -xilligi uchun. Ammo ba'zida noto'g'ri IClar tufayli kontaktlarning zanglashiga olib kelmaydi
IoT uchun arzon WiFi diapazoni kengaytiruvchisi: 8 qadam
IoT uchun arzon Wi-Fi diapazoni kengaytmasi: 2-8 dollarlik arzon ESP8266 WiFi modulidan o'z WiFi kengaytirgichini qanday qurish mumkin *** EDIT: Ushbu ko'rsatma yozilgandan buyon GUI sozlamalari sahifasi qo'shilgan holda dasturiy ta'minot ancha yaxshilandi. (oddiy yo'riqnoma kabi), xavfsizlik devori, kuchli odam