управление нагрузкой на 8 портов

AndreyK
Offline
Зарегистрирован: 03.01.2021

Здравствуйте!

Необходимо организовать управление восьмью термическими сервоприводами 230V (https://www.aliexpress.com/item/32961189302.html): замыкать/размыкать n-ое реле, сообщать состояние n-го реле. Нужно для автоматизации отопления.

Насколько я понимаю, нужна железка, wifi (ESP?), реле на 8 портов.

Нужна рекомендация по комплектующим и софт, умеющий подключаться к указанной wifi-сети и управлять портами нагрузки по http. Интересует стоимость. Допилить/прошить, думаю, смогу - программлю для web, linux-юзер с ядра 2.2.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

От 20000 р

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ТС, если веб странички сам напишешь, то от 15000 - brokly(at)mail.ru

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

ТС, если веб странички сам напишешь, то от 15000 - brokly(at)mail.ru

можно вопрос? там встроенная термопара?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Где ?  В термоэлектрических приводах ? Нет там ничего кроме воскового привода и его нагревателя. Подал 220 спираль греется - воск нагревается - расширяется - толкает шток - клапан открывается/закрывается.

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Там проста моторчик на воске

AndreyK
Offline
Зарегистрирован: 03.01.2021

Пацаны, вы чего не очнулись после праздников? 20000 за софтину, которая ногами подергает?

Web напишу сам, разумеется. Термостат в схеме не участвует, управляться будет по показаниям от bluetooth-термометров xiaomi.

Жду адекватных предложений.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

понятно, смутило - сообщать состояние n-го реле, - подумал как в паяльниках реализовано измерение по температуре, то-есть от температуры нагрева зависит вылет штока )))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AndreyK пишет:

 управляться будет по показаниям от bluetooth-термометров xiaomi.

а что еще не озвучено? )))
 

rkit
Offline
Зарегистрирован: 23.11.2016

ua6em пишет:

можно вопрос? там встроенная термопара?

ptc нагреватель

AndreyK
Offline
Зарегистрирован: 03.01.2021

ua6em пишет:

а что еще не озвучено? )))

Снимать показания с термометров и управлять железкой будет linux-сервер, софт я сам напишу.

Мне нужна железяка, способная по http (или любому другому протоколу) управлять подключенной к ней нагрузкой мощностью 2Вт на порт. Точнее рекомендация по выбору железки и софт к ней. Я так понял, что нужно arduino, модуль wifi, твердотельное реле https://www.aliexpress.com/item/32900650609.html

AndreyK
Offline
Зарегистрирован: 03.01.2021

ua6em пишет:

понятно, смутило - сообщать состояние n-го реле, - подумал как в паяльниках реализовано измерение по температуре, то-есть от температуры нагрева зависит вылет штока )))

Про вылет штока, про сам шток, про термическую голову железка ничего не знает. Она должна уметь ВКЛ и ВЫКЛ нагрузку на указанном порту реле.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

AndreyK пишет:

Пацаны, вы чего не очнулись после праздников? 20000 за софтину, которая ногами подергает?

Web напишу сам, разумеется. Термостат в схеме не участвует, управляться будет по показаниям от bluetooth-термометров xiaomi.

Жду адекватных предложений.

Если настройки сети в WIFI коде. Устройство работает только в режиме клиента. Никаких рисований схем, консультации при возникновении проблем только в виде отсылки к статьям, гарантия четкой работы только в локальной сети (без проксей и прочих гимороев на линии), без JSON, только HTML, никакой авторизации. 

Не забываем что питание ESP32 - от 3.5 до 2.5, так что ищем реле на 3.3 вольта.

При таких ограничениях возьму в работу за 5000 (порог вставания с дивана).

 

AndreyK
Offline
Зарегистрирован: 03.01.2021

Железка, управляющая термоголовками есть у китайцев за 2500 https://www.aliexpress.com/item/4000203519786.html, но мне нужно самому управлять, а не по показаниям подключенных термометров.

Может быть можно ее как-то допилить, если это проще?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Просто в ее интерфейсе устанавливаешь температуру до которой нагреться не сможет никогда, это будет вкл, про выкл сам сообразишь.

Как ты думаешь купить готовую машину или собрать аналогичную из говна и палок, что дешевле ?

 

AndreyK
Offline
Зарегистрирован: 03.01.2021

Ну да, max и min наверное, догадаюсь =)

Осталось эмулировать показания "подключенных" к ней термометров по wifi, т.к. я сильно сомневаюсь, что у нее есть web-морда или вообще какое-либо умное управление, telnet хотя бы.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

AndreyK пишет:

Ну да, max и min наверное, догадаюсь =)

Осталось эмулировать показания "подключенных" к ней термометров по wifi, т.к. я сильно сомневаюсь, что у нее есть web-морда или вообще какое-либо умное управление, telnet хотя бы.

Ну а какое тогда отношение та фигня за 2.5 тыщщи имеет к твоему заданию :) ?

Я вот нашел то что ты хочешь, но оно на али стоит 12 000. И это серийная хрень.

https://aliexpress.ru/item/1005001773972226.html?

 

 

AndreyK
Offline
Зарегистрирован: 03.01.2021

Ну вот - 12000, кот в мешке, хз с каким протоколом и web-интерфейсом. А то китайцы любят на камерах делать всякие виндовые activeX и прочие sofia, протоколы которых только реверсить приходится.

А тут нужно ардуино, wifi-модуль и 8-портовое твердотельное реле. Ну плюс софт. Зато я понимаю как оно устроено, могу вносить коррективы, если понадобится.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

AndreyK пишет:

А тут нужно ардуино, wifi-модуль и 8-портовое твердотельное реле. Ну плюс софт. Зато я понимаю как оно устроено, могу вносить коррективы, если понадобится.

Патому и $250.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

У тебя не аргументы а отмазки. Я правильно тебя понимаю, ты хочешь за тыщу рублей сесть на исполнителя и не слезать пока твои фантазии не воплотятся в жизнь ? Сделай сам, купи малину и накрути на ней все что хочешь. Реально твои хотелки человек будет делать пару дней, потом ты потребуешь консультации, потому что сам с еcпешкой не справишься. А время, как известно - деньги. 

AndreyK
Offline
Зарегистрирован: 03.01.2021

DetSimen пишет:

Патому и $250.

Пачаму патому? За код из 50 строк, дергающий ногами?

rkit
Offline
Зарегистрирован: 23.11.2016

Основной объем работы тут в подтирании слюней олигофрену, который считает что в чем-то разберется, когда не осилил найти эти 50 строк в гугле за 2 минуты.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Размер кода не имеет значения. Может еще буквы посчитаем ? :) Слова ? Очень важна последовательность букв слов и строк. Цена за правильную последовательность ! :) 

И давай формирование цены тут не обсуждать. Ибо смысла нет. Предложений уже было несколько. Тебя не устроило ничего. Можешь все сделать сам себе БЕСПЛАТНО :)  

BOOM
BOOM аватар
Offline
Зарегистрирован: 14.11.2018

AndreyK пишет:

DetSimen пишет:

Патому и $250.

За код из 50 строк, дергающий ногами?


Так основная работа МК это ногами дергать. Для серьезных вычислений им мощности вычислительной не хватает (не зря же суперкомпьютеры же строят). 
Вы бы лучше определились что Вам нужно - работающий код, дергающий ногами, или что? Если слишком просто - напишите сами. 
ЗЫ: Сколько за одностраничный сайт берут денег? Там же даже ногами дрыгать не нужно...

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AndreyK пишет:

 За код из 50 строк, дергающий ногами?

c 50 строками это ты сильно погорячился, не?

 

AndreyK
Offline
Зарегистрирован: 03.01.2021

rkit пишет:

Основной объем работы тут в подтирании слюней олигофрену, который считает что в чем-то разберется, когда не осилил найти эти 50 строк в гугле за 2 минуты.

Ну я просто увидел, что тут задроты с паяльником за доширак фигачат, решил не напрягаться =)

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Поскольку в этой теме все как всегда у малошарящих, мне вот всегда интересно на чем базируется мнение такого плана "заказчиков", что написать для ардуино - ничего не стоит и любая прошивка это 50 строк кода :) Вот просто понять ход мысли. ТС, ты расскажи, может проникнусь, сделаю тебе бесплатно. Только вот рассказы типа - "мне кажется", "я так думаю", "сам бы столько брал, если бы умел"... тут не прокатят.  Интересна именно аргументированная логика течения мысли.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

AndreyK пишет:

Ну я просто увидел, что тут задроты с паяльником за доширак фигачат, решил не напрягаться =)

Не задроты, а пару тройку задротов. Дык ты им пиши, прям перечисляй, для кого сия халтура. Чего ты всех то под одну гребенку бреешь ? :) Ты же понимаешь чего о тебе думают все остальные, если озвучат, спать будешь плохо, будешь себя жалеть.

Дет, вишь че тут происходит из-за некоторых бестолковых исполнителей. Вон Скиф за доширак впрягся с пьяну, теперь мы все так должны ?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Вапщето Скиф за 20000р предлагал, это овердохрена дошираков.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

