Mundarija:

Uyda real vaqtda GPS kuzatuvchisi (SIM800L, Ublox NEO-6M, Arduino): 8 qadam
Uyda real vaqtda GPS kuzatuvchisi (SIM800L, Ublox NEO-6M, Arduino): 8 qadam

Video: Uyda real vaqtda GPS kuzatuvchisi (SIM800L, Ublox NEO-6M, Arduino): 8 qadam

Video: Uyda real vaqtda GPS kuzatuvchisi (SIM800L, Ublox NEO-6M, Arduino): 8 qadam
Video: Как в Узбекистане живут люди с инвалидностью. 2024, Noyabr
Anonim
Uyda real vaqtda GPS kuzatuvchisi (SIM800L, Ublox NEO-6M, Arduino)
Uyda real vaqtda GPS kuzatuvchisi (SIM800L, Ublox NEO-6M, Arduino)

Shunday qilib, sizda men kabi GSM moduli yotibdi? Shuningdek, GPS-kuzatuvchi?

Biz ham xuddi shunday o'ylaymiz!

Ushbu qo'llanmada men sizga yangi boshlanuvchilar nuqtai nazaridan o'z maqsadingizga qanday erishishingizni ko'rsatishga harakat qilaman.

Men ilgari elektrotexnika bo'yicha bilimga ega bo'lmaganim uchun (rostini aytsam, bu loyihaga unchalik kerak emas, lekin) va veb-serverga ma'lumotlarni real vaqtda uzatadigan qurilmani qanday yasashni bilmasdim, men ko'plab muammolarga duch keldim. Shunday bo'lsa -da, men oxir -oqibat narsalarni ishga solishga muvaffaq bo'ldim.

Shunday qilib, ushbu darslikda men boshlang'ich qilishi mumkin bo'lgan xatolarni ta'kidlamoqchiman va shunga muvofiq loyihani tuzmoqchiman.

Esingizda bo'lsin: elektr bilan ishlaganda doimo ehtiyot bo'ling!

Izoh: Men professional emasman. Kod sizning ehtiyojlaringiz uchun etarlicha murakkab bo'lmasligi mumkin. Loyiha "sevimli mashg'ulot loyihasi" bo'lishga mo'ljallangan, lekin! bu men uchun ishladi. Va agar u men uchun ishlagan bo'lsa, u ham siz uchun ishlaydi!

1 -qadam: old shartlar

Old shartlar
Old shartlar
Old shartlar
Old shartlar
Old shartlar
Old shartlar

GSM moduli - SIM800L

  • Juda kichkina, ishlatish uchun qulay
  • Mobil Internetdan (GPRS) foydalanish imkoniyati.
  • Arzon

GPS moduli - Ublox NEO6M

  • Shuningdek, kichik
  • O'z ishini juda yaxshi bajaradi

Mikrokontroller - hamma narsa bo'lishi mumkin - siz bo'sh joyni bo'shatish uchun mashhur Arduino Uno yoki Nano -dan foydalanishingiz mumkin.

Batareya - Men asosiy va yagona quvvat manbai sifatida 18650 ta uyadan foydalanardim (nominal 3.7V)

Batareya ushlagichi - nima uchun? - chunki 18650 batareyasini lehimlash issiqlik tufayli juda xavfli.

DC -DC Boost konverteri 5V -moduli - bo'lishi kerak, chunki men ishlatgan Arduino 5V ga muhtoj

Ishga yaroqli asboblar, asosiy narsalar:

Sinash uchun simlar, lehim temir, non taxtasi

2 -qadam: Asosiy tushuncha

Asosiy tushuncha
Asosiy tushuncha

Tizimning asosiy tushunchasi quyidagicha:

U 3 qismdan iborat:

  1. Tegishli GPS -koordinatalariga ega bo'lgan va masofadan serverga ulanadigan va unga ma'lumotlarni yuboradigan qurilma
  2. Kiruvchi ma'lumotlarni qabul qila oladigan, saqlaydigan va boshqa mijozlarga xizmat ko'rsatadigan veb -server
  3. Biz koordinatalarni ko'rishimiz mumkin bo'lgan platforma - bu endi mobil ilova yoki veb -sayt bo'lishi kerak

