Kluisje in zandbak (3 / 5 stap)

Stap 3: Arduino code in de Arduino IDE uploaden

Kluisje in Sandbox
Headerbestanden die nodig zijn

Indien niet beschikbaar, zorg ervoor om ze te vinden in de Github repositories

#include "LGPRS.h"

#include "LGPRSClient.h"

#include "LGPRSServer.h"

#include "LGPS.h"

#include "HttpClient.h"

#include "LTask.h"

#include "LWiFi.h"

#include "LWiFiClient.h"

#include "LDateTime.h"

Aanpassen van de gegevens die nodig zijn volgens uw specificaties

#define WIFI_AP "de naam van uw wifi"

#define WIFI_PASSWORD "uw wifi-wachtwoord"

#define DEVICEID "uw apparaat-id"

#define DEVICEKEY "uw apparaat sleutel"

#define SITE_URL "api.mediatek.com"

#define WIFI_AUTH LWIFI_WPA

#define per 50

#define per1 3

gpsSentenceInfoStruct info; char buff [256]; dubbele breedte; dubbele lengte; dubbele EPD; char buffer_latitude [8]; char buffer_longitude [8]; char buffer_spd [8]; char buffer_sensor [8]; statische unsigned char getComma (unsigned char num, const char * str) {unsigned char i, j = 0; int len=strlen(str); voor (ik = 0; ik < len; ik ++) {als (str [i] == ',') j ++; if(j == num) return ik + 1;} keren 0;} statische dubbele getDoubleNumber (const char * s) {char buf [10]; unsigned char ik dubbele rev; ik = getComma (1, s); ik = ik - 1; strncpy (buf s, ik); BUF [i] = 0; Rev=Atof(BUF); retourneren van rev; } statische dubbele getIntNumber (const char * s) {char buf [10]; unsigned char ik dubbele rev; ik = getComma (1, s); Ik = i - 1; strncpy (buf, s, i); buf [i] = 0; rev=atoi(buf); terugkeer rev;} //Esssential deel van de code //GPS gegevensverwerking //Determining hoeveelheden breedtegraad, lengtegraad en snelheid void parseDPAS (const char * DPASstr) {int tmp, uur, minuut, seconde, num; als (DPASstr [0] == '$') {tmp = getComma (1 DPASstr); uur = (DPASstr [tmp + 0] - '0') * 10 + (DPASstr [tmp + 1] - '0'); Minute = (DPASstr [tmp + 2] - '0') * 10 + (DPASstr [tmp + 3] - '0'); tweede = (DPASstr [tmp + 4] - '0') * 10 + (DPASstr [tmp + 5] - '0'); sprintf (buff, "UTC timer 2d-% 2d-% 2d", uur, minuut, seconde); tmp = getComma (2, DPASstr); breedte = getDoubleNumber(&DPASstr[tmp])/100.0; int latitude_int=floor(latitude); dubbele latitude_decimal =(latitude-latitude_int) *100.0/60.0; breedte = latitude_int + latitude_decimal; tmp = getComma (4, DPASstr); lengte = getDoubleNumber(&DPASstr[tmp])/100.0; int longitude_int=floor(longitude); dubbele longitude_decimal =(longitude-longitude_int) *100.0/60.0; lengte = longitude_int + longitude_decimal; sprintf (buff, "latitude % 10 .4f, lengte = %10.4f =", breedtegraad, lengtegraad); tmp = getComma (7, DPASstr); SPD = getDoubleNumber (& DPASstr[tmp]); sprintf (buff, "snelheid = %F", spd); } else {Serial.println ("geen gegevens ophalen");}} VOID recdat() {LGPS.getData (& info); //Serial.println ((char*) info. DPA); parseDPAS ((const char*) info. DPA); } //AP verbinding void AP_connect() {Serial.print ("verbinding maken met AP...'); terwijl (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {Serial.print("."); delay(500);} Serial.println("success!"); Serial.Print ("Connecting site...");