Вапщето Скиф за 20000р предлагал, это овердохрена дошираков.

Дык в другой то теме, в соседней. Если бы он там не ляпнул, тут бы это не взошло. Во - http://arduino.ru/forum/ishchu-ispolnitelya/pult-du-433mhz-attiny13#comment-578448

На диверсию похоже :)

AndreyK
Offline
Зарегистрирован: 03.01.2021

brokly пишет:

Интересна именно аргументированная логика течения мысли.

Логика в сопоставлении трудоемкости с той сферой, которая мне близка. Можно взять, скажем, хранение булевой переменной (аналог вкл-выкл) в хранилище (БД, файл, память, да хоть google spreadsheets), и изменение/получение ее значения через http-протокол. В красивой обертке, в объектном стиле - час, на коленке в процедурном, вероятно быстрее, не знаю, давно так не писал.

Согласен, задача с железкой более низкоуровневая, но есть же готовые либы (для wifi и, вероятно, для gpio).
К тому же, как здесь отмечали, предназначение МК - дергать ногами, значит задача типовая, и для нее есть наработки.

sadman41
Offline
Зарегистрирован: 19.10.2016

Если опытный булошник печет булки с закрытыми глазами, то это ещё не говорит о том, что он всем подряд будет отдавать их по себестоимости.

 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

AndreyK пишет:

brokly пишет:

Интересна именно аргументированная логика течения мысли.

Логика в сопоставлении трудоемкости с той сферой, которая мне близка. Можно взять, скажем, хранение булевой переменной (аналог вкл-выкл) в хранилище (БД, файл, память, да хоть google spreadsheets), и изменение/получение ее значения через http-протокол. В красивой обертке, в объектном стиле - час, на коленке в процедурном, вероятно быстрее, не знаю, давно так не писал.

Согласен, задача с железкой более низкоуровневая, но есть же готовые либы (для wifi и, вероятно, для gpio).
К тому же, как здесь отмечали, предназначение МК - дергать ногами, значит задача типовая, и для нее есть наработки.

А почему наработки должны снижать цену работы ниже плинтуса ? Кто возьмет на себя косяки, если таковые вылезут в библиотеках , ну которые "есть" ? Ты когда колеса меняешь у авто, ты бедным мужикам которые гайк крутят что то про наработки говоришь ? Если ты так все красиво понимаешь, сделай все сам. Представь вею сервер, а теперь оставь от ресурса проца 1% и попробуй что нибудь сделать на этом. Со стилями, с разбором запросов, то есть напиши сервер, а ему еще база нужна, что бы помнить состояния реле. С этой точки зрения глянь. А наработки - их полный гитхаб, тебе уже сказали, что ели ты не смог их сам найти, то как клиент ты будешь очень тяжелый. 

ЗЫ Мои наработки - моя прибыль, заказчик тут ни причем. 

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

Вапще то за 20000 р я предложил. Не надо заслуги скифе приписывать. 

А в соседней ветке с тинькой я ни у кого хлеп не отбивал. Он мне так и не написал в личку. Там тоже клиент умный, оценил своё задание на раз два сделать для тех кто понял суть. Я, как и все, понял суть.  Что то никто не взялся. 

С НОВЫМ ГОДОМ ВСЕХ!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AndreyK пишет:

brokly пишет:

Интересна именно аргументированная логика течения мысли.

Логика в сопоставлении трудоемкости с той сферой, которая мне близка. Можно взять, скажем, хранение булевой переменной (аналог вкл-выкл) в хранилище (БД, файл, память, да хоть google spreadsheets), и изменение/получение ее значения через http-протокол. В красивой обертке, в объектном стиле - час, на коленке в процедурном, вероятно быстрее, не знаю, давно так не писал.

Согласен, задача с железкой более низкоуровневая, но есть же готовые либы (для wifi и, вероятно, для gpio).
К тому же, как здесь отмечали, предназначение МК - дергать ногами, значит задача типовая, и для нее есть наработки.

тут как раз на доширак у нас в ауле (1000 рублей), будешь должен, автоматику я всю за... с тебя осталась web часть...

// КОТ ДЛЯ ESP32

#include <WiFi.h>
#include <AsyncTCP.h>
#include <ESPAsyncWebServer.h>
const uint16_t ports = 80;

// вставляем ниже SSID и пароль для своей WiFi-сети:
const char* ssid     = "OpenWiFi";
const char* password = "12345";

// Задайте свой статический IP-адрес
IPAddress local_IP(192, 168, 1, 240);
// Укажите IP-адрес шлюза
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);
IPAddress primaryDNS(8, 8, 8, 8);   // опционально
IPAddress secondaryDNS(8, 8, 4, 4); // опционально

#define PinRele01 23
#define PinRele02 22
#define PinRele03 21
#define PinRele04 19
#define PinRele05 18
#define PinRele06 5
#define PinRele07 4
#define PinRele08 2

#define ISOFF LOW
#define ISON  HIGH

volatile uint8_t R1,R2,R3,R4,R5,R6,R7,R8;

void setup() {
  Serial.begin(115200);
  pinMode(PinRele01, OUTPUT);
  pinMode(PinRele02, OUTPUT);
  pinMode(PinRele03, OUTPUT);
  pinMode(PinRele04, OUTPUT);
  pinMode(PinRele05, OUTPUT);
  pinMode(PinRele06, OUTPUT);
  pinMode(PinRele07, OUTPUT);
  pinMode(PinRele08, OUTPUT);
  digitalWrite(PinRele01, ISOFF);
  digitalWrite(PinRele02, ISOFF);
  digitalWrite(PinRele03, ISOFF);
  digitalWrite(PinRele04, ISOFF);
  digitalWrite(PinRele05, ISOFF);
  digitalWrite(PinRele06, ISOFF);
  digitalWrite(PinRele07, ISOFF);
  digitalWrite(PinRele08, ISOFF);

  // Настраиваем статический IP-адрес сервера:
  if (!WiFi.config(local_IP, gateway, subnet, primaryDNS, secondaryDNS)) {
    Serial.println("STA Failed to configure");  //  "Не удалось задать статический IP-адрес"
  }
  // Connect to Wi-Fi
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(50);
    Serial.print(".");
  }
  Serial.println("Соединились по WiFi... для AndreyK ...");
}

  void loop() {
  }

Только не говори, что КОТ не рабочий:

 

....Соединились по WiFi... для AndreyK ...

 

AndreyK
Offline
Зарегистрирован: 03.01.2021

КОТ может и рабочий, но я уже читаю про Orange PI, там linux, я справлюсь =)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AndreyK пишет:

КОТ может и рабочий, но я уже читаю про Orange PI, там linux, я справлюсь =)

их есть у меня, поделись тогда, хочу посмотреть, как это под LINUX выглядит

Бармалей
Бармалей аватар
Offline
Зарегистрирован: 23.09.2019

AndreyK пишет:

КОТ может и рабочий, но я уже читаю про Orange PI, там linux, я справлюсь =)

Получил готовый код и слился, типа, уже не нужно, сам напишу?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

Бармалей пишет:

AndreyK пишет:

КОТ может и рабочий, но я уже читаю про Orange PI, там linux, я справлюсь =)

Получил готовый код и слился, типа, уже не нужно, сам напишу?

видимо понял, что с вэб частью не справится )))

AndreyK
Offline
Зарегистрирован: 03.01.2021

Не, пацаны, дописывал =)



/*
*  This sketch demonstrates how to set up a simple HTTP-like server.
*  The server will set a GPIO pin depending on the request
*    http://server_ip/gpio/0 will set the GPIO2 low,
*    http://server_ip/gpio/1 will set the GPIO2 high
*  server_ip is the IP address of the ESP8266 module, will be
*  printed to Serial when the module is connected.
*/

#include <ESP8266WiFi.h>

const char* ssid = "your-ssid";
const char* password = "your-password";
IPAddress ip(192, 168, 1, 99);
IPAddress gateway(192, 168, 1, 1);
IPAddress subnet(255, 255, 255, 0);

// Create an instance of the server
// specify the port to listen on as an argument
WiFiServer server(80);

void setup() {
  Serial.begin(115200);
  delay(10);

  // prepare GPIO2
  pinMode(2, OUTPUT);
  digitalWrite(2, 0);
 
  // Connect to WiFi network
  Serial.println();
  Serial.println();
  Serial.print("Connecting to ");
  Serial.println(ssid);
 
  //WiFi.begin(ssid, password);
  WiFi.softAP(ssid, password);
  WiFi.config(ip, gateway, subnet);
 
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.println("WiFi connected");
 
  // Start the server
  server.begin();
  Serial.println("Server started");

  // Print the IP address
  //Serial.println(WiFi.localIP());
  Serial.println(WiFi.softAPIP());
}