3 -qadam: SIM800L moduli

SIM800L moduli
SIM800L moduli
SIM800L moduli
SIM800L moduli

Men modul bilan qiyin paytlarni boshdan kechirdim.

Men ba'zi xususiyatlar va ma'lumotnomalardan boshlamoqchiman.

Ma'lumotlar jadvaliga ko'ra:

  • U 3,4 - 4,4 V gacha ishlaydi
  • U SMS yuborishi, boshqa telefonlarga ovozli qo'ng'iroqlar qilishi va hatto Internetga ulanishi mumkin!
  • Biz u bilan AT-buyruqlar orqali bog'lanishimiz mumkin!
  • Eng yuqori vaqtda 2A gacha ishlashi mumkin! E'tibor bering: siz uni multimetr bilan o'lchay olmaysiz, chunki uning namuna olish tezligi past

Mening tajribam shuni ko'rsatadiki, 3.8V dan past bo'lgan SIM800L haqiqatan ham ishlamaydi.

Qo'shimcha ma'lumot uchun tashrif buyuring: ma'lumotlar sahifasi

Shunday qilib, sizning vazifangiz - modulga kamida 3,8V (ideal 4V), kamida 2A quvvat manbai.

Modulni oxirgi qurilmada ishlatishdan oldin, sizning qurilmangiz to'g'ri ishlashiga ishonch hosil qilish uchun SIM800L va kompyuteringiz bilan aloqa o'rnatishingizni maslahat beraman.

Avvalo, yuqoridagi rasmda bo'lgani kabi, SIM kartani ulang.

Uni kompyuterga ulash uchun siz USB -dan TTL konvertoriga yoki Arduino -dan foydalanishingiz mumkin.

Endi men Arduino bilan boraman.

SIM800L VCC va GND ni quvvat manbai terminallariga ulang.

TX ni Arduino 10 raqamli piniga, RX ni arduino 11 raqamli piniga ulang.

Kodni yuklab oling, men bu bosqichda bog'langanman.

Kod yordamida siz ketma -ket monitorda buyruqlarni yuborishingiz va ularni qaytarib olishingiz mumkin.

Ba'zi oddiy buyruqlar:

AT OK qaytadi, agar ulanish yaxshi bo'lsa.

ATD+123456789; Belgilangan telefon raqamiga qo'ng'iroq qiling. Eslatma: nuqta -vergul bilan tugatishni unutmang.

AT+CPIN? SIM karta holatini qaytaradi (qulflangan yoki yopilmagan)

Agar siz SMS yubormoqchi bo'lsangiz, kiritishni maxsus belgi bilan tugatishingiz kerak, buni '$' belgisi bilan bajarish mumkin.

Boshqa qiziqarli buyruqlar uchun men buni o'qishni taklif qilaman.

Har xil buyruqlar bor, ular bilan tanishing, ular haqiqatan ham foydalidir.

Qizil rangli LED mavjud bo'lib, u sizga SIM800L qanday ishlayotganini ko'rsatadi.

64 MS ON - 800MS OFF - SIM800L tarmoqda ro'yxatdan o'tmagan.

64 MS ON - 3000MS OFF - SIM800L tarmoqqa yozilgan.

64 MS ON - 300MS OFF - SIM800l GPRS rejimida

Agar SIM800L taxminan 8-10 milt-miltdan keyin qayta ishga tushishni davom ettirsa, bu samarali quvvat manbai yo'qligidan bo'lishi mumkin.

Agar ATdan keyin OK bo'lmasa, simlarni tekshiring! Agar sizda multimetr bo'lsa, simlarning uzluksizligini tekshiring.

Simlar va lehim birikmalarining ulanishini tekshiring! Modul faqat miltillaganda ishlaydi.

4 -qadam: Ublox Neo 6m

Ublox Neo 6 m
Ublox Neo 6 m
Ublox Neo 6 m
Ublox Neo 6 m

