Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Lokaliseer uw bord met een sms

Componenten en benodigdheden

Arduino MKR GSM 1400
× 1

Over dit project

Opmerking:deze tutorial kan verouderd zijn, ga naar hier voor een meer actuele versie.

Het doel van dit project is om te laten zien hoe je de mobiele lokalisatie van de Arduino MKR GSM 1400 kunt gebruiken. Om dit te doen, hebben we een eenvoudige applicatie geïmplementeerd waarmee je de lengte- en breedtegraad van de MKR GSM opnieuw kunt proberen wanneer een sms met een veiligheidscontrole brief is ontvangen. Het afzendernummer wordt opgehaald uit de ontvangen sms en er wordt een antwoord gemaakt met de juiste Google Maps-link, aangevuld met de coördinaten die worden gegeven door de locatieservices die worden geleverd door de u-blox-module.

Wat je nodig hebt

Het project is gebaseerd op een Arduino MKR GSM 1400, een antenne, een LiPo-batterijpakket, een smartphone en een data-simkaart.

  • De Arduino MKR GSM 1400 voert de schets uit en ondersteunt de GSM-connectiviteit die de door ons project vereiste lokalisatiefuncties mogelijk maakt;
  • Antenne en batterij worden respectievelijk gebruikt om de verbinding met het mobiele datanetwerk met een goed signaal mogelijk te maken en om het apparaat van stroom te voorzien wanneer andere voedingen niet beschikbaar zijn;
  • De smartphone is nodig om de sms naar de MKR GSM 1400 te sturen en om GPRS-lokalisatie te vragen;
  • De simkaart is vereist om toegang te krijgen tot het datanetwerk en netwerkwerking mogelijk te maken;
  • PIN, APN en toegangsgegevens zijn vereist om verbinding te maken met het datanetwerk.

Hardware-installatie

Dit project vereist niets speciaals. Sluit de antenne aan op het bord, plaats de simkaart en sluit de LiPo-batterij aan op de JST-connector.

De LiPo-batterij is optioneel, maar kan de stroompieken opvangen die de GSM-module nodig heeft in bepaalde omstandigheden met een slechte dekking.

Hoe het werkt

Dit project gebruikt de MKRGSM-bibliotheek om de sms-berichten en de celgebaseerde georeferentiatie te beheren.

Wanneer een SMS wordt ontvangen, wordt de inhoud gecontroleerd om te zien of deze de letter "L" bevat. Alleen als dit het geval is, gaat de schets verder met de lokalisatie en sms-overdracht. Met deze oplossing kan elk nummer de locatie van het systeem opvragen, maar alleen wie het wachtwoord kent (de "geheime brief") krijgt antwoord. Dit is de regel die de controle uitvoert if (c !=76) en 76 is de ASCII-code van "L". U kunt de waarde wijzigen om de herkende letter te wijzigen.

De GSM-module heeft geen GPS-ontvanger, maar de fabrikant heeft een database met de locatie van elke cel van het GSM-netwerk en geeft daarom coördinaten voor elke geleverde cel-ID. Dit systeem is vrij nauwkeurig in stedelijke gebieden, waar elke cel een klein gebied beslaat. In landelijke gebieden is de dekking van elke cel veel groter en is de opgegeven locatie met een grovere benadering.

Om de link voor Google Maps te maken, gebruiken we een standaard-URL waar we aan het einde alleen de juiste Long- en Lat-waarden samenvoegen. Deze URL ziet eruit als "https://www.google.com/maps/place/, ". De positie die op de kaart wordt weergegeven, is die waar de cel fysiek is gebaseerd; ons bord is binnen de straal van de cel.

De schets

Na een gedetailleerde beschrijving van de schets; de eerste codesectie wordt gebruikt om de bibliotheken op te nemen die nodig zijn voor de toepassing.

MKRGSM omvatten alle functies voor GSM-verbinding, lokalisatie en SMS-beheer, deze zijn beschikbaar via het object GSMClient, GPRS, GSM en GSMLocatie, de SMS-beheer-API's zijn beschikbaar via het object GSM_SMS , de kop ArduinoLowPower importeer de API's die een laag stroomverbruik van de Board-module mogelijk maken.

Als u de code downloadt van de webeditor, vindt u een arduino_secrets.h bestand dat de gevoelige gegevens bevat zoals PIN, APN, gebruiker en wachtwoord. In de webeditor moet u de verstandige gegevens op het tabblad Geheimen invullen.

// include the GSM library#include #include "ArduinoLowPower.h"char PINNUMBER [] =SECRET_PINNUMBER;char GPRS_APN[] =SECRET_GPRS_APN;char GPRS_LOGIN [] =SECRET_GPRS_LOGIN;[ GPRS_PASS_PASSWORD ] =SECRET_GPRS_PASSWORD;// initialiseer de bibliotheekinstanties GPRS gprs;GSM gsmAccess;GSM_SMS sms;GSMLocatielocatie; 