void loop() {
  // Check if a client has connected
  WiFiClient client = server.available();
  if (!client) {
    return;
  }
 
  // Wait until the client sends some data
  Serial.println("new client");
  while(!client.available()){
    delay(1);
  }
 
  // Read the first line of the request
  String req = client.readStringUntil('\r');
  Serial.println(req);
  client.flush();
 
  // Match the request
  int val;
  if (req.indexOf("/gpio/0") != -1)
    val = 0;
  else if (req.indexOf("/gpio/1") != -1)
    val = 1;
  else {
    Serial.println("invalid request");
    client.stop();
    return;
  }

  // Set GPIO2 according to the request
  digitalWrite(2, val);
 
  client.flush();

  // Prepare the response
  String s = "HTTP/1.1 200 OK\r\nContent-Type: text/html\r\n\r\n<!DOCTYPE HTML>\r\n<html>\r\nGPIO is now ";
  s += (val)?"high":"low";
  s += "</html>\n";

  // Send the response to the client
  client.print(s);
  delay(1);
  Serial.println("Client disonnected");

  // The client will actually be disconnected
  // when the function returns and 'client' object is detroyed
}

 

AndreyK
Offline
Зарегистрирован: 03.01.2021

Но вообще вся эта е#%я вприсядку не стоит свеч для штучного девайса.

Вот так намного проще:

echo out > /sys/class/gpio/gpio22/direction
cat /sys/class/gpio/gpio22/direction

Ну да, железка не за 100, а за 1000.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ага, и сервер на ней, а не сторонний...а websocket одолеешь на ней?

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

И к чему этот код ? Он настолько далек от того что ТС пожелал в начале, что может только развеселить :) Практическая ценность = -1 :)

AndreyK
Offline
Зарегистрирован: 03.01.2021

Состояние портов я и на сервере похраню, а в остальном - то, что нужно, можно дописать обработку запроса с парсингом номера порта.

А ты можешь продолжать ездить по ушам клиентам про глюкавые библиотеки, 1% cpu, БД для хранения (SPIFFS) и с дивана не вставать, ну максимум для болтовни на форуме =)

upd: либо просто 8 штук esp8266 купить, они копеечные

udp2: или два таких девайса по 1000р. https://www.aliexpress.com/item/32878971296.html

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AndreyK пишет:

А ты можешь продолжать ездить по ушам

понимаешь, иногда одно слово brokly разрешает проблему, над которой бьёшься неделю, притчу про конвейер и слесаря надеюсь знаешь )))

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

AndreyK пишет:

Состояние портов я и на сервере похраню, а в остальном - то, что нужно, можно дописать обработку запроса с парсингом номера порта.

А ты можешь продолжать ездить по ушам клиентам про глюкавые библиотеки, 1% cpu, БД для хранения (SPIFFS) и с дивана не вставать, ну максимум для болтовни на форуме =)

upd: либо просто 8 штук esp8266 купить, они копеечные

udp2: или два таких девайса по 1000р. https://www.aliexpress.com/item/32878971296.html

Ну так купи и трахай мозг себе, а не другим :) И как ты не поймешь, прчем тут уши клиента ? Ты мозгом думай, он же есть у тебя ? Или нет ? Все просто, если стоимость работ меня устраивает, я эту работу делаю. А если нет - не делаю. Потрындеть тут - бесплатно по желанию.  Я для тебя, как исполнитель - не по карману. Я не говорил что ты жмот. Я только думал об этом :) 

AndreyK
Offline
Зарегистрирован: 03.01.2021

Дружок, у тебя с логикой слабовато, как я погляжу. Как ты программишь-то?
То про траханье мозга пишешь, а потом вопрошаешь про его наличие, то про устраивающую тебя стоимость, хотя я никаких цифр не приводил.

Можешь сколько угодно набивать себе цену за свое вставание с засаленного дивана в мамкиной квартире, но это производит впечатление только на твоих приспешников, которые тоже умом не блещут, называя историю про Форда притчей.

Если бы ты снял бюстгальтер с глаз, то увидел бы, что весь твой мега-код который ты мне собрался написать с кучей условий, уже давно опубликован и разжеван построчно: https://techtutorialsx.com/2018/03/02/esp32-arduino-http-server-controlling-a-relay-remotely/ (и с количеством строк я, кстати не ошибся).

Так что про карман отвечу анекдотом про неуловимого Джо =)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

rkit пишет:

Основной объем работы тут в подтирании слюней олигофрену, который считает что в чем-то разберется, когда не осилил найти эти 50 строк в гугле за 2 минуты.

Вот. Сетаки rkit был прав. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Да, согласен :) 

Андрюшка, какой я тебе нахер дружок ? C мозгом у тебя все же проблема:)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

AndreyK пишет:

Дружок, у тебя с логикой слабовато...

Ты бы код проверил сначала, чем выкладывать ссылку, страницу браузера кто обновлять будет?
PS зажал 1т.р. так и скажи )))