Μετάβαση στο κύριο περιεχόμενο

Esp32_school_bell_with_NTP

 /*

  Rui Santos
  Complete project details at https://RandomNerdTutorials.com/esp32-date-time-ntp-client-server-arduino/
 
  Permission is hereby granted, free of charge, to any person obtaining a copy
  of this software and associated documentation files.
 
  The above copyright notice and this permission notice shall be included in all
  copies or substantial portions of the Software.
  Modified by Panagiotis Toumpaniaris on 10/4/2025
*/

#include <WiFi.h>
#include "time.h"

const char* ssid = "Vodafone_2.4G-12329";
const char* password = "9XfndzdcCnPdXD6k";


const char* ntpServer = "pool.ntp.org";
const long  gmtOffset_sec = 7200;
const int   daylightOffset_sec = 3600;

void setup(){
  pinMode(2, OUTPUT);
  Serial.begin(115200);
// digitalWrite(2,HIGH);
  // Connect to Wi-Fi
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected.");
 
  // Init and get the time
  configTime(gmtOffset_sec, daylightOffset_sec, ntpServer);
  printLocalTime();

  //disconnect WiFi as it's no longer needed
  WiFi.disconnect(true);
  WiFi.mode(WIFI_OFF);
}

void loop(){
  delay(1000);
  printLocalTime();
 
}

void printLocalTime(){
  struct tm timeinfo;
  if(!getLocalTime(&timeinfo)){
    Serial.println("Failed to obtain time");
    return;
  }
  Serial.println(&timeinfo, "%A, %B %d %Y %H:%M:%S");
  int hh1=timeinfo.tm_hour;
  Serial.print("hh1= ");
  Serial.println(hh1);
 // Serial.print("Day of week: ");
 // Serial.print(&timeinfo, "%A");
//  Serial.print("Month: ");
 // Serial.print(&timeinfo, "%B");
 // Serial.print("Day of Month: ");
 // Serial.print(&timeinfo, "%d");
//  Serial.println("Year: ");
//  Serial.print(&timeinfo, "%Y");
 // Serial.println("Hour: ");
  Serial.print(&timeinfo, "%H");
//  Serial.print("Hour (12 hour format): ");
 // Serial.print(&timeinfo, "%I");
 // Serial.print("Minute: ");

  Serial.print(&timeinfo, ":%M");
 // Serial.print("Second: ");
  Serial.println(&timeinfo, ":%S");

  Serial.println("Time variables");
  char timeHour[3];
  strftime(timeHour,3, "%H", &timeinfo);
  Serial.println(timeHour);
  char timeWeekDay[10];
  strftime(timeWeekDay,10, "%A", &timeinfo);
  Serial.println(timeWeekDay);
  Serial.println();
 // int hh1=timeinfo.tm_hour;
  int mm1=timeinfo.tm_min;
  int ss1=timeinfo.tm_sec;
  settimes(20,12,hh1, mm1, ss1) ;
  settimes(8,15,hh1, mm1, ss1);

// set time2
 settimes(9,0,hh1, mm1, ss1);
  settimes(9,5,hh1, mm1, ss1);

  // set time3
  settimes(9,50,hh1, mm1, ss1);
   settimes(10,0,hh1, mm1, ss1);
  // set time4
  settimes(10,45,hh1, mm1, ss1);
 settimes(10,55,hh1, mm1, ss1);
 // set time 5
  settimes(11,40,hh1, mm1, ss1);
   settimes(11,50,hh1, mm1, ss1);
   // set time 6
    settimes(12,35,hh1, mm1, ss1);
     settimes(12,40,hh1, mm1, ss1);
     // set time 7
      settimes(13,25,hh1, mm1, ss1);
       settimes(13,30,hh1, mm1, ss1);
     //set time 8
     
     settimes(14,10,hh1, mm1, ss1);
 
}
 void settimes(int h1,int m1,int hh,int mm,int ss) {
  struct tm timeinfo;
 
   if(h1==hh and m1==mm) {
      if (ss > 0 & ss<5) {
         digitalWrite(2,HIGH);
          // delay(1000);
                                       }
    else if(ss < 2 or ss >4){
      digitalWrite(2,LOW);
      delay(100);
    }
}
}

Σχόλια

Δημοφιλείς αναρτήσεις από αυτό το ιστολόγιο

