2018
July Wednesday 18

Bookmark and Share

Related Articles...

MILWAUKEE WI Arduino Meet Up Make Space

WANTED: CORE TEAM MEMBER TO HELP START NON-PROFIT GROUP.

WANTED: Angle Investor Start-Up Funding

Large Industrial Zoned Arduino Make Space Acquired!

Email :

COASMailBox @ gmail.com

MILWAUKEE WI Raspberry Pi Meet Up Make Space

WANTED: CORE TEAM MEMBER TO HELP START NON-PROFIT GROUP.

WANTED: Angle Investor Start-Up Funding

Large Industrial Zoned Raspberry Pi Make Space Acquired!

Email :

COASMailBox @ gmail.com

MILWAUKEE WI Internet of Things (IoT) Meet Up Make Space

WANTED: CORE TEAM MEMBER TO HELP START NON-PROFIT GROUP.

WANTED: Angle Investor Start-Up Funding

Large Industrial Zoned Make Space Acquired!

Full Advanced Fabrication Facility, machine Shop, Welding, Electronics Lab Equipment Acquired!

Email :

COASMailBox @ gmail.com

MILWAUKEE WI Machine Repair, & Installation  - Tier 1 Business Support

Machine Technician Mechanic 20+ Years  Personal Experienced In Industrial Factory Machine Servicing, Rebuilding, Installation And Repair - Plus A 35+ Years Experienced Computer Engineer Service Technician Team Ready For Your Outsourced Market Advantage Needs!

Hartung Industrial - Member - CGI Science & Technology Group

Email :

COASMailBox @ gmail.com

2018 July REVIEW

 

Arduino IoT

2017 | by Gene Casanova

Senior Systems/Network/Internet/Robotics Engineer


Arduino Needs An Internet Interface

Arduino Ethernet ("ee ther net")

Ethernet is the world standard, today, for a physical digital communication network.  The public network named "Internet", is a Ethernet network.

The Arduino systemboard does not come with an Ethernet interface; commonly referred to as a "network port", or an RJ45 port.  'RJ45' is a reference name given to a physical connector type; and a standard of the world's electronic industry.

An "Arduino Ethernet Shield" is needed, to connect an Arduino to the Internet, for IoT (Internet of Things) applications.


Arduino Ethernet "Shields"

Arduino Ethernet Shields, is a generic term used to refer to any small printed circuit board (PCB) designed to plug into an Arduino systemboard.

An "Arduino Ethernet Shield" is a complete Ethernet circuit board, providing Ethernet network communications port functionality to an Arduino systemboard and MPU.


Arduino Internet of Things (IoT) Shields

Arduino Ethernet Shields currently made with the MicroChip ENC28J60 IC chip, provide the required, Internet IPv6 addressing capability.

MicroChip ENC28J60 Arduino Ethernet Shields can be programmed with an IPv6 and an IPv4 network address.

NOTICE ----- CGI Computer Wares pre-tests each MicroChip ENC28J60 Arduino Ethernet Shield, Before Providing To Customers.  ONLY ORDER Arduino Shields from CGi Computer Wares, with this 5 Star, Tier 1, Premium Level of Service; Avoiding Stress, headaches, and unnecessary wasted time from your limited life and being able to think and enjoy your endeavors!  Parts shipped from central USA, GREAT LAKES Region distribution center.

Arduino Foundation's Produced, 'Ethernet Shield'

The Arduino Foundation's produced 'Ethernet Shield', is intended for education purposes on a private network.  It is based on the WizNet 5100 IC chip; with the IPv4 protocol built into the chip.  This Ethernet Shield cannot support the IPv6 protocol.

IPv6 Ethernet Shields

An Ethernet IC chip must support the IPv6 protocol.

Arduino Ethernet Shields with the MicroChip ENC28J60 IC chip are the types to find and use for IoT; today 2017, October.


IoT = Evolution = The Continuum

Internet of Things is a natural evolution of the initial experimental Internet.

The world's first fully functional designed and implemented public digital network is the new Internet IPv6.  IPv6 Internet Protocol address system provides 340,282,366,920,938,463,463,374,607,431,768,211,456 unique addresses.

The speculated human population in 2017, is 6,973,738,433, a number presented by Google.

Internet of Things, means any device can now have an Internet address!

An entire new realm of reality is upon us, as humans..... and I am one driving and influencing evolution.  Dream it, and we can build it today..... together....  I am looking for core team members to start new companies, based on new conceptions of mine and those of my future core teams, as individual company entities.  Seeking, Tier 1, Thinkers, Doers, for my development core teams.


Arduino IPv6 Ethernet Shield Sketch Source Code

Arduino IPv6 C Source Code | IPv6WebServer

Below is my example source code to illustrate and demonstrate creating the foundation process for an IPv6 Internet address and a HTTP-server.

This example was created for Arduino Ethernet Shields with the ENC28J60 Ethernet IC chip.  The source code (process) uses the ghoelzl Arduino library named: "IPv6EtherShield.h", developed for the "ENC28J60 Arduino Ethernet Shield" from "ekitszone.com".  Insight: this library was created in 2012, June; the year of the official public notice, published on the experimental public Internet, to all Internet infrastructure Implementors and user-community, to start using the new and first official Public Internet IPv6 - the all new IPv6 Address-protocol and address-space designed for worldwide public use.

Note: I was one of the first to pioneer the first public-aware network and Internet.... the "public network, as an Internet" and "web page" concept, and the new Public IPv6 Internet - starting in 1977 through my private independent conceived, experimentation and real world online network creations and implementations, from 1977 onward.  My concepts and designs include planetary addressing and beyond, more advanced than current IPv6.  My old computer systems are still in tact, saved as proof to my claims of independent research, accomplishments, and my personal PHD level knowledgebase - friends and customers, through the decades, have enjoyed my help, teaching, and calling me a computer guru.

 This example source code (sketch) outputs the current values from the Arduino analog pins:

/* Arduino C Source Code - Experimental - Purpose: use on a LAN.
	by Gene Casanova
*/
#include "IPv6EtherShield.h"
// IPv6WebServer
// This example creates an IPv6 HTTP-server, and
// serves the analog values from the Arduino systemboard
// analog pins, at the time the HTTP-request is processed.
//
// For Arduino UNO with an ATMega328 and with an attached
// Ethernet Shield With The ENC28J60 Ethernet IC chip.
//
// The MAC for the Ethernet IC port; must be unique
// on the local area network (LAN):
static uint8_t mMAC[6] = {0x00,0x22,0x15,0x01,0x02,0x04};

IPv6EtherShield ipv6ES = IPv6EtherShield();
#define WAITING_FOR_REQUEST 0
#define HTTP_OK_SENT        1
#define HEADER_SENT         2
#define DATA_SENT           3
char httpState = WAITING_FOR_REQUEST;
char sendingDataLine;

void setup() {
  // Initialize Ethernet Chip:
  ipv6ES.initENC28J60(mMAC);
  ipv6ES.initTCPIP(mMAC, processIncomingData);  
  // Add "Link Local Unicast" Address
  // for testing on LINUX: ping6 -I eth0 fe80::1234
  ipv6ES.addAddress(0xfe80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1234);
  // Add "Global Unicast Address"
  // for testing on LINUX: ping6 2a00:eb0:100:15::1234
  ipv6ES.addAddress(0x2a00, 0xeb0, 0x100, 0x15, 0x00, 0x00, 0x00, 0x1234); 
  // Telnet listen:
  ipv6ES.tcpListen(80);    
}

void processIncomingData() { 
  char* replyString;
  char* newData;  
  
  switch (httpState) {
    case WAITING_FOR_REQUEST:
      if (ipv6ES.newDataAvailable()) {
        newData = ipv6ES.getNewData();
        
        // When a newline character is received followed by a blank line,
        // then a new HTTP-request has been received:
        boolean currentLineIsBlank = true;

		   // Respond to this HTTP-request, by building and sending a web page response
        // to the HTTP-requester in real-time:
        while (*newData != 0) {
          if (*newData == '\n' && currentLineIsBlank) {      
            replyString = "HTTP/1.0 200 OK\r\nContent-Type: text/html\r\n\r\n";
            ipv6ES.sendData(replyString, strlen(replyString)); 
            httpState++;
            break;
          }
          if (*newData == '\n') {
            // Start a new line:
            currentLineIsBlank = true;
          } else if (*newData != '\r') {
            // A character available on current line:
            currentLineIsBlank = false;
          }
          newData++;
        }
      }
      break;

    case HTTP_OK_SENT:
      replyString = "<h1>Experimental - Arduino Serving Analog Data</h1>";
      ipv6ES.sendData(replyString, strlen(replyString));
      httpState++;
      sendingDataLine = 0;
      break;
      
    case HEADER_SENT:
      // Send values from all Analog Pins:
      char data[40];
      sprintf(data, "Analog pin %i value: %i\r\n<br>", 
              sendingDataLine, analogRead(sendingDataLine));
      ipv6ES.sendData(data, strlen(data));
      if (++sendingDataLine == 6) 
        httpState++;
      break;
      
    default: 
      // Delay 1 second; enabling web-browser to receive data:
      delay(1);
      httpState = WAITING_FOR_REQUEST;
      ipv6ES.closeConnection();
      break;
  }  
}

void loop() {
  ipv6ES.receivePacket();
  if (ipv6ES.newDataLength() != 0) {
    if (ipv6ES.isIPv6Packet()) {
      ipv6ES.processTCPIP();
    }    
  }  
  ipv6ES.pollTimers();
}

Arduino IoT Motor Control

A remotely located Arduino can control motors, using an Internet connection, a PHP server, and a HTML form.  Click here for an example experimental Arduino source code to work with the HTML form and the example PHP script above.

Arduino IoT Motor Control


Use The Technology Wisely & Keep It Simple

- Cheers!

Gene Casanova


Cyber Security Since 1979 - Consulting Available | IoT Full Stack And App Developer

CGI Computer Wares | EST 1979

Send E-MailCONTACT: [click]@CGIComputerWares.com