| Arduino и Ethernet Shield W5100 | 
|  | 
| 
 
 |  | Администратор
  
 2015-12-08 16:13 #1 
 Arduino и Ethernet Shield W5100 обсуждение цикла статей.
 Часть 1 - Начало проекта.
 Часть 2 - Добавлено динамическое обновление данных и работа с SD картой.
 Часть 3 - Добавлено оформление страницы.
 Часть 4 - Добавлено управление реле.
 Часть 5 - Добавлен регулятор мощности нагрузки в виде ползунка.
 NEW!!! Часть 6 - Реализация включения реле по таймеру
 Профиль
 |  | 
| 
 
 |  | Администратор
  
 2017-01-05 01:34 #286 
 Думаю будет интересно посмотреть людям на исходники Вашего решения. Могу оформить внутри статьи чтобы не потерялось на страницах форума.
  Профиль
 |  | 
| 
 
 |  | samuray
  
 2017-01-05 20:34 #287 
 ПРОДОЛЖЕНИЕ:Цитата samuray (  )  МОДУЛЬ RTC I2C ЗАМЕНИЛ НА "Модуль часов с автономным питанием DS-1302"ДАЛЕЕ ВЕБ-СТРАНИЧКА ТРАНСФОРМИРОВАЛОСЬ В СМ. ПРИЛОЖЕНИЕ.
 
 ОФОРМЛЮ СКЕТЧ И ФАЙЛЫ ВЕБ-СТРАНИЦЫ И ............
 ВООБЩЕМ ЖДИТЕ ПРОДОЛЖЕНИЯ
 
 
   
 
 Сообщение отредактировал samuray - Четверг, 2017-01-05, 21:28Профиль |  | 
|  | 
| 
 
 |  | Администратор
  
 2017-01-09 11:56 #289 
 gawmer, договорились с samuray сделать отдельной статьей. Уже сбросил мне всю информацию и на днях будет готова.
  Профиль
 |  | 
|  | 
| 
 
 |  | sas_irk
  
 2017-01-13 07:57 #291 
 Никак не могу сделать т.н. "эффект кнопки", то есть чтобы выбранное реле включилось и через dalay(1000) отключилось. Всё казалось бы получается, но W5100 запоминает изменения сделанные мышью и при следующем подключении браузером релюшки начинают хлопать как бог на душу положит. Понимаю что надо кроме записи в порты реле чего-то отправлять и на W5100, а вот что не знаю...
  Профиль
 |  | 
| 
 
 |  | Администратор
  
 2017-01-13 09:23 #292 
 sas_irk, подробнее опишите вашу проблему. Не получается собрать по статье или другое устройство делаете?
  Профиль
 |  | 
| 
 
 |  | Гость
  
 2017-01-13 09:29 #293 
 По статье все получается, хотелось бы чтобы реле не фиксировалось в замкнутом состоянии, а возвращалось в разомкнутое. Хочу сделать дистанционный reset серверов, запараллелив серверные кнопки к реле ардуино.
  Профиль
 |  | 
|  | 
| 
 
 |  | lonerko
  
 2017-01-25 11:09 #295 
 Спасибо Вам за проделанную роботу. Использую 16-и канальное реле. Немного изменив код все работает без нареканий.А можно ли добавить еще 2 кнопки для управления шаговым двигателем (например для открытия окна). При нажатии первой вращение по часовой,  другой - против, на определенное расстояние.
 
 В index.htm:
 
 Код <button type="button" class="button_disabled" onClick="onClick(41)">Двигатель+</button><button type="button" class="button_disabled" onClick="onClick(42)">Двигатель-</button>
 В саму прошивку:
 
 
 Код #include<AccelStepper.h>#define HALFSTEP 8
 #define motorPin1  42
 #define motorPin2  44
 #define motorPin3  46
 #define motorPin4  48
 AccelStepper stepper01(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
 
 //секция setup
 stepper01.setMaxSpeed(300.0);
 stepper01.setAcceleration(10.0);
 stepper01.setSpeed(50);
 stepper01.move(300);
 
 //секция loop
 } else if (StrContains(HTTP_req, "pin=41")) {
 stepper1.move(200);
 stepper1.run();
 
 } else if (StrContains(HTTP_req, "pin=42")) {
 stepper1.move(-200);
 stepper1.run();
 }
Как я понимаю проблема в последней секции "loop", побывал разные условия добавлять но результата не добился.
 Как-то можно это реализовать?
 Профиль
 |  | 
