I'm new to arduino and I'm trying to use IPv6 with arduino UNO and ethernet shield(W5100).
I have found EtherSia IPv6 (https://github.com/njh/EtherSia) library and run MiniHTTPServer.ino sketches.
The serial monitor always print link-local address. I can't find a way to set global address.
[EtherSia MiniHTTPServer]
Failed to configure Ethernet
Our link-local address is: fe80:0000:0000:0000:9cb3:19ff:fec7:1b10
Our global address is: 0000:0000:0000:0000:0000:0000:0000:0000
Ready.
Any suggestions for IPv6 ethernet shield or IPv6 library for Arduino?
EtherSia library says that it does NOT support DHCPv6.
You may want to check if your local network environment is configured with DHCPv6.
"PHPoC Shield for Arduino" may be what you are looking for. Of course, it supports IPv6 including DHCPv6.You can get the detailed information about this library from the below.
download https://github.com/phpoc/arduino
manual http://www.phpoc.com/support/manual/phpoc_shield_for_arduino_library_reference/
Just check "ChatServerIPv6" sketch for testing IPv6.
EtherSia indeed does not support DHCPv6, but it does support SLAAC - Stateless Auto-configuration, which is widely supported and enabled by routers.
What type of router do you have?
An alternative is to configure the address and router statically:
// Configure a static global address and router addresses
ether.setGlobalAddress("2001:1234::5000");
if (ether.setRouter("fe80::f4c0:4ff:fefb:4186") == false) {
Serial.println("Failed to configure router address");
}
This is from the example here:
https://github.com/njh/EtherSia/blob/master/examples/MinimalStatic/MinimalStatic.ino
Related
I need to know the IP address of ESP32 on the local network(without printing ip on serial monitor ). The idea is to do mDNS or UDP broadcast to send the IP to the android application. The app will then use that IP to do the communication. Is there someone who has already done it?
Maybe a bit late, but nevertheless:
The function called "tcpip_adapter_get_ip_info" can be used to obtain your interface IP address, netmask and gateway. You can pass in TCPIP_ADAPTERE_IF_STA to get the information you desire.
#include <tcpip_adapter.h>
tcpip_adapter_ip_info_t ipInfo;
char str[256];
tcpip_adapter_get_ip_info(TCPIP_ADAPTER_IF_STA, &ipInfo);
sprintf(str, "%x", ipInfo.ip.addr);
Note that it is also given in the event handler:
case SYSTEM_EVENT_STA_GOT_IP:
eprintf(eLOG_EVENTQ,"IP: %s\r\n",
ip4addr_ntoa(&event>event_info.got_ip.ip_info.ip));
If you're looking to identify your ESP32 easily on the local network, you can simply use the mDNS service.
This will make your ESP32 accessible via user friendly hostname.
Example: myesp32.local
I would like to develop my own modem for a custom communication network that will be detectable on the serial port by PC automatically. What I'm uncertain about is the protocol part of the AT commands and how to make it work seamlessly so that computer will detect the modem automatically.
I plan to use ftdi UART to USB converter to interface my microcontroller with the PC using standard serial interface. The PC will then use AT commands to communicate with the microcontroller that will in turn connect to another microcontroller over radio tranceiver and establish a two way serial connection over radio. The idea is that the PC on the other end will run PPPD and listen on it's own modem connection for incoming call and then bridge the connection with it's other internet interface that is connected to internet. The first computer will get it's own IP address using PPPD and will be connected to internet over this custom microcontroller based modem.
But how do I implement the communication protocol between my controller and PC? What commands do I absolutely need to implement? How do I make sure that the computer recognises my controller which is connected over ftdi usb to serial adapter as a functional modem?
Where can I find a speciffication of the minimum command set that is required of a modem?
In practice linux usually discovers a 3G modem automatically for example. Does that have to do with the actual USB identifier of the modem? Is it possible to have linux automatically discover an ordinary serial port modem? I'm thinking that the modem will be sending an AT idle ping repeatedly when it's plugged in so that linux should be able to detect it.
Hi i'm trying to access my wifi shield's ip address on the browser but I keep getting Oops! Google Chrome could not connect to "IP ADDRESS".
Things I've done:
1.)Updated firmware on wifi shield using this link http://ohmyfarads.com/2013/11/11/updating-firmware-on-arduino-wifi-shield-for-dummies/
2.) uploaded the wifi WPA sketch from arduino site. My connection is WPA2
3.) I switched between arduino IDE 1.02 and 1.05 but no luck with either
4.) I'm using an arduino uno board that is attached to wifi shield
Help? Thanks!
This might be caused by incorrect router setup. Things you should look at:
1.You may have to first add device mac address to router list and assign it to the specific IP address you want to have.
2.The second option is that router may give his own address to this device by DHCP.
Remember that you have to choose nonroutable IP address for your shield. IP also has to be in your home address range. The simplest way to check that is:
1.Manu Start
2.Launch and type (or type in search) cmd
3.In console type "ipconfig"
Your local IP is in IPv4 .......... 192.168.x.x (most likely)
(in this case shield should have address like (192.168.x.y).
For more information about IP [look here][1]
You can also use Netscan tool to find out if shield is in your LAN.
I hope it will be helpful.
What would be an example of how to set the Arduino to have a static IP address?
I am looking for a function similar to the statement below from the Ethernet Library.
Ethernet.begin(MACadr, IPaddr);
I using a Wi-Fi shield.
Sorry, this is not possible. The reference for this claim is here.
Basically, all the DHCP stuff (the code that assigns the dynamic IP address) is baked-in to the firmware for the WiFi shield, and this code is not open, so you cannot update it.
"WiFi.config() allows you to configure a static IP address as well as change the DNS, gateway, and subnet addresses on the WiFi shield."
You can read more about this here:
http://arduino.cc/en/Reference/WiFiConfig
What I did in my situation was to set a Reservation on my router for this MAC address. This makes the code simple. For some reason, the MAC address that my WiFi shield was supposed to use isn't what it actually uses. I was able to look at the DHCP table on the router and find the MAC address it was using and create a reservation and we are good to go...
So, this topic is very similar to this Cisco Switch/Router programming using Arduino?.
I have an Arduino ATmega2560 and Ethernet Shield plus a Cisco 1751 router. I want to configure the router via the console or AUX port using Arduino.
Fast search gave the following results: you could connect to the router using RJ45 to Serial or RJ45 to RJ45 connectors; the protocol is very similar to Telnet (actually works like serial port with text-based commands).
So the main question is - am I able to control the router via a console or AUX port using Ethernet Shield (and an Ethernet library) or do I have to use a serial port connection using something like RS-232?
Update: I've noticed one thing - the DB9 port is just an option for easy communicating with a PC so it seems that my idea is not so bad:) See Cabling and Adapter Setups that Work.
As you have pointed out the console and aux ports on Cisco devices are serial ports not network ports so you need to connect to them using RS232, this is an entirely different type of interface from Ethernet.