Kassaskåp i sand (3 / 5 steg)

Steg 3: Ladda upp Arduino kod i Arduino IDE

Kassaskåp i sandlådan
Header-filer som krävs

Om sådana inte finns, se till att hitta dem i Github databaser

#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"

Anpassa data som behövs enligt dina specifikationer

#define WIFI_AP "ditt wifi namn"

#define WIFI_PASSWORD "din wifi lösenord"

#define DEVICEID "ditt enhets-id"

#define DEVICEKEY "din enhet nyckel"

#define SITE_URL "api.mediatek.com"

#define WIFI_AUTH LWIFI_WPA

#define per 50

#define per1 3

gpsSentenceInfoStruct info; röding buff [256]; dubbel bredd. dubbel longitud; dubbla spd; char buffer_latitude [8]. char buffer_longitude [8]. char buffer_spd [8]. char buffer_sensor [8]. statiska unsigned char getComma (unsigned char num, const char * str) {unsigned char i, j = 0; int len=strlen(str); för (jag = 0; jag < len; jag ++) {om (str [i] == ',') j ++; if(j == num) återvända i + 1.} return 0;} statiska dubbel getDoubleNumber (const char * s) {char buf [10], unsigned char jag dubbla rev; jag = getComma 1, s; jag = i - 1; strncpy (buf s, jag); BUF [i] = 0; rev=ATOF(BUF); returnera rev; } statiska dubbel getIntNumber (const char * s) {char buf [10], unsigned char jag dubbla rev; jag = getComma 1, s; jag = i - 1; strncpy (buf, s, i); buf [i] = 0; rev=atoi(buf); return rev;} //Esssential del av koden //GPS databehandling //Determining kvantiteter latitud, longitud och hastighet void parseDPAS (const char * DPASstr) {int tmp, timme, minut, sekund, num, om (DPASstr [0] == '$') {tmp = getComma (1 DPASstr); timme = (DPASstr [tmp + 0] - '0') * 10 + (DPASstr [tmp + 1] - '0'); minut = (DPASstr [tmp + 2] - '0') * 10 + (DPASstr [tmp + 3] - '0'); för det andra = (DPASstr [tmp + 4] - '0') * 10 + (DPASstr [tmp + 5] - '0'); sprintf (buff, "UTC timer 2d-% 2d-% 2d", timme, minut, sekund); tmp = getComma (2, DPASstr). Latitude = getDoubleNumber(&DPASstr[tmp])/100,0; int latitude_int=floor(latitude); dubbel latitude_decimal =(latitude-latitude_int) *100.0/60.0; Latitude = latitude_int + latitude_decimal; tmp = getComma (4, DPASstr). longitud = getDoubleNumber(&DPASstr[tmp])/100,0; int longitude_int=floor(longitude); dubbel longitude_decimal =(longitude-longitude_int) *100.0/60.0; longitud = longitude_int + longitude_decimal; sprintf (buff, "latitud = % 10 .4f, longitud = %10.4f", latitud, longitud); tmp = getComma (7, DPASstr). SPD = getDoubleNumber (& DPASstr[tmp]); sprintf (buff, "hastighet = %F", spd); {} annat {Serial.println ("inte få data");}} void recdat() {LGPS.getData (& info); //Serial.println ((char*) information. DATASKYDDSMYNDIGHETERNA); parseDPAS ((const char*) information. DATASKYDDSMYNDIGHETERNA); } //AP anslutning void AP_connect() {Serial.print ("ansluter till AP..."), medan (0 == LWiFi.connect (WIFI_AP, LWiFiLoginInfo (WIFI_AUTH, WIFI_PASSWORD))) {Serial.print("."); delay(500);} Serial.println("success!"); Serial.Print ("ansluta webbplatsen...");

