Created
May 18, 2023 15:50
-
-
Save woodif/c6d1a3232a7dd776870a84f4874d0b52 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#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