Skip to content

Instantly share code, notes, and snippets.

@woodif
Created May 18, 2023 15:50
Show Gist options
  • Save woodif/c6d1a3232a7dd776870a84f4874d0b52 to your computer and use it in GitHub Desktop.
Save woodif/c6d1a3232a7dd776870a84f4874d0b52 to your computer and use it in GitHub Desktop.
#include <SPI.h>
#include <Ethernet_STM.h>
#include <Wire.h>
#include <DFRobot_ADS1115.h>
DFRobot_ADS1115 ads(&Wire);
#if defined(WIZ550io_WITH_MACADDRESS)
;
#else
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
#endif
IPAddress ip(192, 168, 1, 177);
EthernetServer server(80);
int relay_pin_1 = PB12;
int relay_pin_2 = PB13;
int relay_pin_3 = PB14;
int relay_pin_4 = PB15;
void setup() {
Serial.begin(115200); // Serial Board
Serial3.begin(115200); // RS485
Serial2.begin(115200); // 4G Module
// Serial2.setTimeout(2000);
pinMode(relay_pin_1, OUTPUT);
pinMode(relay_pin_2, OUTPUT);
pinMode(relay_pin_3, OUTPUT);
pinMode(relay_pin_4, OUTPUT);
digitalWrite(relay_pin_1, HIGH);
delay(1000);
digitalWrite(relay_pin_1, LOW);
delay(1000);
digitalWrite(relay_pin_2, HIGH);
delay(1000);
digitalWrite(relay_pin_2, LOW);
delay(1000);
digitalWrite(relay_pin_3, HIGH);
delay(1000);
digitalWrite(relay_pin_3, LOW);
delay(1000);
digitalWrite(relay_pin_4, HIGH);
delay(1000);
digitalWrite(relay_pin_4, LOW);
delay(1000);
ads.setAddr_ADS1115(0x48);
ads.setGain(eGAIN_TWOTHIRDS); // 2/3x gain
ads.setMode(eMODE_SINGLE);
ads.setRate(eRATE_128);
ads.setOSMode(eOSMODE_SINGLE);
ads.init();
while (!Serial) {
;
}
#if defined(WIZ550io_WITH_MACADDRESS)
Ethernet.begin(ip);
#else
Ethernet.begin(mac, ip);
#endif
server.begin();
Serial.print("server is at ");
Serial.println(Ethernet.localIP());
Serial.print("4G TEST");
while (1) {
Serial.print(".");
Serial2.println("AT");
delay(5000);
if (Serial2.available()) {
String datas = Serial2.readStringUntil('\n');
String datas2 = Serial2.readStringUntil('\n');
if (datas2 == "OK\r")
break;
}
}
Serial.println();
Serial.println("4G TEST OK");
}
void loop() {
EthernetClient client = server.available();
if (client) {
Serial.println("new client");
boolean currentLineIsBlank = true;
while (client.connected()) {
if (client.available()) {
char c = client.read();
Serial.write(c);
if (c == '\n' && currentLineIsBlank) {
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println("Connection: close");
client.println("Refresh: 5");
client.println();
client.println("<!DOCTYPE HTML>");
client.println("<html>");
if (ads.checkADS1115())
{
int16_t adc0, adc1, adc2, adc3;
adc0 = ads.readVoltage(0);
client.print("A0:");
client.print(adc0);
client.print("mV, ");
client.println("<br />");
adc1 = ads.readVoltage(1);
client.print("A1:");
client.print(adc1);
client.print("mV, ");
client.println("<br />");
adc2 = ads.readVoltage(2);
client.print("A2:");
client.print(adc2);
client.print("mV, ");
client.println("<br />");
adc3 = ads.readVoltage(3);
client.print("A3:");
client.print(adc3);
client.print("mV");
client.println("<br />");
}
else
{
client.print("erorr");
client.println("<br />");
}
client.println("</html>");
break;
}
if (c == '\n') {
currentLineIsBlank = true;
}
else if (c != '\r') {
currentLineIsBlank = false;
}
}
}
delay(1);
client.stop();
Serial.println("client disonnected");
}
if (Serial.available()) {
Serial3.write(Serial.read());
}
if (Serial3.available()) {
Serial.write(Serial3.read());
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment