Բովանդակություն:

Տնական իրական ժամանակի GPS հետևիչ (SIM800L, Ublox NEO-6M, Arduino) ՝ 8 քայլ
Տնական իրական ժամանակի GPS հետևիչ (SIM800L, Ublox NEO-6M, Arduino) ՝ 8 քայլ

Video: Տնական իրական ժամանակի GPS հետևիչ (SIM800L, Ublox NEO-6M, Arduino) ՝ 8 քայլ

Video: Տնական իրական ժամանակի GPS հետևիչ (SIM800L, Ublox NEO-6M, Arduino) ՝ 8 քայլ
Video: ЗАПРЕЩЁННЫЕ ТОВАРЫ с ALIEXPRESS 2023 ШТРАФ и ТЮРЬМА ЛЕГКО! 2024, Հուլիսի
Anonim
Տնական իրական ժամանակի GPS որոնիչ (SIM800L, Ublox NEO-6M, Arduino)
Տնական իրական ժամանակի GPS որոնիչ (SIM800L, Ublox NEO-6M, Arduino)

Այսպիսով, դուք ունե՞ք GSM մոդուլ, որը պառկած է ինձ պես: Նաև GPS- որոնիչ:

Մենք նույնն ենք կարծում!

Այս ուսանելի նյութերում ես կփորձեմ ուղղորդել ձեզ, թե ինչպես հասնել ձեր նպատակին նորեկի տեսանկյունից:

Քանի որ ես չունեի էլեկտրատեխնիկայի նախկին գիտելիքներ (ճիշտն ասած, նախագծին այդքան էլ պետք չէ, այլ ոչ), և գաղափար չունեի, թե ինչպես սարք սարքել, որը տվյալները իրական ժամանակում մղում է վեբ սերվեր, ես բախվեցի բազմաթիվ խնդիրների: Այդուհանդերձ, վերջիվերջո ինձ հաջողվեց գործերը գործի դնել:

Այսպիսով, այս ձեռնարկում ես ուզում եմ ընդգծել այն սխալները, որոնք կարող է թույլ տալ սկսնակ գործիչը և համապատասխանաբար կառուցել նախագիծը:

Հիշեք. Էլեկտրականությամբ աշխատելիս միշտ զգույշ եղեք:

Նշում. Ես պրոֆեսիոնալ չեմ: Կոդը կարող է բավականաչափ բարդ չլինել ձեր բոլոր կարիքների համար: Նախագիծը մտադիր է լինել «հոբբի նախագիծ», բայց! ինձ մոտ աշխատեց: Եվ եթե դա աշխատեր ինձ համար, այն կաշխատեր նաև ձեզ համար:

Քայլ 1: Նախադրյալներ

Նախադրյալներ
Նախադրյալներ
Նախադրյալներ
Նախադրյալներ
Նախադրյալներ
Նախադրյալներ

GSM ՄՈԴՈLEԼ - SIM800L

  • Բավականին փոքր, հեշտ օգտագործման համար
  • Բջջային ինտերնետից օգտվելու ունակություն (GPRS)
  • Էժան

GPS մոդուլ - Ublox NEO6M

  • Նաև փոքր
  • Շատ լավ է կատարում իր աշխատանքը

Միկրոկոնտրոլեր - կարող է լինել ամեն ինչ, կարող եք օգտագործել հայտնի Arduino Uno- ն կամ Nano- ն ՝ որոշակի տարածք ազատելու համար:

Մարտկոց - Ես օգտագործել եմ 18650 բջիջ ՝ որպես հիմնական և միակ էներգիայի աղբյուր (անվանական 3.7 Վ)

Մարտկոցի սեփականատեր - ինչու: - քանի որ 18650 մարտկոցը զոդելը բավականին վտանգավոր է շոգի պատճառով:

DC -DC Boost Converter Step Up մոդուլ 5V - Պետք է ունենա, քանի որ օգտագործած Arduino- ին անհրաժեշտ է 5V

Գործիքներ, հիմնական իրեր, որոնք կարող են օգտակար լինել.

Հաղորդալարեր, եռակցման սարք, փորձարկման համար նախատեսված տախտակ

Քայլ 2: Հիմնական հասկացություն

Հիմնական հասկացություն
Հիմնական հասկացություն

Համակարգի հիմնական հայեցակարգը հետևյալն է.

Այն բաղկացած է 3 մասից.

  1. Սարքը, որն ունի համապատասխան GPS կոորդինատներ և կարող է հեռակա կարգով միանալ սերվերին և տվյալներ ուղարկել նրան
  2. Վեբ սերվեր - որը կարող է ստանալ մուտքային տվյալներ - պահել դրանք - և սպասարկել այլ հաճախորդների
  3. Հարթակը, որտեղ մենք կարող ենք դիտել կոորդինատները. Իդեալում, այն այժմ պետք է լինի բջջային հավելված կամ կայք

Քայլ 3: SIM800L մոդուլ

SIM800L մոդուլ
SIM800L մոդուլ
SIM800L մոդուլ
SIM800L մոդուլ

Ես դժվարին ժամանակներ ունեցա մոդուլի հետ:

Ես կցանկանայի սկսել որոշ բնութագրերով և հղումներով:

Ըստ տվյալների թերթիկի.

  • Այն աշխատում է 3.4V - 4.4V միջակայքում
  • Այն կարող է SMS ուղարկել, ձայնային զանգեր կատարել այլ հեռախոսների և նույնիսկ միանալ ինտերնետին:
  • Մենք կարող ենք դրա հետ հաղորդակցվել AT- հրամանների միջոցով:
  • Պիկ ժամերին այն կարող է օգտագործել մինչև 2 Ա: Նշում. Հավանաբար չեք կարողանա այն չափել բազմիմետրով `նմուշառման ցածր տեմպերի պատճառով

Իմ փորձն այն է, որ 3.8 Վ -ից ցածր SIM800L- ը իրականում չի աշխատում:

Լրացուցիչ տեղեկությունների համար այցելեք ՝ տվյալների թերթիկ

Այսպիսով, ձեր աշխատանքն է `ապահովել մոդուլին առնվազն 3.8 Վ (իդեալականը` 4 Վ), էներգիա, որը թողարկում է առնվազն 2 Ա:

Նախքան մոդուլը վերջնական սարքում օգտագործելը, ես առաջարկում եմ կապ հաստատել ձեր SIM800L- ի և ձեր համակարգչի հետ `համոզվելու համար, որ ձեր սարքը ճիշտ է աշխատում:

Առաջին հերթին, միացրեք SIM քարտը, ինչպես վերևում պատկերված է:

Այն ձեր համակարգչի հետ միացնելու համար կարող եք օգտագործել USB- ից TTL փոխարկիչ կամ Arduino:

Հիմա, ես գնում եմ Արդուինոյի հետ:

Միացրեք SIM800L VCC- ն և GND- ը ձեր էներգիայի աղբյուրի տերմինալներին:

Միացրեք TX- ը Arduino 10 -րդ թվային քորոցին, RX- ը arduino 11 -րդ թվային քորոցին:

Ներբեռնեք կոդը, ես կապեցի այս քայլին:

Կոդի միջոցով դուք կարող եք հրամաններ ուղարկել և դրանք հետ ստանալ ձեր Սերիական մոնիտորի վրա:

Որոշ պարզ հրամաններ.

AT- ը վերադառնում է OK, եթե կապը կարգին է:

ATD+123456789; Callանգահարեք տվյալ հեռախոսահամարով: Նշում. Մի մոռացեք այն ավարտել ստորակետով:

AT+CPIN? Վերադարձնում է SIM քարտի կարգավիճակը (կողպված է, թե ոչ)

Եթե ցանկանում եք SMS ուղարկել, ապա պետք է ավարտեք ձեր մուտքագրումը հատուկ նիշով, դա կարելի է անել '$' խորհրդանիշով:

Հետագա հետաքրքիր հրամանների համար առաջարկում եմ կարդալ սա:

Կան տարբեր հրամաններ, ծանոթացեք դրանց հետ, դրանք իսկապես օգտակար են:

Կա կարմիր կարգավիճակի LED, որը ձեզ հուշում է, թե SIM800L- ն ինչ գործողության մեջ է:

64 MS ON - 800MS OFF - SIM800L գրանցված չէ ցանցում:

64 MS ON - 3000MS OFF - SIM800L գրանցված է ցանցում:

64 MS ON - 300MS OFF - SIM800l- ը GPRS ռեժիմում է

Եթե SIM800L- ը շարունակում է վերագործարկվել մոտ 8-10 անգամ թարթելուց հետո, դա կարող է պայմանավորված լինել էներգիայի արդյունավետ մատակարարման բացակայությունից:

Եթե AT- ից հետո լավ չեք զգում, ստուգեք լարերը: Եթե ունեք բազմաչափ, ստուգեք լարերի շարունակականությունը:

Ստուգեք լարերի և զոդերի միացումները: Մոդուլը կաշխատի միայն թարթելիս:

Քայլ 4: Ublox Neo 6 մ

Ublox Neo 6 մ
Ublox Neo 6 մ
Ublox Neo 6 մ
Ublox Neo 6 մ

Որոշ բնութագրեր

  • Առավելագույն լարումը `3.6 Վ
  • Առավելագույն ընթացիկ խաղարկությունը 67 մԱ է, այնպես որ կարող եք սնուցել այն arduino- ից
  • Temերմաստիճանի միջակայքը `-40-85 Celsius (ենթադրում եմ, որ դա ձեզ կհամապատասխանի)

Իմ պատվիրած միավորը եկավ նկարի վրա տեսած ալեհավաքով, ես պարզապես այն միացնում եմ համապատասխան բնիկին:

Սարքը, երբ ազդանշաններ ունի, թարթում է կապույտ LED- ով:

Նախ, ստուգեք, թե ինչպես է GPS- ն աշխատում այստեղ, եթե չգիտեք:

Երբ սարքը միացված է և գտնում է 3 արբանյակ, այն բազմաթիվ ստորակետներով առանձնացված արժեքներ է ուղարկում Arduino- ին, ինչպես վերևում:

Մեր աշխատանքին օգնելու համար մենք կարող ենք օգտագործել որոշ արտաքին գրադարաններ ՝ այս տվյալները վերլուծելու համար ՝ ավելի մարդկային ընթեռնելի լինելու համար:

Դուք կարող եք օգտագործել TinyGps գրադարանը կամ NeoGPS գրադարանը: Ես օգտագործեցի երկրորդը, քանի որ դա ավելի թեթև է:

Փորձարկման համար դուք պետք է հոսանքի կապերը միացնեք arduino 3.3V- ին և GND- ին:

Ներբեռնեք այս կոդը և օգտագործեք այն ձեր GPS- ով: RX Թվային կապում 10, TX Թվային կապում 11

Նշում. Մի մոռացեք մոդուլը օգտագործել դրսում, ցանկալի է, երբ ամպ չկա:

Կես րոպեից հետո սարքը պետք է թարթել և թողնել ձեր GPS կոորդինատները::)

