Ты бы вместе с внуками немного по занимался…
Не, ну вот это “перец” ))) Месяц как ардуино занимается и еще имеет наглость “права качать”
Ты бы вместе с внуками немного по занимался…
Не, ну вот это “перец” ))) Месяц как ардуино занимается и еще имеет наглость “права качать”
Мне кажется, первый выделенный фрагмент противоречит второму выделенному фрагменту. Не?
это круто
всё давно объяснено тут, пост #2 я думаю
PS если ТС меня не понял то сам себе злобный буратино
держи, ради праздника, не проверял, не на чем
#include <DHT.h>
#include <Wire.h> //Подключаем библиотеку для использования I2C интерфейса с модулем RTC
#include “RTClib.h” //Подключаем библиотеку для использования модуля часов реального времени RTC
#include <LiquidCrystal_I2C.h>
RTC_DS1307 RTC; //Создаем переменную класса - для использования RTC
//задаем адрес LCD экрана 0x27, 16 символов, 2 строки
LiquidCrystal_I2C lcd(0x27, 16, 2);
int svet = 3;
#define DHTPIN 2
#define DHTTYPE DHT11
int t = 4;
int h = 5;
int val;
DHT dht(DHTPIN, DHTTYPE);
byte degree[8] = // кодируем символ градуса
{
B00111,
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
};
int value = 0;
int analogPin = A1;
int poliv = 6;
int norma = 300;
void setup () {
lcd.init(); // Инициализируем экран
lcd.backlight(); //без подсветки,буквы плохо видно
Serial.begin(9600);
Wire.begin();
RTC.begin();
pinMode(svet, OUTPUT);
lcd.createChar(1, degree);
dht.begin();
pinMode(t, OUTPUT);
pinMode(h, OUTPUT);
pinMode(analogPin, INPUT);
pinMode(poliv, OUTPUT);
}
void loop () {
//освещение пин 3
DateTime now = RTC.now();
if (now.hour() >= 8 && now.hour() < 15)
digitalWrite(svet, LOW);//включено
else
digitalWrite(svet, HIGH); //Отключено
val = digitalRead(svet);
if (val == LOW) {
lcd.setCursor(12, 0);
lcd.print(“S”);
}
else if (val == HIGH)
{
lcd.setCursor(12, 0);
lcd.print(“s”);
}
//часы
if (millis() % 1000 == 0) {
lcd.setCursor(3, 1);
lcd.print(now.month(), DEC);//месяц
lcd.setCursor(2, 1);
lcd.print(“: ”);
lcd.setCursor(0, 1);
lcd.print(now.day(), DEC);//день
lcd.setCursor(0, 0);
lcd.print(now.hour(), DEC);//час
lcd.setCursor(2, 0);
lcd.print(“: ”);
lcd.setCursor(3, 0);
lcd.print(now.minute(), DEC);//минуты
//температура пин 2 вход температура пин 4 вых и влажность пин 5 вых
h = dht.readHumidity();
t = dht.readTemperature();
if (t > 25)
{
digitalWrite (t, HIGH);
}
else
{
digitalWrite (t, LOW);
}
val = digitalRead(t);
if (val == HIGH) {
lcd.setCursor(13, 0);
lcd.print(“T”);
}
else if (val == LOW)
{
lcd.setCursor(13, 0);
lcd.print(“t”);
}
delay (1000);
if (h > 45)
{
digitalWrite (h, HIGH);
}
else
{
digitalWrite (h, LOW);
}
val = digitalRead(h););
if (val == HIGH)
{
lcd.setCursor(14, 0);
lcd.print(“H”);
}
else if (val == LOW)
{
lcd.setCursor(14, 0);
lcd.print(“h”);
}
delay(1000);
lcd.setCursor(10, 1);
lcd.print(“ % ”);
lcd.setCursor(8, 1);
lcd.print(h);
lcd.setCursor(10, 0);
lcd.print(“C”);
lcd.setCursor(8, 0);
lcd.print(t);
//полив вход а1 выход 6
if (analogRead(analogPin) >= norma)
digitalWrite(poliv, LOW);
else
digitalWrite(poliv, HIGH);
val = digitalRead(poliv);
if (val == LOW) {
lcd.setCursor(15, 0);
lcd.print(“P”);
}
else if (val == HIGH)
{
lcd.setCursor(15, 0);
lcd.print(“p”);
}
delay (1000);
}
}
ты уверен, что правильно распознал, после каких if у него должны быть скобки, а после каких нет?
И вот еще код интересный…
сначала сами включаем или выключаем свет по условию, а потом читаем из пина, что это мы такое там выставили в прошлой строчке
И такой замечательный блок условий не один…
Ты имеешь ввиду день работника клининговой сферы? Надо седня машину помыть. Говорят, если в этот праздник помыть, то потом год не нужно мыть. Вот не знаю - правда иль нет…
Ну эт как посмотреть… Год не мыть можно машину, которая год стоИт сломатая или разбитая😄
или ту, которую грязь только красит
Вчера первый раз с прошлого лета намыл машину. Через час дождь пошел, хотя по прогнозам не было. До сих пор не перестает никак. Как это называется?
народная примета
Я ж запретил, вроде, пенсионеру помогать
Где это?
Вводить нельзя было, это я помню
Каво вводить? Здесь прямо написано:
Полная цитата выглядит так))
Получается неинвазивные методы не запрещены. А равно и действия третьих лиц
Всё-таки я так и не понял - зачем ТС столько там у себя “накрутил”…
Видимо 1 месяц занятия ардуиной маловато для подобных “поделок”… )))
#include <DHT.h>
#include <Wire.h> // Подключаем библиотеку для использования I2C интерфейса с модулем RTC
#include <RTClib.h> // Подключаем библиотеку для использования модуля часов реального времени RTC
#include <LiquidCrystal_I2C.h>
RTC_DS1307 RTC; // Создаем переменную класса - для использования RTC
LiquidCrystal_I2C lcd(0x27, 16, 2); // задаем адрес LCD экрана 0x27, 16 символов, 2 строки
uint8_t svet = 3;
uint8_t t = 4;
uint8_t h = 5;
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
byte degree[8] = { // кодируем символ градуса
B00111, // ( но нигде не применяем потом :D )
B00101,
B00111,
B00000,
B00000,
B00000,
B00000,
};
uint8_t analogPin = A1;
uint8_t poliv = 6;
int16_t norma = 300;
uint32_t prevMillis;
void setup () {
pinMode(t, OUTPUT);
pinMode(h, OUTPUT);
pinMode(analogPin, INPUT);
pinMode(poliv, OUTPUT);
pinMode(svet, OUTPUT);
lcd.init(); // Инициализируем экран
lcd.backlight(); // без подсветки,буквы плохо видно
// ( где не надо - запятые ставим :D )
dht.begin();
RTC.begin();
Serial.begin(9600);
Wire.begin();
lcd.createChar(1, degree); // зачем ???
prevMillis = millis();
}
void loop () {
DateTime now = RTC.now();
if (now.hour() >= 8 && now.hour() < 15) {
digitalWrite(svet, LOW); //включено
lcd.setCursor(12, 0);
lcd.print("S");
} else {
digitalWrite(svet, HIGH); //Отключено
lcd.setCursor(12, 0);
lcd.print("s");
}
//часы
// if (millis() % 1000 == 0) { // ТАК ДЕЛАТЬ НЕ НАДО
if (millis() - prevMillis >= 1000) { // А вот так - нормально ))
prevMillis = millis();
lcd.setCursor(3, 1);
lcd.print(now.month(), DEC); // месяц
lcd.setCursor(2, 1);
lcd.print(": ");
lcd.setCursor(0, 1);
lcd.print(now.day(), DEC); // день
lcd.setCursor(0, 0);
lcd.print(now.hour(), DEC); // час
lcd.setCursor(2, 0);
lcd.print(": ");
lcd.setCursor(3, 0);
lcd.print(now.minute(), DEC); // минуты
// температура пин 2 вход температура пин 4 вых и влажность пин 5 вых
int h = dht.readHumidity();
int t = dht.readTemperature();
if (t > 25) {
digitalWrite (t, HIGH);
lcd.setCursor(13, 0);
lcd.print("T");
} else {
digitalWrite (t, LOW);
lcd.setCursor(13, 0);
lcd.print("t");
}
if (h > 45) {
digitalWrite (h, HIGH);
lcd.setCursor(14, 0);
lcd.print("H");
} else {
digitalWrite (h, LOW);
lcd.setCursor(14, 0);
lcd.print("h");
}
lcd.setCursor(10, 1);
lcd.print(" % ");
lcd.setCursor(8, 1);
lcd.print(h);
lcd.setCursor(10, 0);
lcd.print("C");
lcd.setCursor(8, 0);
lcd.print(t);
//полив вход а1 выход 6
if (analogRead(analogPin) >= norma) {
digitalWrite(poliv, LOW);
lcd.setCursor(15, 0);
lcd.print("P");
} else {
digitalWrite(poliv, HIGH);
lcd.setCursor(15, 0);
lcd.print("p");
}
}
}
Скетч использует 8682 байт (28%) памяти устройства. Всего доступно 30720 байт.
Глобальные переменные используют 501 байт (24%) динамической памяти, оставляя 1547 байт для локальных переменных. Максимум: 2048 байт.
Вот так вообще пойдётЬ )))
#include <DHT.h>
#include <Wire.h> // Подключаем библиотеку для использования I2C интерфейса с модулем RTC
#include <RTClib.h> // Подключаем библиотеку для использования модуля часов реального времени RTC
#include <LiquidCrystal_I2C.h>
RTC_DS1307 RTC; // Создаем переменную класса - для использования RTC
LiquidCrystal_I2C lcd(0x27, 16, 2); // задаем адрес LCD экрана 0x27, 16 символов, 2 строки
uint8_t svet = 3;
uint8_t t = 4;
uint8_t h = 5;
#define DHTPIN 2
#define DHTTYPE DHT11
DHT dht(DHTPIN, DHTTYPE);
uint8_t analogPin = A1;
uint8_t poliv = 6;
int16_t norma = 300;
uint32_t prevMillis;
void setup () {
pinMode(t, OUTPUT);
pinMode(h, OUTPUT);
pinMode(analogPin, INPUT);
pinMode(poliv, OUTPUT);
pinMode(svet, OUTPUT);
lcd.init(); // Инициализируем экран
lcd.backlight(); // без подсветки,буквы плохо видно
// ( где не надо - запятые ставим :D )
dht.begin();
RTC.begin();
Serial.begin(9600);
Wire.begin();
prevMillis = millis();
}
void loop () {
DateTime now = RTC.now();
lcd.setCursor(12, 0);
if (now.hour() >= 8 && now.hour() < 15) {
digitalWrite(svet, LOW); //включено
lcd.print("S");
} else {
digitalWrite(svet, HIGH); //Отключено
lcd.print("s");
}
//часы
if (millis() - prevMillis >= 1000) { // А вот так - нормально ))
prevMillis = millis();
lcd.setCursor(3, 1);
lcd.print(now.month(), DEC); // месяц
lcd.setCursor(2, 1);
lcd.print(": ");
lcd.setCursor(0, 1);
lcd.print(now.day(), DEC); // день
lcd.setCursor(0, 0);
lcd.print(now.hour(), DEC); // час
lcd.setCursor(2, 0);
lcd.print(": ");
lcd.setCursor(3, 0);
lcd.print(now.minute(), DEC); // минуты
// температура пин 2 вход температура пин 4 вых и влажность пин 5 вых
int h = dht.readHumidity();
int t = dht.readTemperature();
lcd.setCursor(13, 0);
if (t > 25) {
digitalWrite (t, HIGH);
lcd.print("T");
} else {
digitalWrite (t, LOW);
lcd.print("t");
}
lcd.setCursor(14, 0);
if (h > 45) {
digitalWrite (h, HIGH);
lcd.print("H");
} else {
digitalWrite (h, LOW);
lcd.print("h");
}
lcd.setCursor(10, 1);
lcd.print(" % ");
lcd.setCursor(8, 1);
lcd.print(h);
lcd.setCursor(10, 0);
lcd.print("C");
lcd.setCursor(8, 0);
lcd.print(t);
//полив вход а1 выход 6
lcd.setCursor(15, 0);
if (analogRead(analogPin) >= norma) {
digitalWrite(poliv, LOW);
lcd.print("P");
} else {
digitalWrite(poliv, HIGH);
lcd.print("p");
}
}
}
Даже в Atmega8 “влазит” )))
Скетч использует 7288 байт (88%) памяти устройства. Всего доступно 8192 байт.
Глобальные переменные используют 487 байт (47%) динамической памяти, оставляя 537 байт для локальных переменных. Максимум: 1024 байт.
Лучше бы мне помог разобраться как с sqlite в C++ работать )))
PS тут вам не здесь PHP
А какие проблемы с ней работать? Она ж сама на С написана. Тут вам не php
я не понимаю, как значения из базы переменным присваивать, взять к примеру конкретную запись
rc = db_exec(db1, "SELECT count(*) FROM frequency");
и как отсюда значение счётчика в переменную вытащить?
вот сижу, репу чешу, и как в том фильме - всё самой???
SQLITE_API int sqlite3_exec(
sqlite3*, /* An open database */
const char *sql, /* SQL to be evaluated */
int (*callback)(void*,int,char**,char**), /* Callback function */
void *, /* 1st argument to callback */
char **errmsg /* Error msg written here */
);