#include <TridentTD_LineNotify.h>
#include <WiFi.h>
#include<Wire.h>
#define SSID "Wokwi-GUEST"
#define PASSWORD ""
#define LINE_TOKEN "L6nKu8vddC3j1abMm4WJTRNKuaez8urriktuTxPJgpY"
const int MPU_addr=0x68;
int16_t AcX,AcY,AcZ,GyX,GyY,GyZ;
int minVal=265;
int maxVal=402;
double x;
double y;
double z;
void setup() {
Serial.begin(115200);
WiFi.begin(SSID, PASSWORD, 6);
Serial.print("Connecting to WiFi...");
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("");
Serial.println("WiFi connected");
LINE.setToken(LINE_TOKEN);
LINE.notify("Smart belt on line!!!");
Wire.begin();
Wire.beginTransmission(MPU_addr);
Wire.write(0x6B);
Wire.write(0);
Wire.endTransmission(true);
Serial.begin(9600);
}
void loop() {
Wire.beginTransmission(MPU_addr);
Wire.write(0x3B);
Wire.endTransmission(false);
Wire.requestFrom(MPU_addr,14,true);
AcX = Wire.read()<<8|Wire.read();
AcY = Wire.read()<<8|Wire.read();
AcZ = Wire.read()<<8|Wire.read();
int xAng = map(AcX,minVal,maxVal,-90,90);
int yAng = map(AcY,minVal,maxVal,-90,90);
int zAng = map(AcZ,minVal,maxVal,-90,90);
x= RAD_TO_DEG * (atan2(-yAng, -zAng)+PI);
y= RAD_TO_DEG * (atan2(-xAng, -zAng)+PI);
z= RAD_TO_DEG * (atan2(-yAng, -xAng)+PI);
Serial.print("AcX= ");
Serial.println(AcX);
Serial.print("AcY= ");
Serial.println(AcY);
Serial.print("AcZ= ");
Serial.println(AcZ);
Serial.print("AngleX= ");
Serial.println(x);
Serial.print("AngleY= ");
Serial.println(y);
Serial.print("AngleZ= ");
Serial.println(z);
Serial.println("-----------------------------------------");
delay(1000);
if(AcX > 15000){
LINE.setToken(LINE_TOKEN);
LINE.notify("Helppp!!!!!!");
LINE.notify("http://www.google.com/maps/place/15.449816,103.723576");
}else{}
}