Մի անգամ, երբ գիտեք, որ ձեր SIM800L և GPS մոդուլները աշխատում են համարժեք, կարող եք անցնել հաջորդ քայլին:

Քայլ 5: Շղթա

Միացում
Միացում

Շղթան այնպես է, ինչպես նկարում:

Այսպիսով, 3.4V - 4.2V 18650 մարտկոցը էներգիայի հիմնական աղբյուրն է: Sim800L էներգիան ստանում է անմիջապես դրանից: Շրջանի կայունությունը բարելավելու համար նրանց միջև կա պարունակող կոնդենսատոր:

Երբ ընտրում եք կոնդենսատոր, դուք պետք է ընտրեք ցածր ESR հզորություն:

Մեկ 5V ուժեղացուցիչ փոխարկիչը մարտկոցի լարումը հասցնում է 5V- ի (ir- ն անհրաժեշտ է, քանի որ Arduino- ն աշխատում է 5V- ով):

5V հոսանքի երկաթուղին այստեղ միացված է Նանոյին: Sim800L- ը և Neo6m- ը կապված են Նանոյի հետ, ինչպես նկարում: (Sim Tx-D10, SimRx-D11; NeoTX-D3, NeoRX-D4)

D12- ը միացված է RST- ին, այնպես որ մենք ի վիճակի ենք ծրագրված կերպով վերագործարկել համակարգը (բացի SIM800L- ից): ՈEՇԱԴՐՈԹՅՈՆ. Այս վերագործարկման մեթոդը կարող է լավագույն փորձը չլինել)

Եվ վերջապես, երկու LEDS միացված են NANO- ին, այնպես որ մենք կարող ենք օգտվողին ասել, եթե որևէ սխալ տեղի է ունենում:

Քայլ 6: Կոդ

Կոդը կցված է Instructables- ին կամ դիտեք github- ը:

Դուք կարող եք փոփոխել այն ՝ ձեր կարիքների համար ճիշտ աշխատելու համար, կամ կարող եք օգտագործել ուրիշների ծածկագիրը, եթե ցանկանում եք:

waitUntilResponse (); օգնականի գործառույթը վերցված է նրա ծածկագրից: Ստուգեք նրա աշխատանքը և ծածկագիրը նույնպես:

Մի խոսքով, կարգավորման գործառույթում մենք պետք է միացնենք մեր SIM800L մոդուլի GPRS կապը: Մենք գիտենք, արդյոք այն հաջող է, եթե LED- ն արագորեն թարթում է: (setupGPRSC միացում ())

Օղակի գործառույթում `յուրաքանչյուր 15 վայրկյան ուղարկվում է sendData () գործառույթը, որն ունի HTTP հարցում

Ես օգտագործել եմ հարցման տողեր ՝ այս ձևաչափով վեբ սերվեր փոխանցելու համար.

ip adress/file.php? key = value & key = value օր.

Եթե որևէ սխալ տեղի ունենա, համապատասխան LED լուսավորվում է: (SIM, GPS)

Քայլ 7: Վեբ սերվեր

Վեբ սերվեր
Վեբ սերվեր

Մեր օգտագործման համար բավական է պարզ թեթև վեբ սերվեր:

Կան որոշ տարբերակներ, որոնցից կարող եք ընտրել.

  1. Դուք կարող եք օգտագործել ընկերության հեռակա սերվեր, որի համար հավանաբար պարբերաբար պետք է վճարեք:
  2. Դուք կարող եք օգտագործել ձեր սեփական համակարգիչը: Ես այն առաջարկում եմ միայն փորձարկման համար, այն իսկապես արդյունավետ չէ 24/7 աշխատելը, էներգիայի վատնման, անվտանգության խնդիրների պատճառով:
  3. Դուք կարող եք օգտագործել մի փոքրիկ համակարգիչ, ինչպիսին է Raspberry PI- ն: Թեթև, էժան, մեծ էներգիա չի սպառում:

Փորձեցի 2 -րդ, 3 -րդ տարբերակը, լավ աշխատեցին: Դե, հիմնական նպատակը ոչ թե այս հրահանգների սերվերներն են, այլ ձեզ հուշում եմ որոշ խորհուրդներ:

Եթե դուք օգտագործում եք համակարգիչ, ապա հավանաբար օգտագործում եք Windows: Եթե ես լինեի ձեր փոխարեն, ես դրա վրա կտեղադրեի Apache կամ XAMPP սերվեր:

XAMPP- ն արդեն ունի PHP, բացի այդ այն գալիս է նաև HTML- ով, Perl- ով և տվյալների շտեմարանի կառավարման համակարգով: PHP- ի միջոցով կարող եք դինամիկ սերվեր պատրաստել: Եթե ցանկանում եք օգտագործել աշխարհի ցանկացած վայրից ձեր պատրաստած տեղական սերվերը, ապա ձեր համակարգչին պետք է ստատիկ IP նշանակեք և մի քանի նավահանգիստ կատարեք: Ստատիկ IP- ի համար օգտակար ձեռնարկ.

Եվ ամբողջ նավահանգիստը.

Եթե դուք ունեք ազնվամորի, ապա դա լավ պրակտիկա է այն օգտագործել: Դուք կարող եք ծանոթանալ Linux- ի հրամաններին և գործարկել ձեր սեփական սերվերը 24/7 ռեժիմով:

ՕՀ -ն Raspbian Jessie- ն էր ՝ առանց գլխի տեղադրման (առանց ստեղնաշարի, մոնիտորի) - ես այն վերահսկում էի իմ համակարգչով ՝ SSH կապով:

Ես օգտագործեցի tyեփամածիկ ՝ իմ Ազնվամորի մտնելու համար: Մի մոռացեք փոխել ձեր հաշվի գաղտնաբառը, որպեսզի ուրիշները չկարողանան մուտք գործել ձեզ Pi: Լռելյայն է ՝ pi, passw: ազնվամորի:

Տեղադրեցի lighttpd վեբ սերվեր sqlite3- ով: Լավ ձեռնարկը գտնվել է այստեղ.

Ես հիմնականում օգտագործել եմ PHP սերվերի ծածկագրում: PHP- ի միջոցով կարող եք ստանալ տվյալներ, կարդալ/գրել տվյալների շտեմարաններ - հարցումը կոդավորել json ձևաչափով և այլն … Այս ձեռնարկը ձեզ շատ կօգնի, թե ինչպես կառավարել ձեր տվյալների բազան PHP- ով:

Դուք կարող եք իմ կոդը դիտել նաև github- ում ՝ server_files պանակում:

Եվ, իհարկե, դուք պետք է միացնեք ձեր Pi- ին դեպի ձեր երթուղիչին portforwarding- ը, եթե ցանկանում եք դրան մուտք գործել հեռակա կարգով:

Քայլ 8: Ավարտում/Փորձ

Anանկապատը դեռ պետք է պատրաստվի:

Իմ փորձն այն է, որ համակարգը ոչ այնքան վատ է աշխատում: Բայց կայունության բարելավումներ են սպասվում:

Եթե որոնիչը չի աշխատել իմ կցած ծածկագրով, մի անհանգստացեք: Փորձեք համոզվել, որ SIM800L- ը և NEO 6M- ն աշխատում են այնպես, ինչպես պետք է: Դուք կարող եք ազատորեն փոփոխել իմ կոդը կամ փնտրել ավելի լավը: Ես պարզապես հույս ունեմ, որ կարող էի ձեզ ցույց տալ մի օրինակ, թե ինչպես կարող եք ավարտել այս նախագիծը:

Ես ընդունում եմ ցանկացած խորհուրդ, ուղղում մեկնաբանություններից: Ազատ զգալ հարցրեք:

Խորհուրդ ենք տալիս: