Fireduino Buy

Dual-Core Cortex-M3 processor, integrated high-quality audio Codec and WiFi module, have IOT expansion performance, perfectly compatible with the Arduino interface and Arduino IDE programming, and supports FireBlock graphics programming.

WiFi

Update time:2018-04-13 Views:8159

WiFi

On the Fireduino board integrated  with WiFi module,using the AP6181 but actually is Broadcom BCM43362,it is a single-band 2.4GHz supports IEEE802.11b/g/n protocol,specific parameters of SDIO interface WiFi module please refer AP6181 and BCM43362 DataSheet.

WiFi Library

Fireduino WiFi library designed to Arduino WiFi library modeled on the design, as far as possible compatible with Arduino WiFi library; Arduino WiFi Shield sample programs to run on Fireduino the case without modification.

WiFi API

WiFi class

WiFi Settings, and network settings

begin()

   Description
       Initialize the library and WiFi access WiFi hotspots.
  
   Syntax
       WiFi.begin(ssid);
       WiFi.begin(ssid, pass);

   Parameter 
       ssid: Access Point
       pass: Key

   Returns 
      WiFi current status

disconnect()

   Description 
       Disconnect the establishment of the current network.
  
   Syntax
      WiFi.disconnect(); 

   Parameter 
       None

   Returns 
      None

config()

   Description 
       Configure the network.
  
   Syntax
       WiFi.config(ip);
       WiFi.config(ip, dns);
       WiFi.config(ip, dns, gateway);
       WiFi.config(ip, dns, gateway, subnet);

   Parameter 
       ip      : IP address of the device
       dns     : DNS server address
       gateway : Gateway Address
       subnet  : Network subnet mask

   Returns 
      None

setDNS()

   Description 
       Set the DNS server address.
  
   Syntax
       WiFi.setDNS(dns_server1)
       WiFi.setDNS(dns_server1, dns_server2);

   Parameter 
       dns_server1: Primary DNS server address
       dns_server2: Secondary DNS server address

   Returns 
      None

SSID()

   Description 
       Get the current network SSID name.
  
   Syntax
       WiFi.SSID();
       WiFi.SSID(wifiAccessPoint);

   Parameter 
       wifiAccessPoint : Specify the access point

   Returns 
      The current network SSID string

BSSID()

   Description 
       Get access point MAC.
  
   Syntax
       WiFi.BSSID(bssid); 

   Parameter 
       bssid : MAC array of 6 bytes

   Returns 
      MAC array of 6 bytes

RSSI()

   Description 
       Get in touch with the current access point signal strength.
  
   Syntax
       WiFi.RSSI();
       WiFi.RSSI(wifiAccessPoint);

   Parameter 
      wifiAccessPoint : Specify the access point

   Returns 
      None

encryptionType()

   Description
       Gets the current type of encryption network.
  
   Syntax
       WiFi.encryptionType();
       WiFi.encryptionType(wifiAccessPoint);

   Parameter 
       wifiAccessPoint : Specify the access point

   Returns 
      Network encryption type

scanNetworks()

   Description 
       Scan the current access point environment.
  
   Syntax
       WiFi.scanNetworks();

   Parameter 
       None 

   Returns
       The number of network discovery

status()

   Description 
       Get connecte status.
  
   Syntax
       WiFi.status();

   Parameter
       None

   Returns 
      Connection Status

macAddress()

   Description 
       Get MAC address of WiFi module.
  
   Syntax
       WiFi.macAddress(mac); 

   Parameter 
       mac : MAC array of 6 bytes

   Returns 
      MAC array of 6 bytes


IPAddress class

IPAddress class provides network configuration information

localIP()

   Description 
       WiFi network to obtain an IP address.
  
   Syntax
       WiFi.localIP(); 

   Parameter 
       None

   Returns 
      IP address of the WiFi network

subnetMask()

   Description 
       Get WiFi network network subnet mask.
  
   Syntax
       WiFi.subnet(); 

   Parameter 
       None

   Returns 
      Network subnet mask

gatewayIP()

   Description 
      Get Gateway Address WiFi network.
  
   Syntax
       WiFi.gatewayIP(); 

   Parameter
       None

   Returns 
      WiFi network gateway address

Server class

Service class to create a server and receives a receipt from the client and sends the data to send to the client

