Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
Модератор: immortal
-
- Сообщения: 198
- Зарегистрирован: Сб янв 16, 2016 12:18 am
- Откуда: Минск
- Благодарил (а): 16 раз
- Поблагодарили: 15 раз
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
ну окей вам не советую однако же решений для ламеров, вроде меня, на первой странице(условно) я не нашел...
-
- Сообщения: 198
- Зарегистрирован: Сб янв 16, 2016 12:18 am
- Откуда: Минск
- Благодарил (а): 16 раз
- Поблагодарили: 15 раз
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
о и кстате помогите неучу, ткните носом, в саму прошивку. Не примите за наглость (просто в нынешнем место положении пользуюсь только телефоном) и в гугле меня не банили)skysilver писал(а):Прошить готовую, функциональную, отлаженную и поддерживаемую прошивку МегаД-328, это вовсе не то же самое, что "выел себе мозг этими библиотеками...", "стоила мне кучи нервов", "этот конкретный чип меня достал". Залил один раз hex-файл прошивки в контроллер, подключил эзернет-шилд и готово! А вот советовать налево и направо ломать и палить платы - это уже перебор.
- Kod.Begemot
- Сообщения: 358
- Зарегистрирован: Чт июн 20, 2013 5:53 pm
- Благодарил (а): 32 раза
- Поблагодарили: 42 раза
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
ab-log.ru, там есть вся информация.
Для удобного использования самодельной меги из ардуино и enc28j60 стоит припаять провод от ENC к ардуино, для тактования от ENC. Все есть на том форуме, см. "варианты самодельных мега-д", в FAQ, кажется так называется.
P.S. Понадобится. ISP программатор, но его можно сделать и из ещё одной ардуино. Или купить у китаек за символическую денежку. Понадобится он один раз, чтобы зашить загрузчик, потом можно обновляться по сети.
Для удобного использования самодельной меги из ардуино и enc28j60 стоит припаять провод от ENC к ардуино, для тактования от ENC. Все есть на том форуме, см. "варианты самодельных мега-д", в FAQ, кажется так называется.
P.S. Понадобится. ISP программатор, но его можно сделать и из ещё одной ардуино. Или купить у китаек за символическую денежку. Понадобится он один раз, чтобы зашить загрузчик, потом можно обновляться по сети.
- За это сообщение автора Kod.Begemot поблагодарил:
- ErmolenkoM (Вт мар 08, 2016 1:20 pm)
- Рейтинг: 1.16%
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
Кто спрашивал по сабжу
http://arduino.ru/forum/apparatnye-vopr ... rduino-uno
http://arduino.ru/forum/apparatnye-vopr ... rduino-uno
С уважением, Петр.
-
- Сообщения: 22
- Зарегистрирован: Вт авг 30, 2016 10:11 pm
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
закачал в uno прошивку для mega-328. web-интерфейс работает, но проблемы с состоянием пинов: пробовал на 4 и 9. 4-й постоянно в состоянии ON, в режиме RAW - шумит. 9-постоянно в состоянии OFF, в режиме RAW не шумит. Ставил резистор 10кОм между пином и +3.3 - не помогает
и еще такой вопрос: в web-интерфейсе - там только 2 аналоговых порта с номерами, которых у меня нет: a6 и a7. а мне нужны a0-a5
и еще такой вопрос: в web-интерфейсе - там только 2 аналоговых порта с номерами, которых у меня нет: a6 и a7. а мне нужны a0-a5
-
- Сообщения: 22
- Зарегистрирован: Вт авг 30, 2016 10:11 pm
- Благодарил (а): 1 раз
- Поблагодарили: 1 раз
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
частично проблема решилась - оказалось в прошивке и в uno разные названия пинов
-
- Сообщения: 23
- Зарегистрирован: Вт фев 23, 2016 11:05 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
Друзья, подскажите, сейчас у меня ардуина подключена по УСБ напрямую к ПК с Мажордомо. на пк стоит Arduino_GW, в ардуину залит такой скетч и все работает:
Как изменить этот скетч, если добавить к ардуино ENC28J60. Чтобы все те же данные отправлялись по сети на мой ПК с Мажордомо?
СпойлерПоказать
int sensorValue = 0;
int sensorPin = A0;
int sensorPin1 = A1;
int suho = 600;
int incomingInt = 0;
int Relay = 4; // реле 4
long previousMillis = 0;
long interval = 20000;
// переменные
int buttonState = 0; // переменная для хранения состояния кнопки
int buttonState10 = 0; // переменная для хранения состояния кнопки
boolean status;
char buf[80];
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
}
// задаем константы
const int buttonPin = 2; // номер входа, подключенный к кнопке
const int buttonPin10 = 10; // номер входа, подключенный к кнопке
void setup()
{
Serial.begin(115200);
// инициализируем пин, подключенный к реле 4, как выход
pinMode(Relay, OUTPUT);
// инициализируем пин, подключенный к кнопке, как вход
pinMode(buttonPin, INPUT);
pinMode(buttonPin10, INPUT);
}
void loop()
{
if (Serial.available() > 0)
{
incomingInt = Serial.parseInt();
if (incomingInt == 500) {
digitalWrite(Relay, LOW);
}
if (incomingInt == 499) {
digitalWrite(Relay, HIGH);
}
}
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
if (status == true) {
digitalWrite(Relay, LOW);
status = false;
delay(200);
sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnON_ard&", 1) ;
sendHTTPRequest();
}
else
{
digitalWrite(Relay, HIGH);
status = true;
delay(200);
sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnOff_ard&", 1) ;
sendHTTPRequest();
}
}
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
// сохраняем время последнего переключения
previousMillis = currentMillis;
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue < 500)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=plants_dry&", 1) ;
if (sensorValue >= 500 && sensorValue < 900)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=plants_norm&", 1) ;
if (sensorValue > 900)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=Plants_wet&", 1) ;
sensorValue1 = analogRead(sensorPin1);
Serial.println(sensorValue1);
if (sensorValue1 = 0)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=plants_dry&", 1) ;
if (sensorValue1 > 199)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=Plants_wet&", 1) ;
sendHTTPRequest();
}
}
int sensorPin = A0;
int sensorPin1 = A1;
int suho = 600;
int incomingInt = 0;
int Relay = 4; // реле 4
long previousMillis = 0;
long interval = 20000;
// переменные
int buttonState = 0; // переменная для хранения состояния кнопки
int buttonState10 = 0; // переменная для хранения состояния кнопки
boolean status;
char buf[80];
// Функция отправки HTTP-запроса на сервер
void sendHTTPRequest() {
Serial.println(buf);
}
// задаем константы
const int buttonPin = 2; // номер входа, подключенный к кнопке
const int buttonPin10 = 10; // номер входа, подключенный к кнопке
void setup()
{
Serial.begin(115200);
// инициализируем пин, подключенный к реле 4, как выход
pinMode(Relay, OUTPUT);
// инициализируем пин, подключенный к кнопке, как вход
pinMode(buttonPin, INPUT);
pinMode(buttonPin10, INPUT);
}
void loop()
{
if (Serial.available() > 0)
{
incomingInt = Serial.parseInt();
if (incomingInt == 500) {
digitalWrite(Relay, LOW);
}
if (incomingInt == 499) {
digitalWrite(Relay, HIGH);
}
}
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
if (status == true) {
digitalWrite(Relay, LOW);
status = false;
delay(200);
sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnON_ard&", 1) ;
sendHTTPRequest();
}
else
{
digitalWrite(Relay, HIGH);
status = true;
delay(200);
sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnOff_ard&", 1) ;
sendHTTPRequest();
}
}
unsigned long currentMillis = millis();
if(currentMillis - previousMillis > interval) {
// сохраняем время последнего переключения
previousMillis = currentMillis;
sensorValue = analogRead(sensorPin);
Serial.println(sensorValue);
if (sensorValue < 500)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=plants_dry&", 1) ;
if (sensorValue >= 500 && sensorValue < 900)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=plants_norm&", 1) ;
if (sensorValue > 900)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=Plants_wet&", 1) ;
sensorValue1 = analogRead(sensorPin1);
Serial.println(sensorValue1);
if (sensorValue1 = 0)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=plants_dry&", 1) ;
if (sensorValue1 > 199)
sprintf(buf, "GET /objects/?object=Plant1&op=m&m=Plants_wet&", 1) ;
sendHTTPRequest();
}
}
-
- Сообщения: 23
- Зарегистрирован: Вт фев 23, 2016 11:05 am
- Благодарил (а): 0
- Поблагодарили: 0
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
Люди, знающие и разбирающиеся, помогите, пожалуйста. Хотя бы с простеньким скетчем для ардуины и enc28j60.
Как можно отправлять хотя бы вот такую строку " sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnON_ard&", 1) ;" на сервер с мажордомой, с ип скажем 192.168.0.2 ?
Напишите рабочий скетч, пожалуйста. А дальше уже буду разбираться как его доделывать...а то прям вообще не могу разобраться с этим:(
Как можно отправлять хотя бы вот такую строку " sprintf(buf, "GET /objects/?object=Switch1&op=m&m=turnON_ard&", 1) ;" на сервер с мажордомой, с ип скажем 192.168.0.2 ?
Напишите рабочий скетч, пожалуйста. А дальше уже буду разбираться как его доделывать...а то прям вообще не могу разобраться с этим:(
-
- Сообщения: 2575
- Зарегистрирован: Пт ноя 06, 2015 10:22 am
- Откуда: Кишинёв
- Благодарил (а): 303 раза
- Поблагодарили: 282 раза
Re: Скетч Arduino + enc28j60 обсуждаем, пишем, тестируем
Конкретно с ENC не уверен, будет работать или нет, но посмотрите ветку Power monitor.С W5100 работает нормально.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS