Slimme Holster: Hallsensor en GPS sensor voor geo locatie (5 / 9 stap)

Stap 5: De code klaar


Hieronder is een snipet voor de code die wordt gebruikt. Let op: er is ook een LED en de knop wordt gebruikt in de code samen met de integratie met FireBase.

Volledige code voor de GPS, Hallsensor en LEDs zijn op https://github.com/tsmilesagain/safety_holster

#include "mraa.hpp"

#include "UdpClient.hpp"

#include < grove.h >

#include < signal.h >

#include < ublox6.h >

#include < a110x.h >

#include < stdio.h >

#include < curl/curl.h >

#include < iostream >

#include < sstream >

#include < tekenreeks >

met behulp van naamruimte upm; met behulp van namespace std;

Const size_t bufferLength = 256;

definiëren van knooppunt "localhost"
#define SERVICE "41234"

#define COMP_NAME "temperatuur"

int main() {}

De Grove LED object maken met GPIO pin 4

UPM::GroveLed * ledRed = nieuwe upm::GroveLed(4);

UPM::GroveLed * ledGreen = nieuwe upm::GroveLed(3);

een analoge input-object maken vanuit de MRAA met behulp van pin A0

mraa::AIO * a_pin = nieuwe mraa::Aio(0);

De knopobject maken met GPIO pin 8

UPM::GroveButton-knop = nieuwe upm::GroveButton(8);

Instantiëren van een Ublox6 GPS-apparaat op uart 0.

UPM::Ublox6 * nmea = nieuwe upm::Ublox6(0);

int gunDrawn = 100;

int magFieldAvg = 0;

int magFieldCurrent = 0;

int magField [10];

int tempIndex = 0;

int numSamples = 2;

string tempData;

Controleer of we op Galileo of Edison lopen

mraa_platform_t platform = mraa_get_platform_type();

Als ((platform! = MRAA_INTEL_GALILEO_GEN1) & & (platform! = MRAA_INTEL_GALILEO_GEN2) & & (platform! = MRAA_INTEL_EDISON_FAB_C))

{std::cerr << "Niet-ondersteund platform, verlaten" << std::endl;

Return MRAA_ERROR_INVALID_PLATFORM; }

Lees in hall sensorgegevens

Als (a_pin == NULL)

{std::cerr << "Kan geen mraa::Aio object, verlaten maken" << std::endl;

Return MRAA_ERROR_UNSPECIFIED; }

GPS-Setup

Zorg ervoor dat poort correct is geïnitialiseerd. 9600 baud is de standaardinstelling.

Als (! nmea -> setupTty(B9600))

{cerr << 'Failed to instellingsparameters tty poort' << endl;

return 1; }

Curl setup

volgde dit voorbeeld krul: http://curl.haxx.se/libcurl/c/http-post.html

CURL * krullen;

CURLcode res;

In windows zal dit init de winsock-spullen

curl_global_init(CURL_GLOBAL_ALL);

krijgen van een curl handle

curl = curl_easy_init();

Stel eerst de URL die is bezig met het ontvangen van onze POST. Deze URL kan

een http://curl.haxx.se/libcurl/c/http-post.html net zo goed worden als thats wat verdient het

gegevens.

curl_easy_setopt (krul, CURLOPT_URL, "https://flickering-inferno-5440.firebaseio.com/data.json");

Dit is alleen bedoeld voor NMEA-gegevens verzamelen en niet verwerkt

should see output zien op console

char nmeaBuffer [bufferLength];

while(1)

{uint16_t pin_value = a_pin -> read();

magFieldAvg = 0;

magField [magFieldCurrent ++] = pin_value;

Als (magFieldCurrent > = numSamples)

{magFieldCurrent = 0;}

for (int i = 0; ik < numSamples; i ++

{magFieldAvg += magField [i];}

magFieldAvg / = numSamples;

Sleep(1) daarvoor;

if(magFieldAvg < gunDrawn)

{ledRed -> off();

ledGreen -> on(); }

else {}

Als (nmea -> {dataAvailable())}

int rv = nmea -> readData (nmeaBuffer, bufferLength);

Als (rv > 0) {}

schrijven (1, nmeaBuffer, rv);

Std::Cout << nmeaBuffer << std::endl; }

else {}

enkele luiden soort vergissing voorvallen

cerr << "Poort Lees fout." << endl;

breken;

}

curl_easy_setopt (krul, CURLOPT_POSTFIELDS, "{\"gunDrawn\":\"true\ "}");

Uitvoeren van het verzoek, res krijgt de retourcode

res = curl_easy_perform(curl);

Controleren op fouten

Als (res! = CURLE_OK)

fprintf (stderr, "curl_easy_perform() is mislukt: %s\n", curl_easy_strerror(res));

}

Sommige LED's toevoegen

ledRed -> on();

ledGreen -> off(); }

Als (knop -> value() == 1)

{breken;}

}

De Grove LED-object verwijderen

ledGreen -> off();

ledRed -> off();

verwijderen van ledGreen;

verwijderen van ledRed;

verwijderen van a_pin;

verwijderen, knop;

verwijderen van nmea;

Return MRAA_SUCCESS; }

Gerelateerde Artikelen

Met behulp van GPS SENSOR

Met behulp van GPS SENSOR

IntroductieEen GPS ontvanger satellieten gebruikt voor het lokaliseren van locaties, dus zolang je hebt een GPS-ontvanger en een duidelijk zicht op de lucht, u zult nooit verloren gaan weer :)Nu, hoe een GPS-Sensor werkt?Neem een kijkje op deze gewel
PIR sensor voor DSLR fotocamera

PIR sensor voor DSLR fotocamera

Lang verhaal kort: het was nodig om buiten foto's elke keer wanneer een dier naderde een DSLR camera, dus ik bouwde een doos met een PIR-sensor en een kleine Arduino Pro Mini naar de camera bedient.De afstandsbedieningen gebruikt voor DSLR's / mirorr
Maken van een Tool lengte sensor voor Stepcraft 2 CNC

Maken van een Tool lengte sensor voor Stepcraft 2 CNC

Dit is een tutorial over het maken van een snelle en vuile gereedschap lengte sensor voor het Stepcraft 2 CNC-platform. Dit is gewoon een snelle demonstratie met de dichtbije materialen die in een paar minuten kunnen worden opgebouwd. Het werkt, maar
Arduino Tutorial: Krijgen reisde afstand met behulp van ADNS-9800 Sensor voor de muis van de Laser

Arduino Tutorial: Krijgen reisde afstand met behulp van ADNS-9800 Sensor voor de muis van de Laser

De sensor van de gaming ADNS-9800 Laser bestaat uit sensor en VCSEL in één chip-on-board (COB) pakket. ADNS-9800 biedt verbeterde functies zoals programmeerbare frame rate, programmeerbare resolutie, configureerbare slaap en wakker van de tijd versch
Goedkoop en gemakkelijk toerenteller (RPM-Sensor) voor DC-motoren geborsteld

Goedkoop en gemakkelijk toerenteller (RPM-Sensor) voor DC-motoren geborsteld

ik net kwam met een zeer eenvoudig, eenvoudig te implementeren en zeer goedkope manier om te controleren de RPM van geborsteld gelijkstroommotoren.  Het zou ook werken op Borstelloze motoren, maar er zijn betere manieren voor hen (tellen fase verande
Raspberry Pi - TSL45315 Sensor voor omgevingslicht Python Tutorial

Raspberry Pi - TSL45315 Sensor voor omgevingslicht Python Tutorial

TSL45315 is een digitale sensor voor omgevingslicht. Het benadert menselijk oog reactie onder verschillende lichtomstandigheden. De apparaten hebben driemaal selecteerbare integratie en bieden een directe 16-bits lux output via een I2C bus interface.
Non-blocking ultrasone Sensor voor Arduino

Non-blocking ultrasone Sensor voor Arduino

De HC-SR04 ultrasone opgezette module is een fantastische aanvulling op elk project van de robot. Zijn een zeer eenvoudige en goedkope manier om track een robots progress (ervan uitgaande dat we hebben vaste referentiepunten) over een gerapporteerde
Raspberry Pi - TSL45315 Sensor voor omgevingslicht het leerprogramma van Java

Raspberry Pi - TSL45315 Sensor voor omgevingslicht het leerprogramma van Java

TSL45315 is een digitale sensor voor omgevingslicht. Het benadert menselijk oog reactie onder verschillende lichtomstandigheden. De apparaten hebben driemaal selecteerbare integratie en bieden een directe 16-bits lux output via een I2C bus interface.
Arduino Nano - TSL45315 Sensor voor omgevingslicht Tutorial

Arduino Nano - TSL45315 Sensor voor omgevingslicht Tutorial

TSL45315 is een digitale sensor voor omgevingslicht. Het benadert menselijk oog reactie onder verschillende lichtomstandigheden. De apparaten hebben driemaal selecteerbare integratie en bieden een directe 16-bits lux output via een I2C bus interface.
Goedkope PIR sensor voor bijvoorbeeld Arduino

Goedkope PIR sensor voor bijvoorbeeld Arduino

voor een project nodig ik meerdere PIR sensoren en ik weet Adafruit verkoopt een PIR-board voor ongeveer 10 dollar. Een beschrijving van dat bestuur is op instructables. Dat is doenbaar, maar ik had een paar nodig en natuurlijk er is ook de scheepvaa
VDO oliedruk sensor voor Arduino

VDO oliedruk sensor voor Arduino

het idee is om een instrument voor 7.0 Inch TFT (800 X 480) met de uitlezing sensor voor mijn bootje.Het heeft een ingebouwde Yanmar 3GM 30-3 cilinder dieselmotor. De motor is zo eenvoudig aangezien het krijgt.Er zijn slechts twee meters aan boord (b
Mijn zesde Project: Slimme Tank Chassis met ultrasone Sensor

Mijn zesde Project: Slimme Tank Chassis met ultrasone Sensor

In de vorige projecten heb ik geprobeerd verschillende manieren om te controleren de smart tank handmatig. Maar hoe zit het als de tank zijn eigen beslissing en het besturingselement zelf maakt? Het moet heel interessant zijn. Ultrasone sensor kan he
Arduino ultrasone waterniveau Sensor voor espressomachines

Arduino ultrasone waterniveau Sensor voor espressomachines

Ik heb een zeer goede maar mooie oude koffie espressomachine met een uitneembare watertank, het probleem is dat het niet bieden een waarschuwing voor laag waterniveau, licht, dus ik kan niet zo'n niveau voordat u uit water weten! OF op zijn minst zon
DIY GPS datalogger voor je volgende station/wandelpad

DIY GPS datalogger voor je volgende station/wandelpad

Dit is een GPS-datalogger die u voor meerdere doeleinden gebruiken kunt, zeggen als uwilt u vastleggen van de lange rit die u nam in het weekend om te controleren de fall kleuren.of hebt u een Lievelingsparcours die u bezoekt in de herfst van elk jaa