Thank guys,
I miss a few things like the code to put data on web( already tested alone)
And 2 temperature sensor.
l'll try to share the code..
Main one
#include "PINOUT.h"
#include "FS.h"
#include "SC.h"
#include "PrintTime.h"
boolean FS = true ;
const char* ntpServer = "pool.ntp.org";
const long gmtOffset_sec = 3600;
const int daylightOffset_sec = 3600;
//////time/////////
const char* ssid = "TP-LINK_A7650E";
const char* password = "*************";
//////////////////////////
void setup() {
Serial.begin(115200);
pinMode ( LS1, INPUT );
pinMode ( LS2, INPUT );
pinMode ( LS3, INPUT );
pinMode ( LS4, INPUT );
pinMode ( MTC, OUTPUT );
pinMode ( MTA, OUTPUT );
pinMode ( MPA, OUTPUT );
pinMode ( MPO, OUTPUT );
pinMode ( SMAXTILT, INPUT );
pinMode ( SMINTILT, INPUT );
pinMode ( SMAXPAN , INPUT );
pinMode ( SMINPAN, INPUT );
digitalWrite ( MTC, HIGH);
digitalWrite ( MTA, HIGH);
digitalWrite ( MPA, HIGH);
digitalWrite ( MPO, HIGH);
/////OLED_I2C///////
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
//connect to WiFi
Serial.printf("Connecting to %s ", ssid);
WiFi.begin(ssid, password);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println(" CONNECTED");
//init and get the time
configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
printLocalTime();
}
void loop() {
if ( FS == true){FirstStart(); FS = false; } ////FIRST START
SolarCheck();
}
FS.ccp (first start = open to max)
#include "FS.h"
void FirstStart(){
Serial.println ("1st start");
Serial.println ("tilt");
display.clearDisplay();
display.setCursor(0, 0);
display.println("First Start Adj..");
display.display();
display.print("Tilt Axis..");
display.display();
while (digitalRead(SMAXTILT) == 1){ digitalWrite(MTA, LOW);}
digitalWrite(MTA, HIGH);
Serial.println ("tilt max");
display.println("Tilt Max!");
display.println("Pan Axis...");
display.display();
Serial.println ("pan");
while (digitalRead(SMAXPAN) == 1){digitalWrite(MPA, LOW);}
digitalWrite(MPA, HIGH);
Serial.println ("pan max");
display.print("Pan Max!");
display.display();
display.clearDisplay();
delay(2000);
}
FS.h
#ifndef FS_H
#define FS_H
#include "PINOUT.h"
#include "displaydef.h"
void FirstStart();
#endif
SC.cpp (Solar Check)
/////////////////////////////////////
/////////SOLAR CHECK////////////////
////////////////////////////////////
#include "SC.h"
#include "FS.h"
unsigned long t1, dt; // X SOLARCHECK
void SolarCheck(){
int LS1Val = analogRead(LS1);
int LS2Val = analogRead(LS2);
int LS3Val = analogRead(LS3);
int LS4Val = analogRead(LS4);
dt= millis() - t1;
if(dt >= 5000)
{
t1=millis();
Serial.println("Solar Check");
display.clearDisplay();
display.setCursor(0,0);
display.println("Solar Check");
display.println("");
Serial.print("SX: ");
Serial.println(LS1Val);
display.setCursor(0,16);
display.print("Sx: ");
display.println(LS1Val);
if ( LS1Val > 600 & LS1Val > (LS2Val*1.2) ) {digitalWrite ( MPO , LOW); delay(500);digitalWrite ( MPO , HIGH);}
else {digitalWrite ( MPO , HIGH);}
Serial.print("DX: ");
Serial.println(LS2Val);
display.print("Dx: ");
display.println(LS2Val);
if ( LS2Val > 600 & LS2Val > (LS1Val*1.2) ) {digitalWrite ( MPA , LOW);delay(500);digitalWrite ( MPA , HIGH);}
else {digitalWrite ( MPA , HIGH);}
Serial.print("UP: ");
Serial.println(LS3Val);
display.print("UP: ");
display.println(LS3Val);
if ( LS3Val > 600 & LS3Val > (LS4Val*1.2) ) {digitalWrite ( MTA , LOW); delay(500);digitalWrite ( MTA , HIGH);}
else {digitalWrite ( MTA , HIGH);}
Serial.print("DOWN: ");
Serial.println(LS4Val);
display.print("Down: ");
display.println(LS4Val);
if ( LS4Val > 600 & LS4Val > (LS3Val*1.2) ) {digitalWrite ( MTC , LOW); delay(500);digitalWrite ( MTC , HIGH);}
else {digitalWrite ( MTC , HIGH);}
display.display();
display.clearDisplay();
}
if (digitalRead(SMINPAN) == 0 & LS1Val > 200){
Serial.print ("RO Pan..");
display.setCursor(0,0);
display.print("RO Pan..");
display.display();
while(digitalRead(SMAXPAN) == 1){digitalWrite(MPA, LOW);}
Serial.print ("Max Pan!");
display.println("Max Pan");
display.display();
display.clearDisplay();} ///REOPEN
if (digitalRead(SMINTILT) == 0 & LS1Val > 200){
Serial.print ("RO Tilt..");
display.setCursor(0,0);
display.print("RO Tilt..");
display.display();
while(digitalRead(SMAXTILT) == 1){digitalWrite(MTA, LOW);}
Serial.print ("Max Tilt!");
display.println("Max Tilt");
display.display();
display.clearDisplay();} ///REOPEN
delay(100);
}
SC.h
#ifndef SC_H
#define SC_H
#include "PINOUT.h"
void SolarCheck();
#endif
displaydef.h ( i made this to just define all i need for display print one time)
#ifndef displaydef_H
#define displaydef_H
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define SCREEN_ADDRESS 0x3C
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
#endif
PINOUT.h (i don't now if it's good or it's better to keep it in main)
#ifndef PINOUT_h
#define PUNOUT_H
///////input///////
///luxmeters//
#define LS1 33 //sx
#define LS2 32 //dx
#define LS3 34 //up
#define LS4 35 //down
///microswitch
#define SMAXTILT 15
#define SMINTILT 2
#define SMAXPAN 4
#define SMINPAN 0
////output//////
///MOTORS
#define MTC 18 //Tilt Chiudere
#define MTA 5 //Tilt Aprire
#define MPA 16 //Pan AntiORario
#define MPO 17 //Pan Orario
#endif
Print time.h ( printlocaltime() is just an example copyed from esp time library)
#ifndef PrintTime_H
#define PrintTime_H
#include "time.h"
#include <WiFi.h>
//#include "displaydef.h"
void printLocalTime();
#endif