Stuff™️

master
Vinícius W 1 year ago
parent 3dc5d73cf0
commit 246f9e7c42

@ -1,21 +1,18 @@
#include "comm.h"
#include <ArduinoOTA.h>
#include <WiFiSettings.h>
void setup_ota() {
void CommunicationsController::initota() {
ArduinoOTA.setHostname(WIFI_SSID);
ArduinoOTA.setPassword(WIFI_PASSWORD);
ArduinoOTA.begin();
}
void setup_wifi() {
void CommunicationsController::init_wifi() {
WiFiSettings.hostname = WIFI_SSID;
WiFiSettings.password = WIFI_PASSWORD;
WiFiSettings.onPortal = []() {
setup_ota();
ota();
};
WiFiSettings.onPortalWaitLoop = []() {
ArduinoOTA.handle();
@ -24,13 +21,50 @@ void setup_wifi() {
WiFiSettings.connect();
}
void setup_comm() {
setup_wifi();
setup_ota();
void CommunicationsController::init() {
ota();
wifi();
WebMonitor.begin();
}
void comms_loop() {
void CommunicationsController::process() {
ArduinoOTA.handle();
if (!l4s) {
return;
}
if (l4s.connected()) {
handle_client();
} else {
create_connection();
}
}
void CommunicationsController::handle_client() {
l4s.flush();
recv = recv();
Serial.println(recv);
}
void CommunicationsController::parseLook4Sat(float* azimuth, float* altitude) {
azimuth = recv.substring();
altitude = recv.substring(); //TODO
}
void CommunicationsController::create_connection() {
l4s = l4sServer.accept();
}
String CommunicationsController::recv() {
String rec = "";
while (l4s.available()) {
rec += (char)(l4s.read());
}
if (rec.length() == 0) {
rec = "Ç";
}
return rec;
}

@ -1,10 +1,33 @@
#include <ArduinoOTA.h>
#include <WebMonitor.h>
#include <ESP8266WiFi.h>
#include <WiFiSettings.h>
#define L4S_PORT 4533
#define WIFI_SSID "VynTracker"
#define WIFI_PASSWORD "senha1234"
void setup_ota();
void setup_wifi();
void setup_comm();
void comms_loop();
#ifndef COMM_H
#define COMM_H
class CommunicationsController {
private:
String recv;
WifiClient l4s;
WifiServer l4sServer(L4S_PORT);
void recv();
void init_ota();
void init_wifi();
void handle_client();
void create_connection();
public:
void init();
void process();
void parseLook4Sat(float* azimuth, float* altitude);
}
#endif

@ -5,12 +5,14 @@
#include <LittleFS.h>
ServoController controller;
CommunicationsController comms;
void setup() {
LittleFS.begin();
comms.init();
controller.initServos();
controller.initMag();
LittleFS.begin();
setup_comm();
pinMode(15, OUTPUT);
pinMode(12, OUTPUT);
@ -20,14 +22,6 @@ void setup() {
}
void loop() {
comms_loop();
comms.process();
controller.updateHeading();
digitalWrite(15, 1);
WebMonitor.printf("ON!");
delay(1000);
digitalWrite(15, 0);
WebMonitor.printf("OFF!");
delay(1000);
}

@ -1,5 +1,4 @@
#include "servo.h"
#include <WebMonitor>
void ServoController::initServos() {
@ -34,7 +33,7 @@ void ServoController::initMag() {
WebMonitor.print("Sample: ");
WebMonitor.println(mag.getSamples());
mag.setDeclination(DECLINATION);
mag.setDeclinationAngle(DECLINATION);
WebMonitor.print("Declinação: ");
WebMonitor.println(DECLINATION);
} else {
@ -45,7 +44,20 @@ void ServoController::initMag() {
}
void ServoController::updateHeading() {
mag.getHeadingDegrees();
sVector_t raw = mag.readRaw();
float tmp = raw.HeadingDegress;
headingBuffer[bufferPos++] = tmp;
if (bufferPos > HEADING_BUFFER_LENGTH) {
bufferPos = 0;
}
headingDegrees = 0;
for (byte i = 0; i < HEADING_BUFFER_LENGTH; i++) {
headingDegrees += headingBuffer[i];
}
headingDegrees /= HEADING_BUFFER_LENGTH;
}
void ServoController::moveToAzAlt() {

@ -1,14 +1,18 @@
#include <Servo>
#include <DFRobot_QMC5883>
#include <Servo.h>
#include <WebMonitor.h>
#include <DFRobot_QMC5883.h>
#define DECLINATION -0.353429173528852
#define HEADING_BUFFER_LENGTH 16
#ifndef SERVO_H
#define SERVO_H
class ServoController {
private:
float headingDegress;
int headingDegrees;
byte bufferPos = 0;
float headingBuffer[HEADING_BUFFER_LENGTH];
Servo HrzSrv;
Servo VrtSrv;

Loading…
Cancel
Save