mirror of
https://github.com/sascha-hemi/HGD4_reversed.git
synced 2026-03-21 02:03:56 +01:00
add modem code
This commit is contained in:
@@ -20,5 +20,10 @@ lib_deps =
|
||||
sparkfun/SparkFun Ambient Light Sensor Arduino Library@^1.0.4
|
||||
https://github.com/stm32duino/LPS22HB
|
||||
vshymanskyy/TinyGSM@^0.12.0
|
||||
koendv/RTT Stream@^1.4.1
|
||||
arduino-libraries/ArduinoHttpClient@^0.6.1
|
||||
build_unflags = -DNRF52 -DUSE_LFXO
|
||||
build_flags = -DNRF52840_XXAA -DUSE_LFRC
|
||||
upload_protocol = jlink
|
||||
debug_tool = jlink
|
||||
monitor_port = socket://localhost:19021
|
||||
|
||||
@@ -1,34 +1,29 @@
|
||||
#include "main.h"
|
||||
|
||||
SparkFun_Ambient_Light light(AL_ADDR);
|
||||
const char server[] = "api.64eng.de";
|
||||
const char resource[] = "ok.txt";
|
||||
|
||||
ENS210 ens210;
|
||||
LPS22HBSensor lps22hb(&Wire);
|
||||
|
||||
Adafruit_LIS3DH acc1 = Adafruit_LIS3DH(ACCL1_CS);
|
||||
Adafruit_LIS3DH acc2 = Adafruit_LIS3DH(ACCL2_CS);
|
||||
|
||||
|
||||
void testmodem(){
|
||||
//SerialAT.begin(9600);
|
||||
}
|
||||
HttpClient http(client, server, 80);
|
||||
|
||||
void setup() {
|
||||
rtt.println("|---------Starting setup---------|");
|
||||
gpioinit();
|
||||
initmodem();
|
||||
testmodem();
|
||||
powerdownmodem();
|
||||
delay(2000);
|
||||
}
|
||||
|
||||
void loop() {
|
||||
Serial.println();
|
||||
Serial.println("|---------Starting loop---------|");
|
||||
//powerupesp();
|
||||
//powerupmodem();
|
||||
rtt.println();
|
||||
rtt.println("|---------Starting loop---------|");
|
||||
measureacc();
|
||||
measuretemp();
|
||||
measurepressure();
|
||||
lightsense();
|
||||
ButtonState();
|
||||
measureBattery();
|
||||
delay(1000);
|
||||
delay(10000);
|
||||
}
|
||||
|
||||
void wd_handler() {
|
||||
@@ -37,6 +32,213 @@ void wd_handler() {
|
||||
digitalWrite(DONE,LOW);
|
||||
}
|
||||
|
||||
void initmodem(){
|
||||
powerupmodem();
|
||||
rtt.println("Initialising modem");
|
||||
SerialAT.begin(115200);
|
||||
delay(10);
|
||||
modem.init();
|
||||
rtt.print("Modem Info: ");
|
||||
rtt.println(modem.getModemInfo());
|
||||
rtt.print("Modem SN: ");
|
||||
rtt.println(modem.getModemSerialNumber());
|
||||
rtt.print("Modem isconnected: ");
|
||||
rtt.println(modem.isGprsConnected());
|
||||
}
|
||||
|
||||
void connectmodem(){
|
||||
rtt.println("Connecting modem");
|
||||
modem.gprsConnect("internet", "", "");
|
||||
rtt.println("Waiting for network...");
|
||||
if (!modem.waitForNetwork(600000L, true)) {
|
||||
delay(10000);
|
||||
return;
|
||||
}
|
||||
rtt.println("Connection state");
|
||||
rtt.println(modem.isGprsConnected());
|
||||
}
|
||||
|
||||
void disconnectmodem(){
|
||||
rtt.println("Disconnecting modem");
|
||||
modem.gprsDisconnect();
|
||||
rtt.println("Connection state");
|
||||
rtt.println(modem.isGprsConnected());
|
||||
}
|
||||
|
||||
void httpreq(){
|
||||
rtt.print(F("Performing HTTP GET request... "));
|
||||
int err = http.get(resource);
|
||||
if (err != 0) {
|
||||
rtt.println(F("failed to connect"));
|
||||
return;
|
||||
}
|
||||
|
||||
int status = http.responseStatusCode();
|
||||
rtt.print(F("Response status code: "));
|
||||
rtt.println(status);
|
||||
|
||||
rtt.println(F("Response Headers:"));
|
||||
while (http.headerAvailable()) {
|
||||
String headerName = http.readHeaderName();
|
||||
String headerValue = http.readHeaderValue();
|
||||
rtt.println(" " + headerName + " : " + headerValue);
|
||||
}
|
||||
|
||||
int length = http.contentLength();
|
||||
if (length >= 0) {
|
||||
rtt.print(F("Content length is: "));
|
||||
rtt.println(length);
|
||||
}
|
||||
if (http.isResponseChunked()) {
|
||||
rtt.println(F("The response is chunked"));
|
||||
}
|
||||
|
||||
String body = http.responseBody();
|
||||
rtt.println(F("Response:"));
|
||||
rtt.println(body);
|
||||
|
||||
rtt.print(F("Body length is: "));
|
||||
rtt.println(body.length());
|
||||
|
||||
http.stop();
|
||||
rtt.println(F("Server disconnected"));
|
||||
}
|
||||
|
||||
void getgps(){
|
||||
rtt.printf("Enabling GPS/GNSS/GLONASS and waiting 15s for warm-up");
|
||||
modem.enableGPS();
|
||||
delay(15000L);
|
||||
float gps_latitude = 0;
|
||||
float gps_longitude = 0;
|
||||
float gps_speed = 0;
|
||||
float gps_altitude = 0;
|
||||
int gps_vsat = 0;
|
||||
int gps_usat = 0;
|
||||
float gps_accuracy = 0;
|
||||
int gps_year = 0;
|
||||
int gps_month = 0;
|
||||
int gps_day = 0;
|
||||
int gps_hour = 0;
|
||||
int gps_minute = 0;
|
||||
int gps_second = 0;
|
||||
for (int8_t i = 15; i; i--) {
|
||||
rtt.printf("Requesting current GPS/GNSS/GLONASS location");
|
||||
if (modem.getGPS(&gps_latitude, &gps_longitude, &gps_speed, &gps_altitude,
|
||||
&gps_vsat, &gps_usat, &gps_accuracy, &gps_year, &gps_month,
|
||||
&gps_day, &gps_hour, &gps_minute, &gps_second)) {
|
||||
rtt.printf("Latitude:", String(gps_latitude, 8), "\tLongitude:", String(gps_longitude, 8));
|
||||
rtt.printf("Speed:", gps_speed, "\tAltitude:", gps_altitude);
|
||||
rtt.printf("Visible Satellites:", gps_vsat, "\tUsed Satellites:", gps_usat);
|
||||
rtt.printf("Accuracy:", gps_accuracy);
|
||||
rtt.printf("Year:", gps_year, "\tMonth:", gps_month, "\tDay:", gps_day);
|
||||
rtt.printf("Hour:", gps_hour, "\tMinute:", gps_minute, "\tSecond:", gps_second);
|
||||
break;
|
||||
} else {
|
||||
rtt.printf("Couldn't get GPS/GNSS/GLONASS location, retrying in 15s.");
|
||||
delay(15000L);
|
||||
}
|
||||
}
|
||||
rtt.printf("Retrieving GPS/GNSS/GLONASS location again as a string");
|
||||
String gps_raw = modem.getGPSraw();
|
||||
rtt.printf("GPS/GNSS Based Location String:", gps_raw);
|
||||
rtt.printf("Disabling GPS");
|
||||
modem.disableGPS();
|
||||
}
|
||||
|
||||
void testmodem(){
|
||||
connectmodem();
|
||||
rtt.println("testing modem");
|
||||
|
||||
rtt.print("Modem CCID: ");
|
||||
rtt.println(modem.getSimCCID());
|
||||
rtt.print("Modem IMEI: ");
|
||||
rtt.println(modem.getIMEI());
|
||||
rtt.print("Sim Statue: ");
|
||||
rtt.println(modem.getSimStatus());
|
||||
rtt.print("Modem IMSI: ");
|
||||
rtt.println(modem.getIMSI());
|
||||
rtt.print("Modem Operator: ");
|
||||
rtt.println(modem.getOperator());
|
||||
rtt.print("Modem LocalIP: ");
|
||||
rtt.println(modem.localIP());
|
||||
rtt.print("Modem SQ: ");
|
||||
rtt.println(modem.getSignalQuality());
|
||||
|
||||
int8_t chargeState = -99;
|
||||
int8_t chargePercent = -99;
|
||||
int16_t milliVolts = -9999;
|
||||
modem.getBattStats(chargeState, chargePercent, milliVolts);
|
||||
rtt.println("Battery chargeState");
|
||||
rtt.println(chargeState);
|
||||
rtt.println("Battery chargePercent");
|
||||
rtt.println(chargePercent);
|
||||
rtt.println("Battery milliVolts");
|
||||
rtt.println(milliVolts);
|
||||
|
||||
rtt.println("Chip temperature");
|
||||
rtt.println(modem.getTemperature());
|
||||
|
||||
httpreq();
|
||||
|
||||
//getgps();
|
||||
|
||||
disconnectmodem();
|
||||
}
|
||||
|
||||
void powerdownmodem(){
|
||||
if(!modemon){
|
||||
rtt.println("Modem already off");
|
||||
return;
|
||||
}
|
||||
rtt.println("Powering down modem");
|
||||
rtt.println("Pressing modem power button");
|
||||
digitalWrite(MODEM_PWRKEY,HIGH);
|
||||
delay(600);
|
||||
digitalWrite(MODEM_PWRKEY,LOW);
|
||||
delay(10);
|
||||
modemon = false;
|
||||
if(!espon){
|
||||
rtt.println("Powering down espmodem rail");
|
||||
digitalWrite(MODEM_ESP_PWR,LOW);
|
||||
delay(50);
|
||||
espmodemrail = false;
|
||||
}
|
||||
}
|
||||
|
||||
void powerdownesp(){
|
||||
if(!espon){
|
||||
rtt.println("ESP already off");
|
||||
return;
|
||||
}
|
||||
rtt.println("Powering esp down");
|
||||
digitalWrite(MODEM_ESP_PWR,LOW);
|
||||
delay(50);
|
||||
espon = false;
|
||||
if(!modemon){
|
||||
rtt.println("Powering down espmodem rail");
|
||||
digitalWrite(MODEM_ESP_PWR,LOW);
|
||||
delay(50);
|
||||
espmodemrail = false;
|
||||
}
|
||||
}
|
||||
|
||||
void softpwrup(){
|
||||
digitalWrite(MODEM_ESP_PWR,HIGH);
|
||||
nrf_delay_us(500);
|
||||
digitalWrite(MODEM_ESP_PWR,LOW);
|
||||
delay(2);
|
||||
digitalWrite(MODEM_ESP_PWR,HIGH);
|
||||
delay(1);
|
||||
digitalWrite(MODEM_ESP_PWR,LOW);
|
||||
delay(2);
|
||||
digitalWrite(MODEM_ESP_PWR,HIGH);
|
||||
delay(1);
|
||||
digitalWrite(MODEM_ESP_PWR,LOW);
|
||||
delay(2);
|
||||
digitalWrite(MODEM_ESP_PWR,HIGH);
|
||||
delay(500);
|
||||
}
|
||||
|
||||
void gpioinit(){
|
||||
//latch on the main power
|
||||
pinMode(PWR_LATCH , OUTPUT);
|
||||
@@ -45,8 +247,6 @@ void gpioinit(){
|
||||
pinMode(WAKE, INPUT);
|
||||
pinMode(DONE, OUTPUT);
|
||||
attachInterrupt(digitalPinToInterrupt(WAKE), wd_handler, RISING);
|
||||
//setup Serial
|
||||
Serial.begin(115200);
|
||||
//setup I2C bus
|
||||
Wire.begin();
|
||||
//power up sensors
|
||||
@@ -67,39 +267,67 @@ void gpioinit(){
|
||||
pinMode(MODEM_PWRKEY,OUTPUT);
|
||||
digitalWrite(MODEM_PWRKEY,LOW);
|
||||
pinMode(PWR_SW_IN, INPUT);
|
||||
pinMode(MODEM_CON_A,OUTPUT);
|
||||
pinMode(MODEM_CON_B,OUTPUT);
|
||||
digitalWrite(MODEM_CON_A,LOW);
|
||||
digitalWrite(MODEM_CON_B,LOW);
|
||||
}
|
||||
|
||||
void powerupesp(){
|
||||
Serial.println("Powering up esp");
|
||||
digitalWrite(MODEM_ESP_PWR,HIGH);
|
||||
if(espon){
|
||||
rtt.println("ESP already on");
|
||||
return;
|
||||
}
|
||||
rtt.println("Powering up esp");
|
||||
if(espmodemrail){
|
||||
rtt.println("Power rail alredy up");
|
||||
}
|
||||
else{
|
||||
rtt.println("Powering espmodem power rail");
|
||||
softpwrup();
|
||||
}
|
||||
digitalWrite(ESP_PWR,HIGH);
|
||||
delay(500);
|
||||
delay(50);
|
||||
espmodemrail = true;
|
||||
espon = true;
|
||||
}
|
||||
|
||||
void powerupmodem(){
|
||||
Serial.println("powering up modem");
|
||||
digitalWrite(MODEM_ESP_PWR,HIGH);
|
||||
delay(600);
|
||||
if(modemon){
|
||||
rtt.println("Modem already on");
|
||||
return;
|
||||
}
|
||||
rtt.println("powering up modem");
|
||||
if(espmodemrail){
|
||||
rtt.println("Power rail alredy up");
|
||||
}
|
||||
else{
|
||||
rtt.println("Powering espmodem power rail");
|
||||
softpwrup();
|
||||
}
|
||||
espmodemrail = true;
|
||||
rtt.println("Pressing modem power button");
|
||||
digitalWrite(MODEM_PWRKEY,HIGH);
|
||||
delay(600);
|
||||
digitalWrite(MODEM_PWRKEY,LOW);
|
||||
delay(600);
|
||||
delay(10);
|
||||
modemon = true;
|
||||
}
|
||||
|
||||
void ButtonState() {
|
||||
int buttonState = digitalRead(PWR_SW_IN);
|
||||
Serial.println("|-----------------|");
|
||||
Serial.println("| Button (SW) |");
|
||||
Serial.print("| State: "); Serial.println(buttonState ? "Pressed" : "Released");
|
||||
Serial.println("|-----------------|");
|
||||
rtt.println("|-----------------|");
|
||||
rtt.println("| Button (SW) |");
|
||||
rtt.print("| State: "); rtt.println(buttonState ? "Pressed" : "Released");
|
||||
rtt.println("|-----------------|");
|
||||
}
|
||||
|
||||
void measureBattery() {
|
||||
float voltage = ((float)analogRead(VBAT_DIV) / 1000.0) * 6.0;
|
||||
Serial.println("|-------------------|");
|
||||
Serial.println("| Battery Voltage |");
|
||||
Serial.print("| "); Serial.print(voltage, 2); Serial.println(" V");
|
||||
Serial.println("|-------------------|");
|
||||
rtt.println("|-------------------|");
|
||||
rtt.println("| Battery Voltage |");
|
||||
rtt.print("| "); rtt.print(voltage, 2); rtt.println(" V");
|
||||
rtt.println("|-------------------|");
|
||||
}
|
||||
|
||||
void lightsense(){
|
||||
@@ -107,27 +335,27 @@ float gain = .25;
|
||||
int time = 100;
|
||||
long luxVal = 0;
|
||||
if(!light.begin())
|
||||
Serial.println("Could not communicate with the light sensor!");
|
||||
rtt.println("Could not communicate with the light sensor!");
|
||||
light.setGain(gain);
|
||||
light.setIntegTime(time);
|
||||
|
||||
Serial.println("|-----------------------------|");
|
||||
Serial.println("| Sensor: VEML6035 |");
|
||||
Serial.println("| Gain | Integration Time |");
|
||||
Serial.print("| ");
|
||||
Serial.print(gain, 3);
|
||||
Serial.print(" | ");
|
||||
Serial.print(time);
|
||||
Serial.println(" |");
|
||||
rtt.println("|-----------------------------|");
|
||||
rtt.println("| Sensor: VEML6035 |");
|
||||
rtt.println("| Gain | Integration Time |");
|
||||
rtt.print("| ");
|
||||
rtt.print(gain, 3);
|
||||
rtt.print(" | ");
|
||||
rtt.print(time);
|
||||
rtt.println(" |");
|
||||
|
||||
luxVal = light.readLight();
|
||||
|
||||
Serial.println("|-----------------------------|");
|
||||
Serial.println("| Ambient Light Reading |");
|
||||
Serial.print("| ");
|
||||
Serial.print(luxVal);
|
||||
Serial.println(" Lux");
|
||||
Serial.println("|-----------------------------|");
|
||||
rtt.println("|-----------------------------|");
|
||||
rtt.println("| Ambient Light Reading |");
|
||||
rtt.print("| ");
|
||||
rtt.print(luxVal);
|
||||
rtt.println(" Lux");
|
||||
rtt.println("|-----------------------------|");
|
||||
}
|
||||
|
||||
void measuretemp(){
|
||||
@@ -135,15 +363,15 @@ void measuretemp(){
|
||||
int t_data, t_status, h_data, h_status;
|
||||
ens210.measure(&t_data, &t_status, &h_data, &h_status );
|
||||
|
||||
Serial.println("|-------------------------------|");
|
||||
Serial.println("| Sensor: ENS210 |");
|
||||
Serial.println("| Temperature | Humidity |");
|
||||
Serial.print("| ");
|
||||
Serial.print(ens210.toCelsius(t_data, 10) / 10.0, 1);
|
||||
Serial.print(" C | ");
|
||||
Serial.print(ens210.toPercentageH(h_data, 1));
|
||||
Serial.println(" %RH |");
|
||||
Serial.println("|-------------------------------|");
|
||||
rtt.println("|-------------------------------|");
|
||||
rtt.println("| Sensor: ENS210 |");
|
||||
rtt.println("| Temperature | Humidity |");
|
||||
rtt.print("| ");
|
||||
rtt.print(ens210.toCelsius(t_data, 10) / 10.0, 1);
|
||||
rtt.print(" C | ");
|
||||
rtt.print(ens210.toPercentageH(h_data, 1));
|
||||
rtt.println(" %RH |");
|
||||
rtt.println("|-------------------------------|");
|
||||
}
|
||||
|
||||
void measurepressure(){
|
||||
@@ -153,59 +381,59 @@ void measurepressure(){
|
||||
lps22hb.GetPressure(&pressure);
|
||||
lps22hb.GetTemperature(&temperature);
|
||||
|
||||
Serial.println("|----------------------------------|");
|
||||
Serial.println("| Sensor: LPS22HB |");
|
||||
Serial.println("| Pressure[hPa] | Temperature[C] |");
|
||||
Serial.print("| ");
|
||||
Serial.print(pressure, 2);
|
||||
Serial.print(" | ");
|
||||
Serial.print(temperature, 2);
|
||||
Serial.println(" |");
|
||||
Serial.println("|----------------------------------|");
|
||||
rtt.println("|----------------------------------|");
|
||||
rtt.println("| Sensor: LPS22HB |");
|
||||
rtt.println("| Pressure[hPa] | Temperature[C] |");
|
||||
rtt.print("| ");
|
||||
rtt.print(pressure, 2);
|
||||
rtt.print(" | ");
|
||||
rtt.print(temperature, 2);
|
||||
rtt.println(" |");
|
||||
rtt.println("|----------------------------------|");
|
||||
}
|
||||
|
||||
void measureacc(){
|
||||
Serial.println("|----------------------------------|");
|
||||
Serial.println("| Sensor: LIS3DH |");
|
||||
if (!acc1.begin()) Serial.println("Could not start acc1");
|
||||
if (!acc2.begin()) Serial.println("Could not start acc2");
|
||||
rtt.println("|----------------------------------|");
|
||||
rtt.println("| Sensor: LIS3DH |");
|
||||
if (!acc1.begin()) rtt.println("Could not start acc1");
|
||||
if (!acc2.begin()) rtt.println("Could not start acc2");
|
||||
|
||||
Serial.print("| Range = "); Serial.print(2 << acc1.getRange());
|
||||
Serial.println("G |");
|
||||
rtt.print("| Range = "); rtt.print(2 << acc1.getRange());
|
||||
rtt.println("G |");
|
||||
|
||||
// lis.setPerformanceMode(LIS3DH_MODE_LOW_POWER);
|
||||
Serial.print("| Performance mode set to: ");
|
||||
rtt.print("| Performance mode set to: ");
|
||||
switch (acc1.getPerformanceMode()) {
|
||||
case LIS3DH_MODE_NORMAL: Serial.println("Normal 10bit"); break;
|
||||
case LIS3DH_MODE_LOW_POWER: Serial.println("Low Power 8bit"); break;
|
||||
case LIS3DH_MODE_HIGH_RESOLUTION: Serial.println("High Resolution 12bit"); break;
|
||||
case LIS3DH_MODE_NORMAL: rtt.println("Normal 10bit"); break;
|
||||
case LIS3DH_MODE_LOW_POWER: rtt.println("Low Power 8bit"); break;
|
||||
case LIS3DH_MODE_HIGH_RESOLUTION: rtt.println("High Resolution 12bit"); break;
|
||||
}
|
||||
|
||||
// lis.setDataRate(LIS3DH_DATARATE_50_HZ);
|
||||
Serial.print("| Data rate set to: ");
|
||||
rtt.print("| Data rate set to: ");
|
||||
switch (acc1.getDataRate()) {
|
||||
case LIS3DH_DATARATE_1_HZ: Serial.println("1 Hz"); break;
|
||||
case LIS3DH_DATARATE_10_HZ: Serial.println("10 Hz"); break;
|
||||
case LIS3DH_DATARATE_25_HZ: Serial.println("25 Hz"); break;
|
||||
case LIS3DH_DATARATE_50_HZ: Serial.println("50 Hz"); break;
|
||||
case LIS3DH_DATARATE_100_HZ: Serial.println("100 Hz"); break;
|
||||
case LIS3DH_DATARATE_200_HZ: Serial.println("200 Hz"); break;
|
||||
case LIS3DH_DATARATE_400_HZ: Serial.println("400 Hz"); break;
|
||||
case LIS3DH_DATARATE_1_HZ: rtt.println("1 Hz"); break;
|
||||
case LIS3DH_DATARATE_10_HZ: rtt.println("10 Hz"); break;
|
||||
case LIS3DH_DATARATE_25_HZ: rtt.println("25 Hz"); break;
|
||||
case LIS3DH_DATARATE_50_HZ: rtt.println("50 Hz"); break;
|
||||
case LIS3DH_DATARATE_100_HZ: rtt.println("100 Hz"); break;
|
||||
case LIS3DH_DATARATE_200_HZ: rtt.println("200 Hz"); break;
|
||||
case LIS3DH_DATARATE_400_HZ: rtt.println("400 Hz"); break;
|
||||
|
||||
case LIS3DH_DATARATE_POWERDOWN: Serial.println("Powered Down"); break;
|
||||
case LIS3DH_DATARATE_LOWPOWER_5KHZ: Serial.println("5 Khz Low Power"); break;
|
||||
case LIS3DH_DATARATE_LOWPOWER_1K6HZ: Serial.println("1.6 Khz Low Power"); break;
|
||||
case LIS3DH_DATARATE_POWERDOWN: rtt.println("Powered Down"); break;
|
||||
case LIS3DH_DATARATE_LOWPOWER_5KHZ: rtt.println("5 Khz Low Power"); break;
|
||||
case LIS3DH_DATARATE_LOWPOWER_1K6HZ: rtt.println("1.6 Khz Low Power"); break;
|
||||
}
|
||||
Serial.println("| Acc1 (X,Y,Z) | Acc2 (X,Y,Z) |");
|
||||
rtt.println("| Acc1 (X,Y,Z) | Acc2 (X,Y,Z) |");
|
||||
acc1.read();
|
||||
acc2.read();
|
||||
|
||||
Serial.print("| ");
|
||||
Serial.print(acc1.x); Serial.print(", ");
|
||||
Serial.print(acc1.y); Serial.print(", ");
|
||||
Serial.print(acc1.z); Serial.print(" | ");
|
||||
Serial.print(acc2.x); Serial.print(", ");
|
||||
Serial.print(acc2.y); Serial.print(", ");
|
||||
Serial.print(acc2.z); Serial.println("|");
|
||||
Serial.println("|----------------------------------|");
|
||||
rtt.print("| ");
|
||||
rtt.print(acc1.x); rtt.print(", ");
|
||||
rtt.print(acc1.y); rtt.print(", ");
|
||||
rtt.print(acc1.z); rtt.print(" | ");
|
||||
rtt.print(acc2.x); rtt.print(", ");
|
||||
rtt.print(acc2.y); rtt.print(", ");
|
||||
rtt.print(acc2.z); rtt.println("|");
|
||||
rtt.println("|----------------------------------|");
|
||||
}
|
||||
@@ -7,6 +7,25 @@
|
||||
#include "SparkFun_VEML6030_Ambient_Light_Sensor.h"
|
||||
#include <LPS22HBSensor.h>
|
||||
#include <TinyGsmClient.h>
|
||||
#include <RTTStream.h>
|
||||
#include <ArduinoHttpClient.h>
|
||||
|
||||
SparkFun_Ambient_Light light(AL_ADDR);
|
||||
|
||||
ENS210 ens210;
|
||||
LPS22HBSensor lps22hb(&Wire);
|
||||
|
||||
Adafruit_LIS3DH acc1 = Adafruit_LIS3DH(ACCL1_CS);
|
||||
Adafruit_LIS3DH acc2 = Adafruit_LIS3DH(ACCL2_CS);
|
||||
|
||||
RTTStream rtt;
|
||||
|
||||
TinyGsm modem(SerialAT);
|
||||
TinyGsmClient client(modem);
|
||||
|
||||
bool espmodemrail = 0;
|
||||
bool espon = 0;
|
||||
bool modemon = 0;
|
||||
|
||||
void measuretemp();
|
||||
void measurepressure();
|
||||
@@ -17,4 +36,13 @@ void powerupesp();
|
||||
void wd_handler();
|
||||
void gpioinit();
|
||||
void measureacc();
|
||||
void powerupmodem();
|
||||
void powerupmodem();
|
||||
void softpwrup();
|
||||
void powerdownesp();
|
||||
void powerdownmodem();
|
||||
void testmodem();
|
||||
void getgps();
|
||||
void httpreq();
|
||||
void disconnectmodem();
|
||||
void connectmodem();
|
||||
void initmodem();
|
||||
@@ -5,15 +5,7 @@
|
||||
|
||||
#include "nrf_peripherals.h"
|
||||
|
||||
#if defined(NRF52_SERIES)
|
||||
#define VARIANT_MCK (64000000ul)
|
||||
#else
|
||||
#define VARIANT_MCK (16000000ul)
|
||||
#endif
|
||||
|
||||
/*----------------------------------------------------------------------------
|
||||
* Headers
|
||||
*----------------------------------------------------------------------------*/
|
||||
|
||||
#include "WVariant.h"
|
||||
|
||||
@@ -22,20 +14,9 @@ extern "C"
|
||||
{
|
||||
#endif // __cplusplus
|
||||
|
||||
// Number of pins defined in PinDescription array
|
||||
#if GPIO_COUNT == 1
|
||||
#define PINS_COUNT (32u)
|
||||
#define NUM_DIGITAL_PINS (32u)
|
||||
#elif GPIO_COUNT == 2
|
||||
#define PINS_COUNT (64u)
|
||||
#define NUM_DIGITAL_PINS (64u)
|
||||
#else
|
||||
#error "Unsupported GPIO_COUNT"
|
||||
#endif
|
||||
#define NUM_ANALOG_INPUTS (6u)
|
||||
#define NUM_ANALOG_OUTPUTS (0u)
|
||||
|
||||
// PIN setup
|
||||
#define GREEN_LED (0)
|
||||
#define RED_LED (1)
|
||||
#define VBAT_DIV (2)
|
||||
@@ -49,7 +30,9 @@ extern "C"
|
||||
#define I2C_SCL (13)
|
||||
#define I2C_SDA (15)
|
||||
#define MODEM_RXD (17)
|
||||
#define MODEM_CON_A (20)
|
||||
#define MODEM_TXD (22)
|
||||
#define MODEM_CON_B (24)
|
||||
#define ACC_INT (26)
|
||||
#define MODEM_ESP_PWR (29)
|
||||
#define PWR_LATCH (31)
|
||||
@@ -63,19 +46,12 @@ extern "C"
|
||||
#define ESP_PWR (45)
|
||||
#define ESP_GPIO0 (47)
|
||||
|
||||
#define PIN_A1 (VBAT_DIV)
|
||||
|
||||
static const uint8_t A1 = PIN_A1 ;
|
||||
|
||||
#define ADC_RESOLUTION 14
|
||||
|
||||
#define LED_BUILTIN GREEN_LED
|
||||
|
||||
#define PIN_SERIAL_RX DEBUG_RXD
|
||||
#define PIN_SERIAL_TX DEBUG_TXD
|
||||
|
||||
#define PIN_SERIAL2_RX MODEM_RXD
|
||||
#define PIN_SERIAL2_TX MODEM_TXD
|
||||
#define PIN_SERIAL_RX MODEM_RXD
|
||||
#define PIN_SERIAL_TX MODEM_TXD
|
||||
|
||||
#define SPI_INTERFACES_COUNT 1
|
||||
|
||||
@@ -87,9 +63,6 @@ static const uint8_t MOSI = PIN_SPI_MOSI ;
|
||||
static const uint8_t MISO = PIN_SPI_MISO ;
|
||||
static const uint8_t SCK = PIN_SPI_SCK ;
|
||||
|
||||
/*
|
||||
* Wire Interfaces
|
||||
*/
|
||||
#define WIRE_INTERFACES_COUNT 1
|
||||
|
||||
#define PIN_WIRE_SDA (I2C_SDA)
|
||||
@@ -100,11 +73,7 @@ static const uint8_t SCL = PIN_WIRE_SCL;
|
||||
|
||||
#define AL_ADDR 0x29
|
||||
#define TINY_GSM_MODEM_BG95
|
||||
#define SerialAT Serial1
|
||||
#define SerialMon Serial
|
||||
#define TINY_GSM_DEBUG SerialMon
|
||||
#define GSM_AUTOBAUD_MIN 9600
|
||||
#define GSM_AUTOBAUD_MAX 57600
|
||||
#define SerialAT Serial
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user