Posts | Comments

Planet Arduino

Archive for the ‘website’ Category

tutorials_blogpost

We never rest, even during summer, to serve our community and we announce today that we’ve refreshed over 150 example pages and redesigned the Examples area, offering an updated support to the current Arduino Software (IDE) Built-in and Libraries examples

Our website is a living entity that everyday hosts a huge number of visitors. They are looking for software, information, guidelines, ideas and also the right tutorial to start tinkering with their new board on a specific issue or project.

The Reference is the place where everything is documented and explained, with dry and essential information that is also included locally with every Arduino Software (IDE) installation.

Our software also includes a number of built-in sketches that help our users to quickly understand how the various functions and libraries may be used and applied to specific projects and tasks. We all started with the famous Blink and at the end of this tutorial we all felt the power and the excitement of having tamed our board with the upload of our first sketch. Keeping all these examples in good shape and updated is essential to keep you users safe from troubles or difficulties.

These examples evolve, as the libraries also evolve, therefore the sketches may be updated, amended or added. Each of these examples is commented and has an introductory part that gives a description of the purpose of the sketch and – if necessary – the instructions to put together the circuit. We know that the information provided inside the IDE and the sketches is not enough and therefore we made an area of our website where each sketch is explained and documented.

Year after year, board after board and library after library, many “hands” contributed to this area, filling gaps and amending things to reflect the Arduino Software (IDE) status. It has been an ongoing process that inevitably brought the Tutorials area in a state where many styles and ways of explaining things merged. We have big plans for our www.arduino.cc website and it is important to clean and fix the existing areas before we add new contents. This is why my first task – as editorial manager – has been the refresh and overall alignment of our Examples and Examples from Libraries pages.

We have roughly 150 pages documenting our Examples for the current products and libraries and going through them all wasn’t exactly a piece of cake: many things were checked for each example and sometimes things were outdated or missing. We also have our sister brand Genuino that got its space in all the relevant example pages. Now contents, style, look and feel and links in this area are ready for new and fresh developments.

I would like to end this post adding that this task was also a very good opportunity to refresh my knowledge about the powerful capabilities of Arduino programming language and its libraries. I had a few doubts on how to do a few things in my own sketches and going through all the examples gave me the hints I was missing.

The plain list of examples available in the Arduino Software (IDE) is just made of the sketch names, conversely in our pages you find a brief description of each of them. I suggest that you wander through these descriptions: let them excite your curiosity and inspire you!

Jul
09

Discover the new Arduino product page!

Announcements, arduino, Featured, New Product, website Comments Off on Discover the new Arduino product page! 

productspage_post

Today we are updating our website with a new Product Page. It’s been revisited to present you Arduino products within a context of possible applications for your creative projects. If you are beginning to tinker with electronics there’s a series of Entry Level products to make it easier for you to start having fun.

table_post

You’ll also find out we retired some products. That means we are not going to produce new official content about them and we are not going to manufacture them anymore in the near future with the same characteristics. But don’t worry, all the documentation we have shared and the forum sections are going to be kept online so you can access them whenever needed.

Why are we retiring some products? Our goal has always been making electronics accessible for anyone, and encourage everybody’s creativity by launching thoroughly tested, supported, and documented products. That’s the reason why we decided to focus our efforts on the most successful boards so that you could have the best experience when using each one of them.

As you may have noticed, we’ve been going through a reorganization of the way we manufacture products at Arduino. We’ve been partnering with market-leading, innovative manufacturers/distributors around the world, like Adafruit and SeeedStudio. The objective is providing locally produced boards to different markets and our partners are not only taking care of manufacturing and distributing the boards, but they also share with us a commitment with the open-source community.

The Arduino project became widespread especially because we invested a lot of energy in nurturing the community, and providing documentation to allow newbies and people with no technical background to tap into the world of interaction design, electronics and coding.

That’s all with for now! Check the new page, choose the right board for your project!

Mar
02

Getting Arduino data to a web Page

arduino, data, webserver, website Comments Off on Getting Arduino data to a web Page 

FTP8K4NI5WCS0QT.MEDIUM

by dkschottt @ instructables.com:

Being new to Arduino I was a bit overwhelmed by the different ways to do things. So this is what I came up with!

I am using an Arduino UNO R3 clone but the connections I believe are the same for most Arduino’s or can be easily modified for your particular model. This project is the beginning of a UROV that I am building from the ground up and this is my first attempt to work with Arduino. I do not want to turn my UNO into a webserver if I can avoid it because of the shortage of memory and this project is just a few of the sensors that I want to use for my project. I am going to start out by using the premise that my project will eventually use RS485 to communicate serially from my UNO to the PC via a tether.

Getting Arduino data to a web Page - [Link]

Dec
24

Here’s something that will probably make it to a wall right next to the people responsible for the Hackaday servers sometime soon, and should be something every web dev should build at some point: a website response meter, an analog gauge that will tell you how long it takes to reach your website.

The build is simple enough, with a micro servo working as a gigantic analog gauge. There are also a pair of four-digit, seven-segment displays for displaying a digital number and the number of website requests per second. There’s also an 8×8 matrix of bi-color LEDs for showing a green happy face or a red frowny face, just in case all that data wasn’t self-evident to the uninitiated.

All the electronics are handled by an Arduino, but what really makes this build useful, or even possible, is the bit of code that runs on a computer. The computer uses an API from New Relic, a software analytics company, to come up with the response time and requests per second. That data is pulled down and piped up to the Arduino that displays everything on a beautifully milled acrylic sheet.


Filed under: Arduino Hacks

Learn how to connect your Arduino to the outside world via Ethernet

This is chapter sixteen of our huge Arduino tutorial seriesUpdated 06/12/2013

In this chapter we will introduce and examine the use of Ethernet networking with Arduino over local networks and the greater Internet. It will be assumed that you have a basic understanding of computer networking, such as the knowledge of how to connect computers to a hub/router with RJ45 cables, what an IP and MAC address is, and so on. Furthermore, here is a good quick rundown about Ethernet.

Getting Started

You will need an Arduino Uno or compatible board with an Ethernet shield that uses the W5100 Ethernet controller IC (pretty much all of them):

Arduino Ethernet shield

…or consider using a Freetronics EtherTen – as it has everything all on the one board, plus some extras:

Freetronics EtherTen

Furthermore you will need to power the board via the external DC socket – the W5100 IC uses more current than the USB power can supply. A 9V 1A plug pack/wall wart will suffice. Finally it does get hot – so be careful not to touch the W5100 after extended use. In case you’re not sure – this is the W5100 IC:

Wiznet W5100

Once you have your Ethernet-enabled Arduino, and have the external power connected – it’s a good idea to check it all works. Open the Arduino IDE and selectFile > Examples > Ethernet > Webserver. This loads a simple sketch which will display data gathered from the analogue inputs on a web browser. However don’t upload it yet, it needs a slight modification.

You need to specify the IP address of the Ethernet shield – which is done inside the sketch. This is simple, go to the line:

IPAddress ip(192,168,1, 177);

And alter it to match your own setup. For example, in my home the router’s IP address is 10.1.1.1, the printer is 10.1.1.50 and all PCs are below …50. So I will set my shield IP to 10.1.1.77 by altering the line to:

IPAddress ip(10,1,1,77);

You also have the opportunity to change your MAC address. Each piece of networking equipment has a unique serial number to identify itself over a network, and this is normall hard-programmed into the equipments’ firmware. However with Arduino we can define the MAC address ourselves.

If you are running more than one Ethernet shield on your network, ensure they have different MAC addresses by altering the hexadecimal values in the line:

byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };

However if you only have one shield just leave it be. There may be the very, very, statistically rare chance of having a MAC address the same as your existing hardware, so that would be another time to change it.

Once you have made your alterations, save and upload the sketch. Now open a web browser and navigate to the IP address you entered in the sketch, and you should be presented with something similar to the following:

 Arduino webserver example sketch

What’s happening? The Arduino has been programmed to offer a simple web page with the values measured by the analogue inputs. You can refresh the browser to get updated values.

At this point – please note that the Ethernet shields use digital pins 10~13, so you can’t use those for anything else. Some Arduino Ethernet shields may also have a microSD card socket, which also uses another digital pin – so check with the documentation to find out which one.

Nevertheless, now that we can see the Ethernet shield is working we can move on to something more useful. Let’s dissect the previous example in a simple way, and see how we can distribute and display more interesting data over the network. For reference, all of the Ethernet-related functions are handled by the Ethernet Arduino library. If you examine the previous sketch we just used, the section that will be of interest is:

 for (int analogChannel = 0; analogChannel < 6; analogChannel++) 
          {
            int sensorReading = analogRead(analogChannel);
            client.print("analog input ");
            client.print(analogChannel);
            client.print(" is ");
            client.print(sensorReading);
            client.println("<br />");       
          }
          client.println("</html>");

Hopefully this section of the sketch should be familiar – remember how we have used serial.print(); in the past when sending data to the serial monitor box? Well now we can do the same thing, but sending data from our Ethernet shield back to a web browser – on other words, a very basic type of web page.

However there is something you may or may not want to  learn in order to format the output in a readable format – HTML code. I am not a website developer (!) so will not delve into HTML too much.

However if you wish to serve up nicely formatted web pages with your Arduino and so on, here would be a good start. In the interests of simplicity, the following two functions will be the most useful:

client.print(" is ");

Client.print (); allows us to send text or data back to the web page. It works in the same way as serial.print(), so nothing new there. You can also specify the data type in the same way as with serial.print(). Naturally you can also use it to send data back as well. The other useful line is:

client.println("<br />");

which sends the HTML code back to the web browser telling it to start a new line. The part that actually causes the carriage return/new line is the <br /> which is an HTML code (or “tag”) for a new line. So if you are creating more elaborate web page displays, you can just insert other HTML tags in the client.print(); statement. If you want to learn more about HTML commands, here’s a good tutorial site. Finally – note that the sketch will only send the data when it has been requested, that is when it has received a request from the web browser.

Accessing your Arduino over the Internet

So far – so good. But what if you want to access your Arduino from outside the local network?

You will need a static IP address – that is, the IP address your internet service provider assigns to your connection needs to stay the same. If you don’t have a static IP, as long as you leave your modem/router permanently swiched on your IP shouldn’t change. However that isn’t an optimal solution.

If your ISP cannot offer you a static IP at all, you can still move forward with the project by using an organisation that offers a Dynamic DNS. These organisations offer you your own static IP host name (e.g. mojo.monkeynuts.com) instead of a number, keep track of your changing IP address and linking it to the new host name. From what I can gather, your modem needs to support (have an in-built client for…) these DDNS services. As an example, two companies are No-IP andDynDNS.com. Please note that I haven’t used those two, they are just offered as examples.

Now, to find your IP address… usually this can be found by logging into your router’s administration page – it is usually 192.168.0.1 but could be different. Check with your supplier or ISP if they supplied the hardware. For this example, if I enter 10.1.1.1 in a web browser, and after entering my modem administration password, the following screen is presented:

WAN IP address router

What you are looking for is your WAN IP address, as you can see in the image above. To keep the pranksters away, I have blacked out some of my address.

The next thing to do is turn on port-forwarding. This tells the router where to redirect incoming requests from the outside world. When the modem receives such a request, we want to send that request to the port number of our Ethernet shield. Using the:

EthernetServer server(125);

function in our sketch has set the port number to 125. Each modem’s configuration screen will look different, but as an example here is one:

Arduino router port forwarding

So you can see from the line number one in the image above, the inbound port numbers have been set to 125, and the IP address of the Ethernet shield has been set to 10.1.1.77 – the same as in the sketch.

After saving the settings, we’re all set. The external address of my Ethernet shield will be the WAN:125, so to access the Arduino I will type my WAN address with :125 at the end into the browser of the remote web device, which will contact the lonely Ethernet hardware back home.

Furthermore, you may need to alter your modem’s firewall settings, to allow the port 125 to be “open” to incoming requests. Please check your modem documentation for more information on how to do this.

Now from basically any Internet connected device in the free world, I can enter my WAN and port number into the URL field and receive the results. For example, from a phone when it is connected to the Internet via LTE mobile data:

Arduino webserver example cellular