Σερβοκινητήρας

  Βασικός έλεγχος σερβομηχανισμού Θα μάθουμε πώς να ελέγχετε έναν τυπικό σερβοκινητήρα, να πηγαίνει εμπρός και πίσω κατά 180 μοίρες, χρησιμοποιώντας ένα «βρόχο for()». Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης Servo, η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση). . Αυτό γίνεται με τη βοήθεια της βιβλιοθήκης  Servo     , η οποία είναι προεγκατεστημένη βιβλιοθήκη στο Arduino IDE (τόσο εκτός σύνδεσης όσο και σε ηλεκτρονική έκδοση).      Χρειαζόμαστε τα παρακάτω:     Arduino IDE Arduino UNO  Σερβοκινητήρας 4,8V - 6V  Καλώδια βραχυκυκλωτήρα. Τυπικοί σερβοκινητήρες Οι τυπικοί σερβοκινητήρες είναι ενεργοποιητές που επιτρέπουν τον ακριβή έλεγχο της θέσης (γωνία). Χαρακτηριστικό  είναι ότι η γωνία του κινητήρα είναι 0 - 180 μοίρες. Με άλλα λόγια, μπορεί να κάνει το μισό μιας περιστροφής. Ένας τυπικός σερβοκινητήρας, όπως και άλλοι κινητήρες, είναι ουσιαστικά απλώς ένας...

Φωτοαντιστάτης

int a; // εδώ θα κρατάμε την τιμή που διαβάζουμε από τον φωτοαντιστάτη float b; // εδώ θα αποθηκεύουμε την τάση που έχει ο φωτοαντιστάτης στα άκρα του float c; // εδώ θα αποθηκεύουμε την τιμή της αντίστασης του φωτοαντιστάτη int d; // εδώ θα αποθηκεύσουμε την τιμή-όριο πάνω από την οποία θα ανάβουμε το void setup() { Serial.begin(9600); // ξεκινάμε το σειριακό μόνιτορ του Arduino IDE  d=500; // τιμή πάνω από την οποία θα ανάβουμε το LED pinMode(6, OUTPUT); // το πιν 6 θα είναι ή ΕΞΟΔΟΣ που θα συνδέσουμε το LED } void loop() { a=analogRead(A0); // διάβασε την αναλογική είσοδο A0 και βάλε την τιμή στην a  Serial.print("Τιμή: "); // απεικόνισε την τιμή της a στο σειριακό μόνιτορ του Arduino IDΕ Serial.print(a); Serial.print("\t"); b=a*5.0/1023; // υπολόγισε την τιμή της τάσης στα άκρα του φωτοαντιστάτη Serial.print("Τάση: "); Serial.print(b); // απεικόνισε την τιμή της τάσης Serial.print(" V \t"); c=b*10.0/(5-b); // υπολόγισε την αντίσταση του φωτοα...

Πώς λειτουργούν τα τρανζίστορ

  Πώς λειτουργούν τα τρανζίστορ –  από τον  Øyvind Nydal Dahl Το τρανζίστορ είναι ένα απλό εξάρτημα που μπορείτε να χρησιμοποιήσετε για να δημιουργήσετε πολλά διασκεδαστικά έργα. Σε αυτόν τον πρακτικό οδηγό, θα μάθετε πώς λειτουργούν τα τρανζίστορ, ώστε να μπορείτε να τα χρησιμοποιήσετε στο επόμενο κύκλωμά σας. Και είναι στην πραγματικότητα αρκετά εύκολο, μόλις μάθετε τα βασικά. Θα επικεντρωθώ στα δύο πιο συνηθισμένα τρανζίστορ εδώ: το  BJT  και το  MOSFET  . Το τρανζίστορ λειτουργεί σαν ηλεκτρονικός διακόπτης. Μπορεί να ενεργοποιήσει και να απενεργοποιήσει ένα ρεύμα. Ένας απλός τρόπος για να το σκεφτείτε είναι να δείτε το τρανζίστορ ως  ρελέ  χωρίς κινούμενα μέρη. Ένα τρανζίστορ είναι παρόμοιο με ένα ρελέ με την έννοια ότι μπορείτε να το χρησιμοποιήσετε για να ενεργοποιήσετε και να απενεργοποιήσετε κάτι. Αλλά ένα τρανζίστορ μπορεί επίσης να ενεργοποιηθεί μερικώς, κάτι που είναι χρήσιμο για την κατασκευή ενισχυτών. Πώς λειτουργούν τα τρανζίστ...