Ba'zi xususiyatlar

  • Maksimal kuchlanish: 3.6V - Men uni Arduino -ning 3.3V -pin bilan quvvatladim
  • Maksimal oqim chizig'i 67mA - shuning uchun uni arduino -dan quvvatlantirish mumkin
  • Harorat oralig'i: -40-85 Selsiy (menimcha, bu sizga mos keladi)

Men buyurtma bergan qurilma rasmda ko'rsatilgan antenna bilan kelgan, men uni mos keladigan uyaga ulayman.

Qurilma signallari bo'lsa, ko'k LED bilan yonadi.

Birinchidan, bu erda GPS qanday ishlashini tekshiring, agar bilmasangiz.

Qurilma yoqilganda va 3 yo'ldosh topilsa, u yuqoridagi kabi Arduino -ga vergul bilan ajratilgan ko'p qiymatlarni yuboradi.

Bizning ishimizga yordam berish uchun biz ba'zi tashqi libararlardan foydalanib, bu ma'lumotlarni tahlil qilib, odamlarga o'qilishi osonroq bo'lishi mumkin.

Siz TinyGps kutubxonasidan yoki NeoGPS kutubxonasidan foydalanishingiz mumkin. Men ikkinchisini ishlatardim, chunki u engilroq.

Sinov uchun siz kuch pinlarini arduino 3.3V va GND ga ulashingiz kerak.

Ushbu kodni yuklab oling va GPS -dan foydalaning. RX Digital pin 10, TX Digital pin 11

Eslatma: modulni ochiq havoda ishlatishni unutmang, yaxshisi bulut bo'lmasa.

Yarim daqiqadan so'ng, qurilma miltillashi va GPS koordinatalarini chiqarishi kerak!:)

Sizning SIM800L va GPS modulingiz etarli darajada ishlayotganini bilsangiz, keyingi bosqichga o'tishingiz mumkin.

5 -qadam: O'chirish

O'chirish
O'chirish

Devor rasmdagi kabi.

Shunday qilib, 3.4V - 4.2V 18650 batareyasi asosiy quvvat manbai hisoblanadi. Sim800L energiyani to'g'ridan -to'g'ri undan oladi. O'chirishning barqarorligini yaxshilash uchun ular o'rtasida parallel ravishda kondansatör mavjud.

Agar siz kondansatkichni tanlasangiz, past ESR kapaktorini tanlashingiz kerak.

Bitta 5V kuchlanishli konvertor batareyaning kuchlanishini 5V ga oshiradi (Arduino 5V bilan ishlaydiganligi uchun ir kerak).

