Αναρτήσεις

esp32 and wifi

Εικόνα
presentation /*     Rui Santos & Sara Santos - Random Nerd Tutorials   https://RandomNerdTutorials.com/learn-esp32-with-arduino-ide/   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. */ #include <WiFi.h> #include <WebServer.h> // Replace with your network credentials const char * ssid = "SSID" ; const char * password = "PASSWORD" ; // Assign output variables to GPIO pins const int output26 = 26 ; const int output27 = 27 ; String output26State = "off" ; String output27State = "off" ; // Create a web server object WebServer server ( 80 ) ; // Function to handle turning GPIO 26 on void handleGPIO26On () {   output26State = "on" ;   digitalWrite ( output26, HIGH ) ;   handleRoot () ; } // Function to handle ...

Χρησιμοποιώντας την ηλιακή ενέργεια

Εικόνα
Ένα χρήσιμο στοιχείο στην πραγματοποίηση της ιδέας μας είναι η χρήση της ηλιακής ενέργειας για την τροφοδοσία των συσκευών μας (όπως π.χ. το esp32) αλλά και για τη φόρτιση κινητών σε εξωτερικούς χώρους, όπου η παραμονή μας διαρκεί αρκετές ώρες. Πειραματιστήκαμε με το esp32  και τα tablet  του σχολείου και επιβεβαιώσαμε ότι η τάση και το ρεύμα εξόδου είναι αρκετά για τη λειτουργία του αισθητήρα DHT22 συνδεδεμένου με το esp32, η αποστολή των μετρήσεων στο Thingspeak καθώς και η φόρτιση ενός tablet (έστω και με πιο αργό ρυθμό). https://randomnerdtutorials.com/power-esp32-esp8266-solar-panels-battery-level-monitoring/

servo and led

Εικόνα
   Ελέγχοντας την κίνηση ενός servo το οποίο μπορεί να χρησιμοποιηθεί για το άνοιγμα των κάδων στην πλατεία και όχι μόνο. Για την οπτικοποίηση χρησιμοποιήσαμε τη βοήθεια δύο led: // C++ code #include <Servo.h> int angle = 0; int i = 0; Servo servo_9; void setup() {   pinMode(5, OUTPUT);   servo_9.attach(9, 500, 2500);   pinMode(4, OUTPUT);   angle = 0; } void loop() {   while (angle < 180) {     angle += 1;     digitalWrite(5, HIGH);     servo_9.write(angle);   }   delay(2000); // Wait for 2000 millisecond(s)   if (angle == 180) {     digitalWrite(5, LOW);   }   while (angle > 0) {     angle += -1;     digitalWrite(4, HIGH);     servo_9.write(angle);   }   delay(2000); // Wait for 2000 millisecond(s)   digitalWrite(4, LOW); }

ldr and lcd

Εικόνα
    // C++ code #include <LiquidCrystal_I2C.h> int ldr_light = 0 ; int darkness = 0 ; LiquidCrystal_I2C lcd_2 ( 0x 27 , 16 , 2 ) ; void setup () {   lcd_2 . init () ;   lcd_2 . clear () ;           lcd_2 . backlight () ;   pinMode ( A0, INPUT ) ;   pinMode ( 7 , OUTPUT ) ;   darkness = 650 ; } void loop () {   ldr_light = analogRead ( A0 ) ;   lcd_2 . setCursor ( 1 , 0 ) ;   lcd_2 . print ( "Is it dark ?" ) ;   lcd_2 . setCursor ( 1 , 1 ) ;   lcd_2 . print ( "darkness=" ) ;   lcd_2 . print ( ldr_light ) ;   if ( ldr_light < darkness ) {     digitalWrite ( 7 , HIGH ) ;   } else {     digitalWrite ( 7 , LOW ) ;   }   delay ( 1000 ) ; // Wait for 1000 millisecond(s)   lcd_2 . clear () ; } https://www.build-electronic-circuits.com/arduino-light-sensor/

LCD οθόνη και arduino

Εικόνα
LCD οθόνη // C++ code // #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd_2(39, 16, 2); void setup() {   lcd_2.init();   lcd_2.clear(); } void loop() {   lcd_2.setCursor(0, 0);   lcd_2.print("hello world");   delay(1000); // Wait for 1000 millisecond(s)   lcd_2.setCursor(0, 1);   lcd_2.print("Are you Ok ?"); } χρήσιμες εντολές για την οθόνη: include <LiquidCrystal.h>   καλούμε τη βιβλιοθήκη για την οθόνη που θα πρέπει να έχουμε κατεβάσει-εγκαταστήσει   lcd.scrollDisplayRight();   lcd.scrollDisplayLeft(); Με τις εντολές αυτές μπορούμε να έχουμε κινούμενο κείμενο προς την κατεύθυνση της εντολής 

watering plants and screen

Εικόνα
   υγρασία εδάφους κώδικας για ρύθμιση  /* Change these values based on your calibration values */ #define soilWet 500 // Define max value we consider soil 'wet' #define soilDry 750 // Define min value we consider soil 'dry' // Sensor pins #define sensorPower 7 #define sensorPin A0 void setup () { pinMode (sensorPower, OUTPUT); // Initially keep the sensor OFF digitalWrite (sensorPower, LOW); Serial. begin ( 9600 ); } void loop () { //get the reading from the function below and print it int moisture = readSensor (); Serial. print ( "Analog Output: " ); Serial. println (moisture); // Determine status of our soil if (moisture < soilWet) { Serial. println ( "Status: Soil is too wet" ); } else if (moisture >= soilWet && moisture < soilDry) { Serial. println ( "Status: Soil moisture is perfect" ); } else { Serial. println ( "Status: Soil is too dry - time to water!" );...

Kalydreamers code club

Εικόνα
 Για την καλύτερη συνεργασία και διαχείριση του project  δημιουργήθηκε μια τάξη στο tinkercad https://www.tinkercad.com/joinclass/JD52BWHBY Ξεκινήσαμε το πρότζεκτ μας με την εξοικείωση των μαθητών με οθόνες όπου εκπαιδεύτηκαν στο να  εμφανίζουν αριθμούς και γράμματα: Κυριότερες πηγές: 1.  https://lastminuteengineers.com/ 2.  https://roboticsbackend.com/arduino-push-button-tutorial/