|  | 
| 
 
 |  | MacSIM
  
 2017-01-25 23:49 #297 
 добейтесь сначала работы двигателя без веб страницы, как вариант посылка команд через сериалмонитор. когда заработает прикрутите веб.Цитата lonerko (  )  побывал разные условия добавлять но результата не добился Профиль
 |  | 
| 
 
 |  | lonerko
  
 2017-01-27 12:31 #298 
 MacSIM, Стандартный (минимальный) код, что бы крутился то в одну сторону то в другую работает нормально. Изменяю цикл работы на другое действия - тоже работает.Если использую при нажатии кнопки этот же или другой код - работать отказывается.
 
 
 Код #include<AccelStepper.h>
 #define HALFSTEP 8
 
 // Определение пинов для управления двигателем
 #define motorPin1  3 // IN1 на 1-м драйвере ULN2003
 #define motorPin2  4 // IN2 на 1-м драйвере ULN2003
 #define motorPin3  5 // IN3 на 1-м драйвере ULN2003
 #define motorPin4  6 // IN4 на 1-м драйвере ULN2003
 
 // Инициализируемся с последовательностью выводов IN1-IN3-IN2-IN4
 // для использования AccelStepper с 28BYJ-48
 AccelStepper stepper1(HALFSTEP, motorPin1, motorPin3, motorPin2, motorPin4);
 
 void setup(){
 stepper1.setMaxSpeed(1000.0);
 stepper1.setAcceleration(100.0);
 stepper1.setSpeed(200);
 stepper1.moveTo(20000);
 }
 
 void loop(){
 // Изменяем направление, если шаговик достигает заданного положения
 if(stepper1.distanceToGo()==0)
 stepper1.moveTo(-stepper1.currentPosition());
 stepper1.run();
 Профиль
 |  | 
| 
 
 |  | shum
  
 2017-02-15 17:53 #299 
 Уважаемые !Спасибо за ваш проэкт ! Хочу внести свои копейки.
 1. Скрестил Ваш 5-ый урок ( Добавлен регулятор мощности нагрузки в виде ползунка.)
 с FLProg .
 2. Внес изменения в код для использования стандартных библиотек Arduino,
 т.е. вместо вашей #include <dht11.h> ипользую <DHT.h> и <DHT_U.h>
 
 Это блекчает добавления кода из FLprog.
 Web код не трогал , только код Arduino.
 Плата mega 2560 но пины все ваши.
 
 Профиль
 |  | 
| 
 
 |  | Max_dm
  
 2017-03-02 19:12 #300 
 Цитата AspiD (  )  данные грузятся динамически без обновления странички. происходит это так: скрипт в браузере каждую секунду отправляет запрос серверу. сервер собирает данные с датчиков и формирует строку ответа. затем строка отправляется по сети в браузер клиента. и скрипт эту строку разбирает на показания отдельных датчиков и выводит на страничку.вот этот код формирует ответную строку: Код if (StrContains(HTTP_req, "ajax_flame")) {sendBaseAnswer(client);
 int smoke_gas = 0; //пин на котором подключен MQ-2
 int sensorReading = analogRead(smoke_gas);
 int chk;
 chk = DHT.read(DHT11_PIN);
 client.print(sensorReading);
 client.print(":");
 client.print(DHT.temperature);
 client.print(":");
 client.print(DHT.humidity);
 client.print(":");
 client.print((digitalRead(2)) ? "1" : "0");
 client.print(":");
 client.print((digitalRead(3)) ? "1" : "0");
 client.print(":");
 client.print((digitalRead(5)) ? "1" : "0");
 client.print(":");
 client.print((digitalRead(6)) ? "1" : "0");
 client.print(":");
 client.print(pin5);
 }
а вот этот эту строку разбирает и выводит на сайт: Код if (this.responseText != null) {var arrayOfStrings = this.responseText.split(":");
 document.getElementById("flame_txt").innerHTML = arrayOfStrings[0];
 document.getElementById("temp_txt").innerHTML = arrayOfStrings[1];
 document.getElementById("humid_txt").innerHTML = arrayOfStrings[2];
 for(var i = 1 ; i < 5 ; i++)
 if(arrayOfStrings[2+i] == "1")
 document.getElementById("led_"+i).setAttribute("class","button_enabled");
 else
 document.getElementById("led_"+i).setAttribute("class","button_disabled");
 }
параметры передаются через ":" порядок параметров один и тот жеА можно подробнее прокомментировать  запрос-ответ?
 Профиль
 |  |