De measureLocation() vraagt ​​de module om de coördinaten opnieuw te proberen via het mobiele netwerk, als er nieuwe coördinaten beschikbaar zijn, wijst het deze toe aan de globale variabele, anders vraag je het opnieuw voor 45 seconden, als er geen metingen beschikbaar zijn die de nauwkeurigheidsbeperkingen respecteren, worden de laatste goede geretourneerd

//globale variabele die wordt gebruikt voor locatiebeheerString GSMlatitude ="0.000000";String GSMlongitude ="0.000000";// Deze functie gebruikt de API's van de locatie om de apparaatcoördinaten op te halen en de globale variabele bij te werken als aan alle vereisten wordt voldaan tevredenvoid measureLocation() {unsigned long timeout =millis();while (millis() - time-out <45000) {if (location.available() &&location.accuracy() <300 &&location.accuracy() !=0) { GSMlatitude =String(locatie.latitude(), 6);GSMlongitude =String(locatie.lengtegraad(), 6);break;}}} 

Het connectNetwork() functie gebruik de API smAccess.begin en gprs.attachGPRS om het bord aan te sluiten op het datanetwerk; worden gebruikt de inloggegevens pin , apn , gebruiker en geslaagd toegewezen door de verklaringen in arduino_secrets.h.

// De connectNetwork()-functie wordt gebruikt voor de board data-connectionvoid connectNetwork(){bool status =false;//set global AT command time-out dit maakt het mogelijk om te herstellen van uart-communicatie// bevriezen tussen samd-module en ublox module.gprs.setTimeout(100000);gsmAccess.setTimeout(100000);// Start GSM-verbinding terwijl (status ==false) {if ((gsmAccess.begin(PINNUMBER) ==GSM_READY) &(gprs.attachGPRS(GPRS_APN, GPRS_LOGIN, GPRS_PASSWORD) ==GPRS_READY)) {status =true;} else {delay(1000);}}}De setup-sectie maakt het mogelijk om al het object dat door de schets wordt gebruikt te initialiseren, wordt de functie connectionNetwork() genoemd om de gegevens vast te stellen verbinding en de lokalisatiestructuur begin.//codesectie gebruikt om gegevensverbinding en lokalisatie te initialiseren objectvoid setup() {connectNetwork();location.begin();} 

De laatste codesectie is de lusfunctie waar het SMS-beheer en de locatiemaatregel worden geïmplementeerd, elke keer dat een nieuwe SMS beschikbaar is, reageert het bord op de rsender met een SMS met de coördinaten van het bord, om het verbruik te verminderen, schakelt het bord de module uit en gaat 60 seconden in diepe slaap.

void loop() { int c; String reactie; String boodschapper =""; meetLocatie(); niet-ondertekende lange time-out =millis(); while (millis() - time-out <5000) {if (sms.available()) { //check voor SMS availablechar senderNumber [20] ={"0"};sms.remoteNumber(senderNumber, 20); //Get remote numberint c =sms.read();if (c !=76) {sms.flush();break;}//concatenate het stringbericht dat moet worden verzonden naar het remote numberString txtMsg ="https:// www.google.com/maps/place/" + GSMlatitude + "," + GSMlongitude;// stuur de messagesms.beginSMS(senderNumber);sms.print(txtMsg);sms.endSMS();break;} } // Schakel de GSM-module uit om het laagste stroomverbruik van het bord te krijgen terwijl gsmAccess.shutdown(); LowPower.sleep(60000); // schakel het lage vermogen gedurende 60 seconden in en probeer het bord opnieuw connectNetwork (); // zet de module aan en maak opnieuw verbinding met het datanetwerk} 

Hoe het te gebruiken

Stel de hardware in zoals hierboven uitgelegd, personaliseer de schets met uw toegangsgegevens, laad de schets op het bord en wacht tot de verbinding met het GSM-netwerk tot stand is gebracht. Dit kan 30 seconden duren.

Nadat de verbinding tot stand is gebracht, stuur je gewoon een sms naar het MKRGSM-simnummer met een "L" als tekst:dit zal het lokalisatieproces starten en het bord zal antwoorden met een sms met de Google Maps-link met de gevraagde positie.

Code

Arduino

Productieproces

  1. Ga groot of ga naar huis met je nieuwe productontwerp
  2. Doe mee met het IOT met je weerstation – CWOP
  3. Het PSoC 6 Pioneer Board gebruiken met het Pioneer IoT Add-on Shield
  4. QR-codes gebruiken met uw CMMS:stap voor stap
  5. Upgrade uw bagage met bagagesets van koolstofvezel
  6. Uw onderdelen labelen met Engraver Filler
  7. Wees slim met uw IoT-dollar
  8. Webinar:Automatiseer uw proces met Techman Robot
  9. 7 manieren om uw PCB-kosten te verlagen
  10. Groei uw activiteiten met landbouwonderhoud
  11. Wat te doen met uw gebruikte apparatuur