Принять из браузера 54 переменных, передать на 74HC595
- Войдите на сайт для отправки комментариев
Нужно:
В браузере отображается форма 6 на 9 ячеек. В ячейки пользователем вводятся числа 0-100 и нажимается кнопка отправки. В ардуино крутится 100-шаговый цикл. Значение, принятое из ячейки - это кол-во циклов, в которых сигнал на соответствующей ноге будет, на оставшихся циклах сигнала не будет. Т.е., если передан 0, то сигнал не выдаётся. Если 100 - сигнал есть постоянно. Если 50, то 50 циклов сигнал есть, 50 нет.
В ячейках формы отображаются текущие значения переменных. При запуске программы все значения 30.
Желательно предусмотреть возможность работы с профилями, подцветку ячеек в зависимости от значения и "мастер-ячейку" - значение которой присваивается всем переменным или значение всех ячеек увеличивается на заданное значение..
У Ардуино используется три ноги на выход плюс семь-восемь мультиплексоров (ссылка ниже).
Вот похожие задачи:
http://arduino.ru/forum/programmirovanie/parsing-stroki-adresa-arduino-v-rezhime-veb-servera#comment-28322
http://fdv.co.il/lechenie_v_izraele/viewtopic.php?p=623
Вот мультиплексоры:
http://arduino.ru/Tutorial/registr_74HC595
Нужно:
В браузере отображается форма 6 на 9 ячеек. В ячейки пользователем вводятся числа 0-100 и нажимается кнопка отправки. В ардуино крутится 100-шаговый цикл. Значение, принятое из ячейки - это кол-во циклов, в которых сигнал на соответствующей ноге будет, на оставшихся циклах сигнала не будет. Т.е., если передан 0, то сигнал не выдаётся. Если 100 - сигнал есть постоянно. Если 50, то 50 циклов сигнал есть, 50 нет.
В ячейках формы отображаются текущие значения переменных. При запуске программы все значения 30.
Желательно предусмотреть возможность работы с профилями, подцветку ячеек в зависимости от значения и "мастер-ячейку" - значение которой присваивается всем переменным или значение всех ячеек увеличивается на заданное значение..
У Ардуино используется три ноги на выход плюс семь-восемь мультиплексоров (ссылка ниже).
Вот похожие задачи:
http://arduino.ru/forum/programmirovanie/parsing-stroki-adresa-arduino-v-rezhime-veb-servera#comment-28322
http://fdv.co.il/lechenie_v_izraele/viewtopic.php?p=623
Вот мультиплексоры:
http://arduino.ru/Tutorial/registr_74HC595
могу взяться. пишите на fmv.electronics@gmail.com
Что знал уже написал. Мне нужна стоимость и сроки. Или допвопросы, если есть.
Почта моя rqtan@rambler.ru
Не грамотно написанное тз. Абсолютно. Что-такое "50 циклов есть 50 циклов нет"? Каких циклов? Машинных?
Перечитайте сами себя, исправте и повторите.
И ваще, у меня что-то файервол на ссылку с лечением в израиле ругается... может вас лучше забанить?
Уж как умел, так и написал. Не знаю, чем машинный цикл отличается от какого-либо другого.
С лечением в Израиле тож ничего добавить не могу - вот пример содержимого с этой страницы:
001
#include <SPI.h>
002
#include <Ethernet.h>
003
#include <string.h>
004
//#include <SD.h>
005
006
byte
mac[] = { 0x00, 0x1D, 0xBE, 0xEF, 0xFE, 0x4A };
007
byte
ip[] = { 10, 0, 0, 4 };
008
byte
gateway[] = { 10, 0, 0, 138 };
//gateway
009
byte
subnet[] = { 255, 0, 0, 0 };
//subnet
010
EthernetServer server(80);
//server port
011
012
///////////////////////////////////////////////////////////////////////////////
013
byte
sampledata=50;
//some sample data - outputs 2 (ascii = 50 DEC)
014
015
int
ledPins[]= { 2,3,4,5,6,7,8,9 };
// LED pin
016
String readString = String(30);
//string for fetching data from address
017
boolean LEDON1 =
false
;
//LED status flag
018
boolean LEDON2 =
false
;
019
boolean LEDON3 =
false
;
020
boolean LEDON4 =
false
;
021
022
023
void
setup
()
024
{
025
Serial
.begin(9600);
026
Ethernet.begin(mac, ip, gateway, subnet);
027
//Set pin to output
028
for
(
int
i = 2; i < 9; i++)
029
{
030
pinMode(ledPins[i],OUTPUT);
031
}
032
}
033
034
void
loop
(){
035
// Create a client connection
036
EthernetClient client = server.available();
037
if
(client) {
038
while
(client.connected()) {
039
if
(client.available()) {
040
char
c = client.read();
041
//read char by char HTTP request
042
if
(readString.length() < 100)
043
{
044
//store characters to string
045
readString += c;
//replaces readString.append(c);
046
}
047
//output chars to serial port
048
Serial
.print(c);
049
//if HTTP request has ended
050
if
(c ==
'\n'
) {
051
//dirty skip of "GET /favicon.ico HTTP/1.1"
052
if
(readString.indexOf(
"?"
) <0)
053
{
054
//skip everything
055
}
056
else
057
//lets check if LED should be lighted
058
if
(readString.indexOf(
"LED1=1"
) >0)
//replaces if(readString.contains("L=1"))
059
{
060
//led has to be turned ON
061
digitalWrite(ledPins[2], HIGH);
// set the LED on
062
LEDON1 =
true
;
063
}
064
065
if
(readString.indexOf(
"LED1=0"
) >0){
066
//led has to be turned OFF
067
digitalWrite(ledPins[2], LOW);
// set the LED OFF
068
LEDON1 =
false
;
069
}
070
071
if
(readString.indexOf(
"LED2=1"
) >0)
//replaces if(readString.contains("L=1"))
072
{
073
//led has to be turned ON
074
digitalWrite(ledPins[5], HIGH);
// set the LED on
075
LEDON2 =
true
;
076
}
077
/*
078
if(readString.indexOf("LED2=0") >0){
079
//led has to be turned OFF
080
digitalWrite(ledPins[5], LOW); // set the LED OFF
081
LEDON2 = false;
082
}
083
if(readString.indexOf("LED3=1") >0)//replaces if(readString.contains("L=1"))
084
{
085
//led has to be turned ON
086
digitalWrite(ledPins[6], HIGH); // set the LED on
087
LEDON3 = true;
088
}
089
090
if(readString.indexOf("LED3=0") >0){
091
//led has to be turned OFF
092
digitalWrite(ledPins[6], LOW); // set the LED OFF
093
LEDON3 = false;
094
}
095
if(readString.indexOf("LED4=1") >0)//replaces if(readString.contains("L=1"))
096
{
097
//led has to be turned ON
098
digitalWrite(ledPins[7], HIGH); // set the LED on
099
LEDON4 = true;
100
}
101
102
if(readString.indexOf("LED4=0") >0){
103
//led has to be turned OFF
104
digitalWrite(ledPins[7], LOW); // set the LED OFF
105
LEDON4 = false;
106
}
107
*/
108
else
{}
109
// Формируем HTML
110
client.println(
"HTTP/1.1 200 OK"
);
111
client.println(
"Content-Type: text/html"
);
112
client.println();
113
client.println(
"<head> "
);
114
client.println(
"<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> "
);
115
client.println(
"<title>:: Transformer.inc :: Умный дом ::</title>"
);
116
client.println(
"<link rel='stylesheet' type='text/css' href='<a href="
http:
//www.fdv.co.il/arduino/css/style.css" rel="nofollow">http://www.fdv.co.il/arduino/css/style.css</a>'> ");
117
client.println(
"</head> "
);
118
client.println(
"<body"
);
119
//controlling led via radio elements
120
client.println(
"<img src='<a href="
http:
//www.fdv.co.il/shipuzim/image/transformer2.gif" rel="nofollow">http://www.fdv.co.il/shipuzim/image/transformer2.gif</a>'>");
121
client.println(
"<h3>Управление четырьмя нагрузками</h3>"
);
122
client.println(
"<form method=get name=LED>"
);
123
if
(LEDON1)
124
{
125
client.println(
"<input type=radio name=LED1 value=1 CHECKED>Включить</input><br /> <input type=radio name=LED1 value=0>Выключить</input><br /><input type=submit src='<a href="
http:
//www.fdv.co.il/shipuzim/on.gif" rel="nofollow">http://www.fdv.co.il/shipuzim/on.gif</a>' value=Применить></input>");
126
client.println(
"<font size=’5′>Статус: "
);
127
client.println(
"<img src='<a href="
http:
//www.fdv.co.il/shipuzim/image/on.png" rel="nofollow">http://www.fdv.co.il/shipuzim/image/on.png</a>'><br />");
128
}
129
else
{
130
client.println(
"<input type=radio name=LED1 value=1>Включить</input><br /><input type=radio name=LED1 value=0 CHECKED>Выключить</input><br /><input type=submit value=Применить></input>"
);
131
client.println(
"<font size=’5′>Статус: "
);
132
client.println(
"<img src='<a href="
http:
//www.fdv.co.il/shipuzim/image/off.png" rel="nofollow">http://www.fdv.co.il/shipuzim/image/off.png</a>'><br />");
133
}
134
135
136
137
client.println(
"</form></body></html>"
);
138
//clearing string for next read
139
readString=
""
;
140
//останавливаем web-client
141
client.stop();
142
}
143
}
144
}
145
}
146
}
Побаньте, если душа потешится. Да и клиентов поприбавится - порядок все любят)
я отписался на имейл
Принял. Ответил.
Можно ещё пару примеров ваших работ на почту или сюда?
на почту скину
Вот это проверьте, некорректный код:
01
int
ledPins[]= { 2,3,4,5,6,7,8,9 };
// LED pin
02
...
03
void
setup
()
04
{
05
//Set pin to output
06
for
(
int
i = 2; i < 9; i++)
07
~~~~~~~~~~~~~~~~~~~~~~~~~~
08
{
09
pinMode(ledPins[i],OUTPUT);
10
}
11
}
Длина массива.