-
Планирование по времени.
Этот метод позволяет запланировать включение и выключение света в определенное время дня.#include <TimeLib.h> #include <TimeAlarms.h> int lightPin = 2; void setup() { // Initialize the light pin pinMode(lightPin, OUTPUT); // Set the on and off times Alarm.alarmRepeat(8, 0, 0, turnOnLight); // Turn on at 8:00 AM every day Alarm.alarmRepeat(18, 0, 0, turnOffLight); // Turn off at 6:00 PM every day // Start the alarm Alarm.timerOnce(1); } void loop() { // Process the alarms Alarm.delay(1000); } void turnOnLight() { digitalWrite(lightPin, HIGH); } void turnOffLight() { digitalWrite(lightPin, LOW); } -
Планирование на основе датчика освещенности.
Этот метод позволяет управлять освещением в зависимости от уровня окружающего освещения. Свет будет включаться, когда стемнеет, и выключаться, когда станет светло.int lightPin = 2; int sensorPin = A0; int threshold = 500; void setup() { // Initialize the light and sensor pins pinMode(lightPin, OUTPUT); pinMode(sensorPin, INPUT); } void loop() { int lightLevel = analogRead(sensorPin); if (lightLevel < threshold) { digitalWrite(lightPin, HIGH); // Turn on the light } else { digitalWrite(lightPin, LOW); // Turn off the light } delay(1000); // Adjust the delay as needed } -
Планирование через веб-интерфейс:
Этот метод позволяет планировать освещение удаленно через веб-интерфейс. Вы можете использовать модуль Wi-Fi с Arduino для подключения к Интернету и управления освещением.#include <ESP8266WiFi.h> #include <ESP8266HTTPClient.h> const char* ssid = "your_SSID"; const char* password = "your_PASSWORD"; const char* serverUrl = "http://your_server_url.com"; int lightPin = 2; void setup() { // Initialize the light pin pinMode(lightPin, OUTPUT); // Connect to Wi-Fi WiFi.begin(ssid, password); while (WiFi.status() != WL_CONNECTED) { delay(1000); } } void loop() { // Check for scheduled commands from the server if (WiFi.status() == WL_CONNECTED) { HTTPClient http; http.begin(serverUrl); int httpCode = http.GET(); if (httpCode == HTTP_CODE_OK) { String command = http.getString(); if (command == "on") { digitalWrite(lightPin, HIGH); } else if (command == "off") { digitalWrite(lightPin, LOW); } } http.end(); } delay(1000); // Adjust the delay as needed }