Не подключается модуль ENC28J60 к arduino nano
- Войдите на сайт для отправки комментариев
Пт, 26/02/2016 - 16:41
Всем привет!
Помогите не работает модуль ENC28J60 и arduno nano
Всем привет!
Помогите не работает модуль ENC28J60 и arduno nano
Помогаю.
Заработало?
нет ((( , суть в том что имеется ардуино нано + модуль ENC28J60 на 12 pin, подключил как тут рекомендуют http://forum.arduino.cc/index.php?topic=270961.0 и скачал библиотеку, плюс отдельное питание для модуля и ардуины, все соединил, подключил етхернет кабель и никакой реакции нет, не получает сетевые настройки и все, хотя все "лампочки" горят и на ардуино и на модуле, и в самом етхернет разьеме зеленый горит, а желтый светодиод иногда мигает...
нет ((( , суть в том что имеется ардуино нано + модуль ENC28J60 на 12 pin, подключил как тут рекомендуют http://forum.arduino.cc/index.php?topic=270961.0 и скачал библиотеку, плюс отдельное питание для модуля и ардуины, все соединил, подключил етхернет кабель и никакой реакции нет, не получает сетевые настройки и все, хотя все "лампочки" горят и на ардуино и на модуле, и в самом етхернет разьеме зеленый горит, а желтый светодиод иногда мигает...
Как подключил - ХЗ!
Какую библиотеку скачал (и куда её засунул) - ХЗ!
Как включил отдельное питание - ХЗ!
Что именно "всё" соединил и как (Vcc c GND cоединил? Или нет? Что значит "всё"?) - ХЗ!
Какой там скетч - ХЗ!
Нужна помощь, пожалуйста потрудитесь выложить схему включения, скетч и последовательность действий. А не нужна - так говорите, что у Вас не работает, нчего не показывая.
Что такое "на 12 пин"? Подключение сетевых модулей таково:
SCK/SCL -> D13
SO/MISO -> D12
SI/MOSI -> D11
CSEL/CS -> D10
Для начала подключите так, и библиотеки будем пробовать отсюда. Собирайте пример WebRemote и пишите, что получилось. Учтите, в примере ошибка, в #include написано имя etherShield.h с маленькой буквы, правильно - с большой #include "EtherShield.h"
И "сетевые настройки" пусть пока отдыхают IP должен быть статическим, ну и настройка Windows/роутера соответствующая.
попробую конечно, скетч и прочее, новичок я совсем зеленый вот и не пишу ничего (((
привет!
12 пин это такой модуль http://www.aliexpress.com/item/ENC28J60-LAN-Ethernet-Network-Board-Module-for-arduino-25MHZ-Crystal-AVR-51-LPC-STM32-3-3V/1989494548.html 12 ножек, там везде в инете 10 ножек на таком модуле у меня 12.
подключил так к арудино нано
библиотека эта подошла: https://github.com/jcw/ethercard
попробовал пример backsoon из библиотки, подставив свои значения мак адреса и статистического адреса, вроде "работает" пингуется и на страничку заходит
попробую конечно, скетч и прочее, новичок я совсем зеленый вот и не пишу ничего (((
Ничего, сейчас покраснеете.
С какой целью Вы подаёте 5В на Vin? Открываем описание Вашей платы и читаем
ну, и за что Вы ей свои пять пихаете? На голодном пайке решили подержать? Надеетесь, что сбросит вес и станет потоньше? :)
Если уж у Вас пять вольт, так и подавайте их на ногу 5В, Vin то чем провинился?
над модулем. который сверху, Вы вообще решили поиздеваться. На VCC Вы ему зачем-то "-" подали, а на GND - плюс. Жив ещё? Или в помойке уже?
Остальное не смотрел. Всё равно скетч нужен.
А вот оно как надо буду тогда на 5 вольт подавать, а не vin ардуины...
Нет, на модуле все норм, только картинка неправильная там все норм минус на ground, плюс на 5v модуля етхернет
код есть найден на просторха интернета, но у меня там нету некоторых компонентов датчика температуры DHT11/22, а есть только Arduino NANO v.3.0 + Enc28j60 +BMP180
Первоночальная идея брать температуру и давление с дачика bmp180 и отправлять на сервис www.narodmon.ru, я попробовал заливать этот код но он не заливается, ошибки лезут, тем более я как понял библиотека етхернета не подходит, надо искать под свои модуль етхернет, впринципе я нашел эту https://github.com/jcw/ethercard как и писал std, но там там только пример стандартный работает для статитсического адреса из библиотеки, а для динамического или отправки данных ничего не работает, вернее я не знаю чего там в этом коде исправлять под свои нужды
#include <Wire.h> #include <BMP085.h> #include <OneWire.h> #include <DallasTemperature.h> #include <EtherCard.h> #include <dht11.h> #define DHT11PIN 6 #define ONE_WIRE_BUS 2 // Data wire is plugged into digital pin 3 on the Arduino #define NumberOfDevices 8 // Set maximum number of devices in order to dimension #define led 13 #define REQUEST_RATE 300000 // milliseconds BMP085 dps = BMP085(); // Digital Pressure Sensor long Temperature = 0, Pressure = 0, Altitude = 0, dav = 0; static byte mac[] = { 0xD4, 0xCA, 0x6D, 0x53, 0x9D, 0x00 }; //В этой строке задайте свой MAC адрес char mak[]="D4CA6D539D00"; static byte hisip[] = { 94,19,113,221 };//Здесь надо указать IP адрес сайта narodmon.ru dht11 sensor; OneWire oneWire(ONE_WIRE_BUS); // Setup a oneWire instance to communicate with any OneWire devices DallasTemperature sensors(&oneWire); // Pass our oneWire reference to Dallas Temperature. byte allAddress [NumberOfDevices][8]; // Device Addresses are 8-element byte arrays. // we need one for each of our DS18B20 sensors. byte totalDevices; // Declare variable to store number of One Wire devices // that are actually discovered. byte discoverOneWireDevices() { byte j=0; // search for one wire devices and // copy to device address arrays. while ((j < NumberOfDevices) && (oneWire.search(allAddress[j]))) { j++; } return j ; // return total number of devices found. } String macstring; String DSstring[NumberOfDevices]; byte Ethernet::buffer[700]; static long timer; Stash stash; unsigned long time1=0; void setup() { Serial.begin(57600); Wire.begin(); delay(1000); dps.init(); // note: use zeroCal only after initialization. // dps.zeroCal(101800, 0); // set zero point if (ether.begin(sizeof Ethernet::buffer, mac, SS) == 0) Serial.println( "Failed to access Ethernet controller"); if (!ether.dhcpSetup()) Serial.println("DHCP failed"); //overwrite DNS with google's if there are problems with DNS setup static byte dnsip[] = {8,8,8,8}; ether.copyIp(ether.dnsip, dnsip); ether.printIp("My IP: ", ether.myip); ether.printIp("GW IP: ", ether.gwip); ether.printIp("DNS IP: ", ether.dnsip); ether.copyIp(ether.hisip, hisip); ether.printIp("Server: ", ether.hisip); while (ether.clientWaitingGw()) ether.packetLoop(ether.packetReceive()); Serial.println("Gateway found"); macstring=""; for(int k=0;k<sizeof(mac)/sizeof(byte);k++) { char msg[3]; sprintf(msg,"%02X",mac[k]); //if (macstring!="#") macstring+="-"; macstring+=msg; } pinMode(led, OUTPUT); sensors.begin(); totalDevices = discoverOneWireDevices(); for (byte i=0; i < totalDevices; i++) { DSstring[i]=""; for(int k=7;k>=0;k--) { char msg[3]; sprintf(msg,"%02X",allAddress[i][k]); DSstring[i]+=msg; }; sensors.setResolution(allAddress[i], 10); // and set the a to d conversion resolution of each. } timer = - REQUEST_RATE; // start timing out right away } void loop() { if (((millis() - time1)/1000.0) >= 1.0) { dps.calcTrueTemperature(); time1 = millis(); } dps.getPressure(&Pressure); dps.getAltitude(&Altitude); dav=Pressure/133.3224; ether.packetLoop(ether.packetReceive()); if (millis() > timer + REQUEST_RATE) { timer = millis(); byte sd = stash.create(); stash.print("ID="); stash.print(mak); Serial.println("\n\n\nPosting...\n"); Serial.println(mak); digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level) delay(100); // wait for a second digitalWrite(led, LOW); sensors.requestTemperatures(); // Initiate temperature request to all devices String result; char msg[50]; result=macstring+"\n"; String temp; for (byte i=0; i < totalDevices; i++) { float tempC = sensors.getTempC(allAddress[i]); // read the device at addr. if (tempC != -127.00) { //dtostrf(tempC,10,2,msg); // stash.print("&"); // stash.print(DSstring[i]); // stash.print("="); // stash.print(tempC); } } int chk = sensor.read(DHT11PIN); if (chk==DHTLIB_OK) { stash.print("&"); stash.print(mak); stash.print("01"); stash.print("="); stash.print(sensor.temperature); stash.print("&"); stash.print(mak); stash.print("02"); stash.print("="); stash.print(sensor.humidity); stash.print("&"); stash.print(mak); stash.print("03"); stash.print("="); stash.print(dav); Serial.println(Pressure); Serial.println(dav); } else switch (chk) { case DHTLIB_ERROR_CHECKSUM: Serial.println("Checksum error"); break; case DHTLIB_ERROR_TIMEOUT: Serial.println("Time out error"); break; default: Serial.println("Unknown error"); break; } stash.save(); // generate the header with payload - note that the stash size is used, // and that a "stash descriptor" is passed in as argument using "$H" Stash::prepare(PSTR("POST http://narodmon.ru/post.php HTTP/1.0" "\r\n" "Host: narodmon.ru" "\r\n" "Content-Length: $D" "\r\n" "\r\n" "$H"), stash.size(), sd); // send the packet - this also releases all stash buffers once done ether.tcpSend(); Serial.println("Done"); } }Добрый день. Делаю мониторинг через ардунку и ENC28J60. Внутри локальной сети всё работает, а извне не чего не работает. Если кто-то знает помогите пожалуйста.
А что за безобразие у Вас написано в строке №123??? Исправляйте.