medan (! drivepar.connect (SITE_URL, 80)) {Serial.print("."); delay(500);} Serial.println("success!"); Delay(100); } void 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 ("anslutning: Stäng"); drivepar.println(); Delay(500); int errorcount = 0; Serial.Print ("väntar för HTTP-svar..."); medan (! drivepar.available()) {Serial.print("."); errorcount += 1; delay(150);} Serial.println(); int err = http.skipResponseHeaders(); int bodyLen = http.contentLength(); char c; int ipcount = 0; int count = 0; int separater = 0; samtidigt (drivepar) {int v = (int)drivepar.read(); om (v! = -1) {c = v; / / Serial.print(c), connection_info [ipcount] = c; if(c==',') separater = ipcount; ipcount ++;} annat {Serial.println (inte mer innehåll, koppla bort"); drivepar.stop();}} int i; för (jag = 0; jag} void connectTCP() {c.stop(); Serial.Print ("ansluta till TCP..."); medan (0 == c.connect (ip, portnum)) {Serial.println ("åter ansluta till TCP"); delay(1000);} c.println(tcpdata); c.println(); Serial.println("success!"); } void heartBeat() {Serial.println ("Skicka TCP heartBeat"); c.println(tcpdata); c.println();} void uploadstatus() {medan (! drivepar.connect (SITE_URL, 80)) {Serial.print("."); delay(500);} delay(100); if(digitalRead(13)==1) upload_led = "ENGINE_MODE_DISPLAY,, 1", annan 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 ("/datapoints.csv HTTP/1.1"); drivepar.Print ("Host:"); drivepar.println(SITE_URL); drivepar.Print ("deviceKey:"); drivepar.println(DEVICEKEY); drivepar.Print ("Content-Length:"); drivepar.println(thislength); drivepar.println ("Content-Type: text/csv"); drivepar.println ("anslutning: Stäng"); drivepar.println(); drivepar.println(upload_led); Delay(500);

int errorcount = 0; medan (! drivepar.available()) {Serial.print("."); delay(100);} int err = http.skipResponseHeaders(); int bodyLen = http.contentLength(); samtidigt (drivepar) {int v = drivepar.read(); om (v! = -1) {Serial.print(char(v));} annat {Serial.println (inte mer innehåll, koppla bort"); drivepar.stop();}} Serial.println(); } //Data streaming till Mediatek Cloud sandlåda void transdat() {medan (! drivepar.connect (SITE_URL, 80)) {Serial.print("."); delay(500);} delay(100); float sensor = analogRead(A0); Serial.printf("Latitude=%.4f\tlongitude=%.4f\tspd=%.4f\tsensor=%.4f\n",Latitude,Longitude,SPD,sensor); om (latitud > -90 & & latitude < = 90 & & longitud > = 0 & & longitud < 360) {sprintf (buffer_latitude, "%.4f", latitud); sprintf (buffer_longitude, "%.4f", longitud); 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 ("/datapoints.csv HTTP/1.1"); 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: text/csv"); drivepar.println ("anslutning: Stäng"); drivepar.println(); drivepar.println(upload_GPS); Delay(500);

int errorcount = 0; medan (! drivepar.available()) {Serial.print("."); delay(100);} int err = http.skipResponseHeaders(); int bodyLen = http.contentLength(); samtidigt (drivepar) {int v = drivepar.read(); om (v! = -1) {Serial.print(char(v));} annat {Serial.println (inte mer innehåll, koppla bort"); drivepar.stop();}} Serial.println(); } LGPRSClient c; unsigned int rtc; unsigned int lrtc; unsigned int rtc1; unsigned int lrtc1; char port [4] = {0}. char connection_info [21] = {0}. char ip [15] = {0}. int portnum; int val = 0; String tcpdata = String(DEVICEID) + "," + String(DEVICEKEY) + ", 0"; String tcpcmd_led_on = "ENGINE_MODE_CONTROL, 1"; String tcpcmd_led_off = "ENGINE_MODE_CONTROL, 0"; Sträng upload_led; LGPRSClient drivepar; HttpClient http(drivepar); Setup void setup() {pinMode (13, OUTPUT); LTask.begin(); LWiFi.begin(); Serial.BEGIN(115200); LGPS.powerOn(); AP_connect(); getconnectInfo(); connectTCP(); Serial.println("...");} Loop void loop() {String tcpcmd = ""; samtidigt (c.available()) {int v = c.read(); om (v! = -1) {Serial.print((char)v); tcpcmd += (char) v; om (tcpcmd.substring(40).equals(tcpcmd_led_on)) {digitalWrite 13, hög. Serial.Print ("Switch LED på"); tcpcmd = ""; } annat if(tcpcmd.substring(40).equals(tcpcmd_led_off)) {digitalWrite 13, låg. Serial.Print ("avstängning LED"); tcpcmd = ""; {}}} LDateTime.getRtc(&rtc); om ((rtc-lrtc) > = per) {heartBeat(); lrtc = rtc;} LDateTime.getRtc(&rtc1); om ((rtc1-lrtc1) > = per1) {uploadstatus(); recdat(); transdat(); lrtc1 = rtc1;}}

Se Steg
Relaterade Ämnen

Helt funktionssätt Spray kan avledning kassaskåp: förvara dina värdesaker skyddade

ungefär ett år sedan, mitt hus var uppdelade och många av mina personliga saker togs. Jag började tänka om hela min säkerhet. Jag kom med detta projekt med hopp om att hålla min lilla värdesaker säkert. Jag vet att jag är inte den första personen att...

Hur man Sand broderi Hoops

Om du visar ditt broderi i hoops, vill du slipa dem för att göra dem utseende trevligare! Om du använder trä hoops för brodera (jag brukar använda plast), slipa dem förhindrar trä snagging på din tandtråd eller tyg. Du kan också färga eller måla hoop...

Sand Rocket spis

vad är en raket spis? Tar det? Hehe, nej, men det skulle vara cool! :) Rocket spis är en mycket effektiv vedspis det nästan låter som en raket när den är på "full gas" (bränna vid dess hetaste, mest effektiva stat). Jag har sett olika varianter...

Glas flaskor återvinns till färgade sands

detta är en enkel DIY glas kross som ger dig en stor övre kropp träning och producerar vackra färgad sand som kan användas för krukor eller glas smältning med en stor Fresnel lins....

DIY bok kassaskåpet boxas

Vi försöker alltid att hålla våra saker skyddade från tjuvar. Det finns många kassaskåp på marknaden men nästan alla av dem är mycket dyra och it´s först plats där tjuvar kommer att se ut. Så ett smart alternativ lösning skulle köpa en bok säker, men...

Hur till: kassaskåp/gömställe från en gammal Router

i detta Instructable kommer jag visa dig hur man gör en fin kassaskåp/gömställe från en gamla, trasiga internet Router. Du kanske eller kanske inte har denna samma router, och om du inte, förhoppningsvis det kan åtminstone ge dig en idé om vad du kan...

DIY barn Sand Block instrument

min fru nyligen köpa en uppsättning av sand träblock instrument från en lärare leverans butik för att använda med hennes barn musikgrupp. Tyvärr, på $5 en pop hon inte har en budget att få block för varje barn som hon arbetar med.Material som används...

Färgad Sand hitta och söka Party burkar

Ett litet spel att göra för ett barn spela party med grundläggande basmaterial!Leveranser:Små burkar (dessa är barnmat)½ lb ACTÍVA färgad sand väskor i olika färgerSmå objekt att söka efter: ett gem, tackel, kärnaav majs, en pärla, penny, gummiband f...

Diskmaskin kassaskåp Minecraft Cookie burkar

Gillar du Minecraft? Gillar du cookie burkar? Gillar du använder diskmaskin för att tvätta din nerdy cookie burkar?Är detta instructable för dig!Dessa Minecraft tema cookie burkar är perfekt gåva for...well någon. Vem älskar inte cookie burkar?Vad du...

Bälte Sander Seam Rubber

En söm gummi används för utjämning stygn och fällbara veck i Canvas, det är som en segelmakare järn.Steg 1: Skaffa några träHitta en bit av lövträ tillräckligt länge för din söm gummi och låt den torka.Steg 2: Split i kvartsparterDela upp virket i fj...

Bälte Sander trä Fid

Ett Fid är ett verktyg för peta i knop och rep.Använda den för att driva undan kardeler i turkarna huvuden eller Mats eller öppna strandsatta rep för skarvning.Steg 1: Skaffa några träHitta en bit av lövträd tillräckligt länge för din Fid och låt den...

Magisk Sand - Sand som inte kommer att bli blöt!

Magisk Sand - det helt enkelt inte kommer att få våt!Jag kommer att lära dig att göra särskilda sand som inte skulle bli blöt!Du kan använda det så när du frågar en spectaor för att nämna en färg av sand efter du har blandas det med vatten!Du drar ut...

Kropp arbete sander gjort att en kant sander

Jag är fruktansvärt på ta bilder och att när jag går längs i mina projekt så jag är rädd har jag inte har fått tillräckligt med bilder den här gången heller.Steg 1: Att göra ramen Jag använde spånskiva i detta projekt eftersom det är stark, jag tror...

Bygga ett gjuteri och sand-cast aluminium.

Hej instructableers DIYers och Internet människor överallt! Välkommen till min debut instructable!!!(Whooo, vi älskar dig Fenrir! Du klippa! Ge mig dina strumpor för min creepily besatt samling av saker om dig!).Tack, tack! Men egentligen, jag måste...

Casting glasunderlägg med Laser nedskärningar och Sand Blaster

Gör eleganta anpassade glasunderlägg med Rapidset Cement alla, ett billigt sandblaster och 1/8th tum plywood bitar skär ut på laserskärare.Steg 1: Skapa din Laser skurna Design på datorn Jag använde Autocad och Adobe Illustrator för att komma med en...

Bälte sander aluminium polering

Det finns flera Instructables visar hur man gör en monter för en träbearbetning sanders handhållna bälte men jag har inte sett någon använda dem på metal.Jag göra motorcykeldelar 'blanka', det ser bättre och också gör sak är lättare att hålla renJag...

Svart & Decker bälte sander reparation.

3 "x 21" bälte sander fix. Jag var på min lokala hem förbättring butik idag och de hade en trottoar utförsäljning. Jag hittade denna Black & Decker 3 "x 21" bandslip som såldes för delar för en ynka $5,00. Jag tänkte att som med de...

Hur till göra en Vegemite Sand som

detta är ett klassiskt Aussie sand som att jag fick reda på från att lyssna på män i arbetslivet är ner under.i lärde mig detta från Internet och jag visar hur man gör en nybörjare Vegemite sand som:)Steg 1: Samla leveranser Att starta du behöver Veg...

Billiga sand bag

Som du smuttar på din på din Big Gulp undrar hur att komma i form och att vilja lyfta vikter här är en öga-rådjur. Bag-in-box! Det slag som hölls sirap för att tomma kalorier frostiga dryck du har där i din hand. Påsarna är tjock, stark och ganska lä...