-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathGPS.sh
53 lines (41 loc) · 2.02 KB
/
GPS.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/bin/bash
while [ "$(fping google.com | grep alive)" != "google.com is alive" ]
do
sleep 3
done
#DATA='{"token": "qwerty", "user": "qwerty", "message": "Bike Movement"}'
#curl -H 'Content-Type: application/json' -X POST https://api.pushover.net/1/messages.json -d "$DATA" > AAA.txt
while true
do
#BANDWIDTH CONSUMPTION
BWT="$(cat /sys/class/net/eth1/statistics/tx_bytes)"
BWR="$(cat /sys/class/net/eth1/statistics/rx_bytes)"
SUM=$((BWT + BWR))
BW="{\"BW\": $SUM}"
#NEARBY WIFI ACCESS POINTS
WIFIS="$(sudo iwlist wlan0 scan | grep "ESSID" | base64 -w 0)"
WIFIS="{\"WIFIS\": \"$WIFIS\"}"
# FOR SOME STUPID REASON GPS WILL NOT UPDATE EVERY SINGLE TIME, THIS FIXED IT
# https://forums.raspberrypi.com/viewtopic.php?t=331525&sid=3d088484b45e62242e02f4a2153af791&start=25
sudo ubxtool -p RESET
#GPS LOCATION DETAILS
GPS="$(gpspipe -w | grep -m 1 TPV | jq -c '{LAT: (.lat),LON: (.lon),SPD: (.speed),SATTIME: (.time),ALT: (.alt)}')"
SPEED="$(echo "$GPS" | jq -r '.SPD')"
echo "SPEED: $SPEED" > /home/pi/SPEED.dashcam
LOCATIONLON="$(echo "$GPS" | jq -r '.LON')"
LOCATIONLAT="$(echo "$GPS" | jq -r '.LAT')"
echo "$LON $LAT" > /home/pi/LOCATION.dashcam
DATE="$(date)"
echo "$DATE" > /home/pi/DATE.dashcam
#APPEND JSON
FINAL="$(jq --slurp 'add' <(echo "$BW") <(echo "$WIFIS") <(echo "$GPS"))"
#SEND TO LOG FILE
echo "$FINAL," >> /home/pi/GPS.log
FILE=`tac /home/pi/GPS.log | sed '1,2s/,$//' | tac` #REMOVE COMMA AT THE END OF FILE
#SEND FILE TO THE SERVER
RESULT="$(curl --write-out '%{http_code}' --silent --output /dev/null --max-time 3 -X POST https://carpc.clanhost.com.au/API/index.php -H "Content-Type: application/json" -d "[{\"ACTION\": \"SETGPS\",\"GUID\": \"1234\", \"DATA\": [$FILE]}]")"
#IF SUCCES THEN DELETE THE LOG FILE
if [ $RESULT == 200 ]; then
> /home/pi/GPS.log
fi
done