So at this stage you can now display data on a simple web page created by your Arduino and access it from anywhere with unrestricted Internet access. With your previous Arduino knowledge (well, this is chapter sixteen) you can now use data from sensors or other parts of a sketch and display it for retrieval.

Displaying sensor data on a web page

As an example of displaying sensor data on a web page, let’s use an inexpensive and popular temperature and humidity sensor – the DHT22. You will need to install the DHT22 Arduino library which can be found on this page. If this is your first time with the DHT22, experiment with the example sketch that’s included with the library so you understand how it works.

Connect the DHT22 with the data pin to Arduino D2, Vin to the 5V pin and GND to … GND:

arduino ethernet freetronics etherten dht22 humid

Now for our sketch – to display the temperature and humidity on a web page. If you’re not up on HTML you can use online services such as this to generate the code, which you can then modify to use in the sketch.

In the example below, the temperature and humidity data from the DHT22 is served in a simple web page:

#include <SPI.h>
#include <Ethernet.h>

// for DHT22 sensor
#include "DHT.h"
#define DHTPIN 2
#define DHTTYPE DHT22

// Enter a MAC address and IP address for your controller below.
// The IP address will be dependent on your local network:
byte mac[] = {   0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
IPAddress ip(10,1,1,77);

// Initialize the Ethernet server library
// with the IP address and port you want to use 
// (port 80 is default for HTTP):
EthernetServer server(125);
DHT dht(DHTPIN, DHTTYPE);

void setup() 
{
  dht.begin();
 // Open serial communications and wait for port to open:
  Serial.begin(9600);
   while (!Serial) {
    ; // wait for serial port to connect. Needed for Leonardo only
  }
  // start the Ethernet connection and the server:
  Ethernet.begin(mac, ip);
  server.begin();
  Serial.print("server is at ");
  Serial.println(Ethernet.localIP());
}

void loop() 
{
  // listen for incoming clients
  EthernetClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);
        // if you've gotten to the end of the line (received a newline
        // character) and the line is blank, the http request has ended,
        // so you can send a reply
        if (c == 'n' && currentLineIsBlank) 
        {
          // send a standard http response header
          client.println("HTTP/1.1 200 OK");
          client.println("Content-Type: text/html");
          client.println("Connection: close");  // the connection will be closed after completion of the response
	  client.println("Refresh: 30");  // refresh the page automatically every 30 sec
          client.println();
          client.println("<!DOCTYPE HTML>");
          client.println("<html>");

          // get data from DHT22 sensor
          float h = dht.readHumidity();
          float t = dht.readTemperature();
          Serial.println(t);
          Serial.println(h);

          // from here we can enter our own HTML code to create the web page
          client.print("<head><title>Office Weather</title></head><body><h1>Office Temperature</h1><p>Temperature - ");
          client.print(t);
          client.print(" degrees Celsius</p>");
          client.print("<p>Humidity - ");
          client.print(h);
          client.print(" percent</p>");
          client.print("<p><em>Page refreshes every 30 seconds.</em></p></body></html>");
          break;
        }
        if (c == 'n') {
          // you're starting a new line
          currentLineIsBlank = true;
        } 
        else if (c != 'r') {
          // you've gotten a character on the current line
          currentLineIsBlank = false;
        }
      }
    }
    // give the web browser time to receive the data
    delay(1);
    // close the connection:
    client.stop();
    Serial.println("client disonnected");
  }
}

It is a modification of the IDE’s webserver example sketch that we used previously – with a few modifications. First, the webpage will automatically refresh every 30 seconds – this parameter is set in the line:

client.println("Refresh: 30");  // refresh the page automatically every 30 sec

… and the custom HTML for our web page starts below the line:

// from here we can enter our own HTML code to create the web page

You can then simply insert the required HTML inside client.print() functions to create the layout you need.

Finally – here’s an example screen shot of the example sketch at work:

arduino ethernet freetronics etherten dht22 humid cellular

You now have the framework to create your own web pages that can display various data processed with your Arduino.

Remote control your Arduino from afar

We have a separate tutorial on this topic, that uses the teleduino system.

Conclusion

So there you have it, another useful way to have your Arduino interact with the outside world. Stay tuned for upcoming Arduino tutorials by subscribing to the blog, RSS feed (top-right), twitter or joining our Google Group. And if you enjoyed the tutorial, or want to introduce someone else to the interesting world of Arduino – check out my book (now in a third printing!) “Arduino Workshop” from No Starch Press.

tronixstuff

Sep
30

Can our website get better? You bet. (Downtime announcement!)

Announcements, arduino, Massimo Banzi, website Comments Off on Can our website get better? You bet. (Downtime announcement!) 

arduino - new website

During World Maker Faire in NYC some days ago, Massimo Banzi unfolded for the first time the process of ‘reimagination’ of our website.

Starting this week you are going to experience a progressive change of our platform and in the next months we’ll release periodic updates aimed at improving and enhancing your overall user experience on arduino.cc (especially the blog, forum and shop).

Announcement!

——————————————————————————————–

Wednesday 2nd of October Arduino.cc will be offline for 12 hours
——————————————————————————————–
ROME, Italy
09:00 Wed, Oct 2 2013
21:00 Wed, Oct 2 2013

NEW YORK, United States, New York
03:00 Wed, Oct 2 2013
15:00 Wed, Oct 2 2013

LONDON, United Kingdom, England
08:00 Wed, Oct 2 2013
20:00 Wed, Oct 2 2013

SINGAPORE, Singapore
15:00 Wed, Oct 2 2013
03:00 Thu, Oct 3 2013

——————————————————————

In this first session we are going to update the website with a new navigation and reading experience. Later on we’ll focus on redesigning the overall information architecture: expect much more in the upcoming weeks!

In the meanwhile we’ll be happy to hear from you on the dedicated Forum thread ‘Arduino Website 3.0‘, with your feedback we can continue to improve our process.

Improvements don’t just happen: for this redesign operation we’ve extended our long-term collaboration with TODO, the design studio which already developed the Arduino identity, the boards layout and the packaging for the whole series of Arduino products. Solid results are coming soon!

We’re committed to make vital investment in order to provide the Arduino community a better learning and sharing experience. We apologize for any inconvenience you may experience as a result of this programmed downtime and thank you for your patience.

Sep
30

Can our website get better? You bet. (Downtime announcement!)

Announcements, arduino, Massimo Banzi, website Comments Off on Can our website get better? You bet. (Downtime announcement!) 

arduino - new website

During World Maker Faire in NYC some days ago, Massimo Banzi unfolded for the first time the process of ‘reimagination’ of our website.

Starting this week you are going to experience a progressive change of our platform and in the next months we’ll release periodic updates aimed at improving and enhancing your overall user experience on arduino.cc (especially the blog, forum and shop).

Announcement!

——————————————————————————————–

Wednesday 2nd of October Arduino.cc will be offline for 12 hours
——————————————————————————————–
ROME, Italy
09:00 Wed, Oct 2 2013
21:00 Wed, Oct 2 2013

NEW YORK, United States, New York
03:00 Wed, Oct 2 2013
15:00 Wed, Oct 2 2013

LONDON, United Kingdom, England
08:00 Wed, Oct 2 2013
20:00 Wed, Oct 2 2013

SINGAPORE, Singapore
15:00 Wed, Oct 2 2013
03:00 Thu, Oct 3 2013

——————————————————————

In this first session we are going to update the website with a new navigation and reading experience. Later on we’ll focus on redesigning the overall information architecture: expect much more in the upcoming weeks!

In the meanwhile we’ll be happy to hear from you on the dedicated Forum thread ‘Arduino Website 3.0‘, with your feedback we can continue to improve our process.

Improvements don’t just happen: for this redesign operation we’ve extended our long-term collaboration with TODO, the design studio which already developed the Arduino identity, the boards layout and the packaging for the whole series of Arduino products. Solid results are coming soon!

We’re committed to make vital investment in order to provide the Arduino community a better learning and sharing experience. We apologize for any inconvenience you may experience as a result of this programmed downtime and thank you for your patience.



  • Newsletter

    Sign up for the PlanetArduino Newsletter, which delivers the most popular articles via e-mail to your inbox every week. Just fill in the information below and submit.

  • Like Us on Facebook