WiFiServer()

   Description 
       Create a service, the customer specified port monitor access terminal.
  
   Syntax
       Server(port);

   Parameter 
       port : Listening port

   Returns 
       None

begin()

   Description 
       Tell Server start listening.
  
   Syntax
       server.begin();

   Parameter
       None

   Returns 
       None

available()

   Description 
       Being a client access.
  
   Syntax
       server.available();

   Parameter 
       None

   Returns 
      A client object, if there is no access to the client, the client returns false objects.

write()

   Description 
       Write data to all the connected clients.
  
   Syntax
       server.write(data);

   Parameter 
       data : Bytes written

   Returns 
      The number of bytes written.

print()

   Description 
       Print data to all the connected clients.
  
   Syntax
       server.print(data)
       server.print(data, BASE);

   Parameter 
       data : Print data
       BASE : Print Format(BYTE、BIN、OCT、DEC、HEX)

   Returns 
      The number of bytes printed

println()

   Description 
       Print data to all connected to the client, followed by a newline.
  
   Syntax
       server.println();
       server.println(data);
       server.println(data, BASE);

   Parameter 
       data : Print data
       BASE : Print Format(BYTE、BIN、OCT、DEC、HEX)

   Returns
       The number of bytes printed

Client class

Client class to create a client connected to the server, send and receive data.

Client

Client is the base class for all clients, it is not called directly, but call the client class functions are dependent on it.

WiFiClient()

   Description 
       Create a client object to connect into remote IP and port by client.connect ().
  
   Syntax
       WiFiClient();

   Parameter 
       None

   Returns 
      Client object

connected()

   Description 
       The connection status of the client.
  
   Syntax
       client.connected();

   Parameter 
       None

   Returns 
      Client connection status, true or false

connect()

   Description 
       Connect the remote server.
  
   Syntax
       client.connect(ip, port);
       client.connect(URL, port);

   Parameter 
       ip    : The client will connect to the IP address
       URL   : The client will connect to the domain address. For example ( "arduino.cc")
       port  : The client connects to the remote port number

   Returns 
       Success, returns true, otherwise false

write()

   Description 
       Write data to the server.
  
   Syntax
       client.write(data);

   Parameter
       data : Bytes written

   Returns 
      The number of bytes written.

print()

   Description 
       Print data to the server.
  
   Syntax
       client.print(data);
       client.print(data, BASE);

   Parameter 
       data : Print data
       BASE : Print format (BYTE, BIN, OCT, DEC, HEX)

   Returns 
      The number of bytes printed

println()

   Description 
       Print data to the server, followed by a carriage return and line feed.
  
   Syntax
       client.println();
       client.println(data);
       client.print(data, BASE);

   Parameter 
       data : Print data
       BASE : Print format (BYTE, BIN, OCT, DEC, HEX)

   Returns
      The number of bytes printed

available()

   Description 
       Returns the number of bytes available to read.
  
   Syntax
       client.available();

   Parameter 
       None

   Returns
       The number of bytes that can be read

read()

   Description 
       Reads the next byte.
  
   Syntax
       client.read();

   Parameter 
       None

   Returns 
      The next byte

flush()

   Description 
       Wash buffer.
  
   Syntax
       client.flush();

   Parameter 
       None

   Returns 
      None

stop()

   Description 
       Disconnect the server side of the connection.
  
   Syntax
       client.stop();

   Parameter 
       None

   Returns 
      None

UDP class

UDP class allows sending and receiving UDP messages.

WiFiUDP

Creating a UDP class instance, you can send a message to receive UDP

begin()

   Description
       UDP library initialization and network settings, start listening on a local port port.
  
   Syntax
       WiFiUDP.begin(port);

   Parameter 
       port: listening on a local port

   Returns
      1 : success
      0 : failure

available()

   Description 
       Get readable data buffer size.
  
   Syntax
       WiFiUDP.available();

   Parameter 
       None

   Returns 
       The number of bytes available in the current package

beginPacket()

   Description 
       Start a UDP connection, ready to write data to a remote host.
  
   Syntax
       WiFiUDP.beginPacket(hostName, port);
       WiFiUDP.beginPacket(hostIp, port);

   Parameter 
       hostName : Remote host domain name
       hostIp   : Remote host IP address
       port     : Remote host port 

   Returns 
      1 : success
      0 : failure

endPacket()

   Description 
       After writing UDP data packet sent to the remote host group.
  
   Syntax
       WiFiUDP.endPacket(); ;

   Parameter 
       None

   Returns 
      1 : Success
      0 : Failed

write()

   Description 
       UDP write data to a remote host, you must call it between calls beginPacket () and endPacket(), it calls endPacket () after sending.
  
   Syntax
       WiFiUDP.write(byte);
       WiFiUDP.write(buffer, size);;

   Parameter 
       byte   : Bytes written
       buffer : Buffer Pointer
       size   : Size Length

   Returns 
      The length of the size of the write

parsePacket()

   Description 
       Start processing the next available UDP message,and report it's size
  
   Syntax
       UDP.parsePacket();;

   Parameter 
       None

   Returns 
      Available UDP packet size

peek()

   Description 
       Peeks data.
  
   Syntax
       WiFiUDP.peek();

   Parameter 
       None

   Returns 
      Peeks data, -1 represents no data to see

read()

   Description 
      Reads data from the specified buffer after WiFi UDP.parsePacket () and call when Successful .
  
   Syntax
       WiFiUDP.read();
       WiFiUDP.read(buffer, len);

   Parameter 
       buffer : Pointer to buffer data read
       len: The maximum length

   Returns 
      Read data
      Read data length

flush()

   Description 
       Wash buffer.
  
   Syntax
       WiFiUDP.flush();

   Parameter 
       None

   Returns 
      None

stop()

   Description 
       Disconnect and release resources.
  
   Syntax
       WiFiUDP.stop();

   Parameter 
       None

   Returns 
      None

remoteIP()

   Description 
       Get the remote host IP address (). After a successful call in WiFi UDP.parsePacket.
  
   Syntax
       WiFiUDP.remoteIP();

   Parameter 
       None

   Returns 
      Remote host IP address

remotePort()

   Description 
       Get the remote host port number, WiFi UDP.parsePacket (). After a successful call.
  
   Syntax
       WiFiUDP.remotePort();

   Parameter 
       None

   Returns 
      Remote host port number

WiFi Example

#include <WiFi.h>char ssid[] = "yourNetwork"; //  your network SSID (name)char pass[] = "secretPassword";    // your network password (use for WPA, or use as key for WEP)int keyIndex = 0;            // your network key Index number (needed only for WEP)int status = WL_IDLE_STATUS;WiFiServer server(23);boolean alreadyConnected = false; // whether or not the client was connected previously void setup() {
  //Initialize serial and wait for port to open:
  Serial.begin(9600);
  while (!Serial) {; // wait for serial port to connect. Needed for native USB port only
  }
  // check for the presence of the shield:
  if (WiFi.status() == WL_NO_SHIELD) {Serial.println("WiFi shield not present");// don't continue:while (true);
  }
  String fv = WiFi.firmwareVersion();
  if (fv != "1.1.0") {Serial.println("Please upgrade the firmware");
  }
  // attempt to connect to Wifi network:
  while (status != WL_CONNECTED) {Serial.print("Attempting to connect to SSID: ");Serial.println(ssid);// Connect to WPA/WPA2 network. Change this line if using open or WEP network:status = WiFi.begin(ssid, pass);// wait 10 seconds for connection:delay(10000);
  }
  // start the server:
  server.begin();
  // you're connected now, so print out the status:
  printWifiStatus();} void loop() {
  // wait for a new client:
  WiFiClient client = server.available();
  // when the client sends the first byte, say hello:
  if (client) {if (!alreadyConnected) {  // clead out the input buffer:  client.flush();  Serial.println("We have a new client");  client.println("Hello, client!");  alreadyConnected = true;}if (client.available() > 0) {  // read the bytes incoming from the client:  char thisChar = client.read();  // echo the bytes back to the client:  server.write(thisChar);  // echo the bytes to the server as well:  Serial.write(thisChar);}
  }} void printWifiStatus() {
  // print the SSID of the network you're attached to:
  Serial.print("SSID: ");
  Serial.println(WiFi.SSID());
  // print your WiFi shield's IP address:
  IPAddress ip = WiFi.localIP();
  Serial.print("IP Address: ");
  Serial.println(ip);
  // print the received signal strength:
  long rssi = WiFi.RSSI();
  Serial.print("signal strength (RSSI):");
  Serial.print(rssi);
  Serial.println(" dBm");}