I've used both NoIP and DynDNS before - they are really easy to setup, particularly if your router has the functionality to use those services (a lot of DSL routers do).
Have a look through your router's configuration pages and see if you can find any dynamic DNS settings - if present it will likely have a list of providers that it supports, which makes choosing one somewhat easier.
It basically boils down to:
a. Setup your account with the dynamic DNS provider
b. Enter the required details into the dynamic DNS config on the router (some combination or username / password / DNS name)
c. Have a cuppa whilst the DNS entry propagates
That's it. After that you will be able to remotely access your router by using the dynamic DNS name.
As for accessing devices attached to the router you will need to do some port forwarding on the router. This basically opens a port on the internet facing side of the router and passes any traffic that comes in on that port directly to whichever device you specify. This is usually defined by the IP address of the device on your network, which if you are using DHCP from the router to hand out IP addresses may change from time to time - so would be wise to see if you can define the IP allocated to a particular device a permanent DHCP entry (most routers provide this but call it all manner of different things).