feat: merged both code bases into a single project, with a define changing pre-defined configuration, removed signal to in-game level mapping, moved to lua server

This commit is contained in:
mk
2025-10-19 17:09:07 -03:00
parent 16cd528e5a
commit 2db3141416
2 changed files with 47 additions and 79 deletions

View File

@@ -1,42 +0,0 @@
#define UV_SIGNAL_READ 34 // PUT_YOUR_SIGNAL_GPIO_HERE
// -- lv0 lv1 lv2 lv3 lv4 lv5 lv6 lv7 lv8
int uvLevelValues[] = {0x00,0x04,0x0B,0x14,0x1F,0x2F,0x4D,0x77,0x8C};
int uvSignalToLevel[] =
{
//Less than lv1 is 0
100,// lv1
250,// lv2
350,// lv3
500,// lv4
550,// lv5
650,// lv6
800,// lv7
900,// or higher lv8
};
int convertToLevel(int signalRead){
for(int i = 0; i < sizeof(uvSignalToLevel)/sizeof(int) ; i++){
if(signalRead < uvSignalToLevel[i]){
return uvLevelValues[i];
}
}
return uvLevelValues[(sizeof(uvSignalToLevel)/sizeof(int))-1];
}
void setup() {
Serial.begin(9600);
if(sizeof(uvSignalToLevel)!=sizeof(uvLevelValues)-sizeof(int)){
while(true){
Serial.print("Level size mismatch!");
delay(1000);
}
}
}
void loop() {
int value = analogRead(UV_SIGNAL_READ);
value = convertToLevel(value);
Serial.println(value);
delay(500);
}

View File

@@ -1,50 +1,37 @@
// This is a comment
// add 2 slashs in front of a line to comment it
// if you want to use wifi mode, leave #define WIFI 1 uncomented, else comment it
#define WIFI // Wifi mode ON
// Example of WIFI off
//#define WIFI
#ifdef WIFI
#include <WiFi.h>
#endif //WIFI
#define UV_SIGNAL_READ 34
#define ssid "YOUR_WIFI_NAME_HERE"
#define pass "YOUR_WIFI_PASSWORD_HERE"
#ifdef WIFI
#define WiFi_SSID "WIFI_NAME_HERE" // WiFi name
#define WiFi_PASS "WIFI_PASSWORD_HERE" // WiFi password
#define host "YOUR_COMPUTER_IP_HERE" // Example: 192.168.1.2
#define port 64222 // NO NEED TO CHANGE
#define HOST "YOUR_PC_IP_HERE" // Example: 192.168.1.2
#define PORT 64222 // NO NEED TO CHANGE
WiFiClient client;
#endif //WIFI uvValue = analogRead(uvSensorPin);
// -- lv0 lv1 lv2 lv3 lv4 lv5 lv6 lv7 lv8
int uvLevelValues[] = {0x00,0x04,0x0B,0x14,0x1F,0x2F,0x4D,0x77,0x8C};
int uvSignalToLevel[] =
{
//Less than lv1 is 0
100,// lv1
250,// lv2
350,// lv3
500,// lv4
550,// lv5
650,// lv6
800,// lv7
900,// or higher lv8
};
int convertToLevel(int signalRead){
for(int i = 0; i < sizeof(uvSignalToLevel)/sizeof(int) ; i++){
if(signalRead < uvSignalToLevel[i]){
return uvLevelValues[i];
}
}
return uvLevelValues[(sizeof(uvSignalToLevel)/sizeof(int))-1];
}
void setup() {
Serial.begin(9600); // Start serial communication
if(sizeof(uvSignalToLevel)!=sizeof(uvLevelValues)-sizeof(int)){
while(true){
Serial.print("Level size mismatch!");
delay(1000);
}
}
pinMode(UV_SIGNAL_READ,INPUT);
WiFi.begin(ssid, pass);
#ifdef WIFI
WiFi.begin(WiFi_SSID, WiFi_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
@@ -52,16 +39,39 @@ void setup() {
Serial.print("Connected to WiFi");
Serial.print("Connecting to mGBA...");
if (!client.connect(host, port)) {
if (!client.connect(HOST, PORT)) {
Serial.println("Connection to server failed");
}
Serial.print("Connected to mGBA...");
#endif //WIFI
}
void loop() {
int value = analogRead(UV_SIGNAL_READ);
//Serial.println(value); // Print the value to Serial Monitor
value = convertToLevel(value);
#ifdef WIFI
// Connection lost, attempting to reconnect.
if (WiFi.status() != WL_CONNECTED) {
Serial.print("WiFi lost connection. Reconnecting...");
WiFi.disconnect();
WiFi.begin(WiFi_SSID, WiFi_PASS);
while (WiFi.status() != WL_CONNECTED){
Serial.print('.');
}
Serial.println("Reconnected to WiFi");
}
if(!client.connected()){
Serial.print("Lost Connection to lua server, reconnecting...");
while(!client.connect(HOST, PORT)){
Serial.print(".");
delay(500);
}
Serial.println("Reconnected to lua server");
}
client.print(value);
#endif //WIFI
Serial.println(value);
delay(500); // Wait for half a second
}