ENC28J60 +Фиксированный IP
- Войдите на сайт для отправки комментариев
Сб, 11/05/2019 - 13:43
Как в данном примере установить фиксированный адрес? Ардуина постоянно лезет в сеть и подымает адрес с DHSP
<code class="hljs sketch"><span class="hljs-comment"> For this example you need UIPEthernet library:
<a data-cke-saved-href="https://github.com/UIPEthernet/UIPEthernet" href="https://github.com/UIPEthernet/UIPEthernet" target="_blank">https://github.com/UIPEthernet/UIPEthernet</a>
Typical wiring would be (this is for Arduino UNO,
search for correct wiring for your board):
VCC -- 5V
GND -- GND
CS -- D10
SI -- D11
SCK -- D13
SO -- D12
INT -- D2
Blynk using a LED widget on your phone!
App project setup:
LED widget on V3
*************************************************************/</span>
<span class="hljs-comment">/* Comment this out to disable prints and save space */</span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">define</span> BLYNK_PRINT Serial</span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><UIPEthernet.h></span></span>
<span class="hljs-meta">#<span class="hljs-meta-keyword">include</span> <span class="hljs-meta-string"><BlynkSimpleUIPEthernet.h></span></span>
<span class="hljs-comment">// You should get Auth Token in the Blynk App.</span>
<span class="hljs-comment">// Go to the Project Settings (nut icon).</span>
<span class="hljs-keyword">char</span> auth[] = <span class="hljs-string">"YourAuthToken"</span>;
<span class="hljs-comment">// Select your pin with physical button</span>
<span class="hljs-keyword">const</span> <span class="hljs-keyword">int</span> btnPin = <span class="hljs-number">1</span>;
<span class="hljs-built_in">WidgetLED</span> led3(<span class="hljs-literal">V3</span>);
<span class="hljs-built_in">BlynkTimer</span> timer;
<span class="hljs-comment">// V3 LED Widget represents the physical button state</span>
<span class="hljs-keyword">boolean</span> btnState = false;
<span class="hljs-keyword">void</span> buttonLedWidget()
{
<span class="hljs-comment">// Read button</span>
<span class="hljs-keyword">boolean</span> <span class="hljs-built_in">isPressed</span> = (<span class="hljs-built_in">digitalRead</span>(btnPin) == <span class="hljs-literal">LOW</span>);
<span class="hljs-comment">// If state has changed...</span>
<span class="hljs-built_in">if</span> (<span class="hljs-built_in">isPressed</span> != btnState) {
<span class="hljs-built_in">if</span> (<span class="hljs-built_in">isPressed</span>) {
led3.on();
} <span class="hljs-built_in">else</span> {
led3.off();
}
btnState = <span class="hljs-built_in">isPressed</span>;
}
}
<span class="hljs-keyword">void</span> <span class="hljs-built_in">setup</span>()
{
<span class="hljs-comment">// Debug console</span>
<span class="hljs-built_in">Serial</span>.<span class="hljs-built_in">begin</span>(<span class="hljs-number">9600</span>);
<span class="hljs-built_in">Blynk</span>.<span class="hljs-built_in">begin</span>(auth);
<span class="hljs-comment">// You can also specify server:</span>
<span class="hljs-comment">//Blynk.begin(auth, "blynk-cloud.com", 80);</span>
<span class="hljs-comment">//Blynk.begin(auth, IPAddress(192,168,1,100), 8080);</span>
<span class="hljs-comment">// Setup physical button pin (active low)</span>
<span class="hljs-built_in">pinMode</span>(btnPin, <span class="hljs-literal">INPUT_PULLUP</span>);
timer.setInterval(<span class="hljs-number">500</span>L, buttonLedWidget);
}
<span class="hljs-keyword">void</span> <span class="hljs-built_in">loop</span>()
{
<span class="hljs-built_in">Blynk</span>.<span class="hljs-built_in">run</span>();
timer.<span class="hljs-built_in">run</span>();
}</code>
Как в данном примере установить фиксированный адрес?
Для начала, вставить код по-человечески, чтобы его читать можно было.
Извиняюсь не досмотрел /* Comment this out to disable prints and save space */ #define BLYNK_PRINT Serial #include <UIPEthernet.h> #include <BlynkSimpleUIPEthernet.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "YourAuthToken"; // Select your pin with physical button const int btnPin = 1; WidgetLED led3(V3); BlynkTimer timer; // V3 LED Widget represents the physical button state boolean btnState = false; void buttonLedWidget() { // Read button boolean isPressed = (digitalRead(btnPin) == LOW); // If state has changed... if (isPressed != btnState) { if (isPressed) { led3.on(); } else { led3.off(); } btnState = isPressed; } } void setup() { // Debug console Serial.begin(9600); Blynk.begin(auth); // You can also specify server: //Blynk.begin(auth, "blynk-cloud.com", 80); //Blynk.begin(auth, IPAddress(192,168,1,100), 8080); // Setup physical button pin (active low) pinMode(btnPin, INPUT_PULLUP); timer.setInterval(500L, buttonLedWidget); } void loop() { Blynk.run(); timer.run(); }@AleksandrM,
Вы используете Blynk объявленный в BlynkSimpleUIPEthernet.h
Вызываете Blynk.begin(auth) именно для использования DHCP
Adapters/BlynkEthernet.h
// DHCP with domain void begin( const char* auth, const char* domain = BLYNK_DEFAULT_DOMAIN, uint16_t port = BLYNK_SERVER_PORT, const byte mac[] = NULL)Также есть возможность использовать статический адрес.
// Static IP with domain void begin( const char* auth, const char* domain, uint16_t port, IPAddress local, IPAddress dns, const byte mac[] = NULL)Используйте другой метод begin - тот, в котором есть параметр IPAddress local.
Этот? тоже не получаеться....
Blynk.begin(auth,IPAddress(10,121,65,155), 8080);
Можно пример?
Нет, не этот. Вам же в #3 написали какой.
Подскажите где ошибка?
Blynk.begin(auth,IPAddress(10.121.65.249), 8080, IPAddress local (10.121.66.155));
Подскажите где ошибка?
Blynk.begin(auth,IPAddress(10.121.65.249), 8080, IPAddress local (10.121.66.155));
void begin(const char* auth, const char* domain, uint16_t port, IPAddress local, IPAddress dns, const byte mac[] = NULL)
1-й параметр - указатель на строку символов с токеном
2-й - тоже указатель на строку символов, на домен или строка с ip это адресом, совсем не IPAddress
3-й - порт блинк сервера
4-й - экземпляр IPAddress представляющий локальный ip адрес в вашей сети, который хотите использовать для вашего enc28
5-й - экземпляр IPAddress представляющий ip адрес dns сервера.
6-й - мак адрес, если не требуется задавать конкретное значение можете не передавать.
Спасибо за помощь.Разобрался заработало.