terwijl (! drivepar.connect (SITE_URL, 80)) {Serial.print("."); delay(500);} Serial.println("success!"); delay(100); } ongeldig getconnectInfo() {drivepar.print ("GET /mcs/v2/devices /"); drivepar.print(DEVICEID); drivepar.println ("/connections.csv HTTP/1.1"); drivepar.print ("Host:"); drivepar.println(SITE_URL); drivepar.Print ("deviceKey:"); drivepar.println(DEVICEKEY); drivepar.println ("verbinding: sluiten"); drivepar.println(); delay(500); int errorcount = 0; Serial.Print ("waiting for HTTPreactie..."); terwijl (! drivepar.available()) {errorcount += 1, Serial.print("."); delay(150);} Serial.println(); int err = http.skipResponseHeaders(); int bodyLen = http.contentLength(); char c; int ipcount = 0; int count = 0; int separater = 0; terwijl (drivepar) {int v = (int)drivepar.read(); als (v! = -1) {c = v; / / Serial.print(c), connection_info [ipcount] = c; if(c==',') separater = ipcount; ipcount ++;} else {Serial.println ("niet meer inhoud, verbinding verbreken"); drivepar.stop();}} int i; voor (ik = 0; ik} connectTCP() {c.stop(); void Serial.Print ("aansluiten op TCP..."); terwijl (0 == c.connect (ip, portnum)) {Serial.println ("opnieuw aansluiten op TCP"); delay(1000);} c.println(tcpdata); c.println(); Serial.println("success!"); } heartBeat() {Serial.println ("verzenden TCP heartBeat"); c.println(tcpdata); c.println();} ongeldig void uploadstatus() {terwijl (! drivepar.connect (SITE_URL, 80)) {Serial.print("."); delay(500);} delay(100); if(digitalRead(13)==1)-upload_led = "ENGINE_MODE_DISPLAY",, 1; anders upload_led = "ENGINE_MODE_DISPLAY,, 0"; int thislength = upload_led.length(); HttpClient http(drivepar); drivepar.Print ("POST /mcs/v2/devices /"); drivepar.Print(DEVICEID); drivepar.println ("HTTP/1.1 /datapoints.csv"); drivepar.Print ("Host:"); drivepar.println(SITE_URL); drivepar.Print ("deviceKey:"); drivepar.println(DEVICEKEY); drivepar.Print ("Content-Length:"); drivepar.println(thislength); drivepar.println ("Content-Type: tekst/csv"); drivepar.println ("verbinding: sluiten"); drivepar.println(); drivepar.println(upload_led); delay(500);

int errorcount = 0; terwijl (! drivepar.available()) {Serial.print("."); delay(100);} int err = http.skipResponseHeaders(); int bodyLen = http.contentLength(); terwijl (drivepar) {int v = drivepar.read(); als (v! = -1) {Serial.print(char(v));} else {Serial.println ("niet meer inhoud, verbinding verbreken"); drivepar.stop();}} Serial.println(); } //Data streaming naar Mediatek Cloud Sandbox nietig transdat() {terwijl (! drivepar.connect (SITE_URL, 80)) {Serial.print("."); delay(500);} delay(100); vlotter sensor = analogRead(A0); Serial.printf("Latitude=%.4f\tlongitude=%.4f\tspd=%.4f\tsensor=%.4f\n",Latitude,longitude,SPD,sensor); Als (latitude >-90 & & latitude < = 90 & & lengte > = 0 & & lengte < 360) {sprintf (buffer_latitude, "%.4f", latitude); sprintf (buffer_longitude, "%.4f", lengtegraad); sprintf (buffer_spd, "%.4f", spd); sprintf (buffer_sensor, "%.4f", sensor);} String upload_GPS = "GPS,,"+String(buffer_latitude)+","+String(buffer_longitude)+","+String(buffer_spd)+","+String(buffer_sensor)+","+"0"+"\n"+"LATITUDE,,"+buffer_latitude+"\n"+"LONGITUDE,,"+buffer_longitude+"\n"+"SPEED,,"+buffer_spd+"\n"+"STEERING_ANGLE,,"+buffer_sensor; int GPS_length = upload_GPS.length(); HttpClient http(drivepar); drivepar.Print ("POST /mcs/v2/devices /"); drivepar.Print(DEVICEID); drivepar.println ("HTTP/1.1 /datapoints.csv"); drivepar.Print ("Host:"); drivepar.println(SITE_URL); drivepar.Print ("deviceKey:"); drivepar.println(DEVICEKEY); drivepar.Print ("Content-Length:"); drivepar.println(GPS_length); drivepar.println ("Content-Type: tekst/csv"); drivepar.println ("verbinding: sluiten"); drivepar.println(); drivepar.println(upload_GPS); delay(500);

int errorcount = 0; terwijl (! drivepar.available()) {Serial.print("."); delay(100);} int err = http.skipResponseHeaders(); int bodyLen = http.contentLength(); terwijl (drivepar) {int v = drivepar.read(); als (v! = -1) {Serial.print(char(v));} else {Serial.println ("niet meer inhoud, verbinding verbreken"); drivepar.stop();}} Serial.println(); } LGPRSClient c; unsigned int rtc; unsigned int lrtc; unsigned int rtc1; unsigned int lrtc1; char poort [4] = {0}; char connection_info [21] = {0}; char ip [15] = {0}; int portnum; int val = 0; Tcpdata koord = String(DEVICEID) + "," + String(DEVICEKEY) + ", 0"; Tcpcmd_led_on koord = "ENGINE_MODE_CONTROL", 1; Tcpcmd_led_off koord = "ENGINE_MODE_CONTROL, 0"; String upload_led; LGPRSClient drivepar; HttpClient http(drivepar); Void setup setup {pinMode (13, OUTPUT); LTask.begin(); LWiFi.begin(); Serial.begin(115200); LGPS.powerOn(); AP_connect(); getconnectInfo(); connectTCP(); Serial.println("...");} Void loop lus {String tcpcmd = ""; terwijl (c.available()) {int v = c.read(); als (v! = -1) {Serial.print((char)v); tcpcmd += (char) v; als (tcpcmd.substring(40).equals(tcpcmd_led_on)) {digitalWrite (13, hoge); Serial.Print ("Switch LED op"); tcpcmd = ""; } else if(tcpcmd.substring(40).equals(tcpcmd_led_off)) {digitalWrite (13, laag); Serial.Print ("Schakel LED"); tcpcmd = ""; }}} LDateTime.getRtc(&rtc); Als ((rtc-lrtc) > = per) {heartBeat(); lrtc = rtc;} LDateTime.getRtc(&rtc1); Als ((rtc1-lrtc1) > = per1) {uploadstatus(); recdat(); transdat(); lrtc1 = rtc1;}}

Gerelateerde Artikelen

Hoe maak je een combinatie zandbak/planter

Hoe maak je een combinatie zandbak/planter

Het is nu zomer tijd, wat betekent dat de kinderen uit school en we altijd proberen op zoek naar manieren om te genieten van hun vrije tijd en tijd buiten doorbrengen! We hebben een verhoogde zandbak gehad voor een tijdje, maar het was opgebouwd uit
Zandbak met zitbanken van de geïntegreerde

Zandbak met zitbanken van de geïntegreerde

mijn grootste project tot nu toe - de ultieme zandbak - het heeft gebouwd in stoelen die vouw ter dekking van het zand wanneer niet in gebruik en voorkomt dat het steeds wat anders zou de kattenbak voor elke kat buurt.Dit is een tijdrovend bouwen maa
Arduino Bluetooth gecontroleerde bureaulamp - met Relay Kluisje

Arduino Bluetooth gecontroleerde bureaulamp - met Relay Kluisje

Vandaag zal ik u tonen hoe te bouwen uw eigen Bluetooth gecontroleerde bureaulamp met arduino uno.Voor dit project zul je om te bouwen van de kluis van het ralay dat u kunt het hier vinden:(Opmerking: als u niet wilt om te bouwen van een kluisje kunt
Voorzien van Turtle zandbak om te planten Ring

Voorzien van Turtle zandbak om te planten Ring

IntroEen oude Little Tikes schildpad zand doos omzetten in een aanplant ring.Onlangs kocht ik een huis en de vorige eigenaars links achter een Little Tikes turtle zandbak. Ik heb geen kinderen dus mijn gebruik voor een groene plastic schildpad beperk
Club House / spelen huis op wielen met zandbak van gerecycleerd hout

Club House / spelen huis op wielen met zandbak van gerecycleerd hout

Hallo, het is al een lange tijd!Hier een litte project: mijn kid's droom was om een zandbak te hebben omdat een van zijn vriend een, dus, heeft als ik wilde altijd al een clubhuis toen ik een kind was, heb ik besloten om het combineren van de twee.Er
Arduino Relay Kluisje met stopcontact

Arduino Relay Kluisje met stopcontact

Een relais zit een elektrisch te bedienen schakelaar. Vele Relais kunnen een elektromagneet mechanisch de schakelaar te bedienen en voorzien van elektrische isolatie tussen twee circuits. In dit project er is geen echte behoefte om te isoleren van ee
Kluisje voor hoogspanning projecten

Kluisje voor hoogspanning projecten

dit vak handelingen als derde partij tussen het stopcontact in uw muur en welke hoogspanning of gevaarlijke project je aan het doen zijn. Voor elektriciteit te stromen uit de doos moet u een knop worden ingedrukt aan uw project, dient die het dubbele
Zandbak met deksel en bankjes

Zandbak met deksel en bankjes

Houten zandbak met deksel en bankjes.Gemaakt van planken van 2,5 cm x 15 cmLaatste sandbox-afmetingen 135 x 135 cm x15cmOm u te maken zult: planken, schroeven, 8 scharnierend.Minimale werkset: saw, schroevendraaier
Bouwen van een grote zandbak met bank stoel deksels

Bouwen van een grote zandbak met bank stoel deksels

dit is een mooi 4' x 4' zand-doos met deksels die openstaan Bank zitplaatsen.  Dit werd geïnspireerd door sommige andere DIY projecten die ik vond.  Ik deed dit met behulp van alle schroot materialen.Stap 1: materialen klaar de lijst* 18 - 4' 2 x 4's
Pedistal zandbak

Pedistal zandbak

het was dit of graven een wortel van de boom.Stap 1: sjabloon Om de schaal ik gebruikte de kinderen sidewalk krijt en trok het op de garage vloer.Stap 2: overbrengen Zodra de bodem heeft verlaagd, leg elk stuk op een volledige pagina met lgs hout en
Upgraden van Firmware-Over-the-Air op LinkIt 7688 MediaTek Cloud zandbak met

Upgraden van Firmware-Over-the-Air op LinkIt 7688 MediaTek Cloud zandbak met

Hallo iedereen! Dit is mijn eerste post op instructables en ik wil met u delen met verschillende toepassingen op slimme 7688 LinkIt met behulp van MediaTek Cloud Sandbox.Vandaag, ik zou willen beginnen met hoe te upgraden van de firmware op uw LinkIt
Piaskownica zandbak

Piaskownica zandbak

Szybka piaskownica dla siostrzenicy, bo brudne dziecko te szczęśliwe dziecko :)Stap 1: rozmierzanie desek ik Cięcie ich nb wymiar, desek za camere nie było wiec jak starczyło naar taka duża wyszła piaskownicapiaskownica ma wymiar 220 x 200 cm x 30 cm
De ultieme Kid's Treehouse

De ultieme Kid's Treehouse

Deze boomhut werd geïnspireerd door ieder kind (zowel jong en oud), die had een treehouse of gedroomd van het hebben van een. Zijn ontwerp was gebaseerd op de veronderstelling dat volwassenen behoefte aan een plek om plezier te hebben met hun kindere
Upcycled Vintage koffer Boombox

Upcycled Vintage koffer Boombox

Ik ben momenteel een Artist in Residence bij de San Francisco Dump, gerund door Recology.Er, geweest ik getuige van oneindige tonnen ongewenste puin stroom van de consument in het recycling-centra en stortplaatsen. Ik merkte dat bijna alle van de E-w