5V kuchlanishli temir yo'l bu erda Nano -ga ulangan. Sim800L va Neo6m rasmdagi kabi Nano bilan bog'langan. (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12 RST -ga ulangan, shuning uchun biz tizimni dasturiy ravishda qayta yuklay olamiz (SIM800Ldan tashqari). QAYD: Bu qayta ishga tushirish usuli eng yaxshi amaliyot bo'lmasligi mumkin)

Va nihoyat, ikkita LED NANO -ga ulangan, shuning uchun biz foydalanuvchiga xato yuz berayotganini aytishimiz mumkin.

6 -qadam: kod

Kod Instructables -ga biriktirilgan yoki github -ga qarang.

Siz uni ehtiyojlaringiz uchun to'g'ri ishlashi uchun o'zgartirishingiz mumkin yoki xohlasangiz, boshqalarning kodidan foydalanishingiz mumkin.

waitUntilResponse (); yordamchi funktsiyasi uning kodidan olingan. Uning ishini tekshiring va kodni ham ko'ring!

Qisqacha aytganda, sozlash funktsiyasida biz SIM800L modulining GPRS ulanishini yoqishimiz kerak. Biz bilamizki, agar LED tez yonib tursa, u muvaffaqiyatli bo'ladi. (setupGPRSConnection ())

Loop funktsiyasida - har 15 soniyada HTTP so'roviga ega sendData () funktsiyasi chaqiriladi

Ma'lumotni veb -serverga ushbu formatda yuborish uchun so'rovlar satridan foydalandim:

ip manzili/file.php? key = qiymat va kalit = qiymat, masalan.

Agar biron bir xato bo'lsa, tegishli LED yonadi. (SIM, GPS)

7 -qadam: veb -server

Veb -server
Veb -server

Bizning foydalanishimiz uchun oddiy engil veb -server etarli.

Siz tanlashingiz mumkin bo'lgan ba'zi variantlar mavjud:

  1. Siz kompaniyaning uzoq serveridan foydalanishingiz mumkin, ehtimol siz uni muntazam to'lashingiz kerak bo'ladi.
  2. Siz o'zingizning shaxsiy kompyuteringizdan foydalanishingiz mumkin. Men buni faqat sinov uchun taklif qilaman, energiya tejash, xavfsizlik muammolari tufayli uni 24/7 ishlatish unchalik samarali emas.
  3. Siz Raspberry PI kabi kichik kompyuterdan foydalanishingiz mumkin. Engil, arzon, ko'p quvvat sarflamaydi.

Men ikkinchi va uchinchi variantni sinab ko'rdim, ular yaxshi ishladi. Xo'sh, asosiy maqsad bu ko'rsatma serverlari emas, lekin men sizga ba'zi maslahatlar beraman.

Agar siz kompyuterdan foydalansangiz, ehtimol Windows -dan foydalanasiz. Agar men sizning o'rningizda bo'lganimda, unga Apache yoki XAMPP serverini o'rnatgan bo'lardim.

XAMPP -da PHP mavjud, bundan tashqari u HTML, Perl va ma'lumotlar bazasini boshqarish tizimi bilan birga keladi. PHP yordamida siz dinamik server yaratishingiz mumkin. Agar siz dunyoning istalgan burchagidan o'zingiz yaratgan mahalliy serverdan foydalanmoqchi bo'lsangiz, kompyuteringizga statik IP -ni belgilashingiz va port -yo'naltirishni amalga oshirishingiz kerak. Statik IP uchun foydali qo'llanma:

Va butun portforwarding narsa:

Agar sizda malina bo'lsa, uni ishlatish yaxshi amaliyotdir. Siz Linux buyruqlari bilan tanishib, 24/7 o'z serveringizni ishga tushirishingiz mumkin.

OS Raspbian Jessie edi, u boshsiz (klaviaturasiz, monitorsiz) - men uni SSH ulanishi bilan kompyuter bilan boshqarardim.

Men Raspberry -ga kirish uchun Putty -dan foydalandim. Boshqalar sizga Pi kira olmasligi uchun hisobingiz parolini o'zgartirishni unutmang. Standart: pi, passw: malina.

Men sqlite3 bilan lighttpd veb -serverini o'rnatdim. Yaxshi darslik bu erda topilgan:

Men server kodida asosan PHP ishlatardim. PHP yordamida siz ma'lumotlarni qabul qilishingiz, ma'lumotlar bazalarini o'qishingiz/yozishingiz - json formatidagi so'rovlarni kodlashingiz va hokazolarni olishingiz mumkin … Bu qo'llanma sizga ma'lumotlar bazasini PHP yordamida boshqarishga yordam beradi.

Siz mening kodimni github -da server_files papkasida ko'rishingiz mumkin.

Va, albatta, agar siz masofadan kirishni xohlasangiz, yo'riqnoma orqali Pi -ga uzatishni yoqishingiz kerak.

8 -qadam: tugatish/tajriba

Qoplama hali o'rnatilmagan.

Mening tajribam shuki, tizim unchalik yomon emas. Ammo barqarorlikni yaxshilash kutilmoqda.

Agar kuzatuvchi men biriktirgan kod bilan ishlamasa, xavotir olmang. SIM800L va NEO 6M kerakli darajada ishlayotganiga ishonch hosil qilishga harakat qiling. Siz mening kodimni erkin o'zgartirishingiz yoki undan yaxshisini qidirishingiz mumkin. Umid qilamanki, men sizga bu loyihani qanday qilib bajarishingiz mumkin bo'lgan misolni ko'rsataman.

Men har qanday maslahatni, sharhlardan tuzatishni qabul qilaman. Bemalol so'rang.

Tavsiya: