ESP8266 driver using the NodeMCU interface
Dependencies: BufferedSerial
Dependents: esp8266_nodeMCU1 esp8266_2_thingspeak1 Solarator_0-0-2 IoTBurglar_and_Fire_AlarmSystem ... more
Fork of ESP8266Interface by
This is an alternative implementation of the ESP8266 driver that uses the NodeMCU firmware. The NodeMCU firmware provides a slightly larger feature set than the default firmware through a Lua interpreter.
Note
This library is currently in Alpha. It is not feature complete and has some bugs, proceed with caution. Fixes and patches are welcome!
Interface changes
- SSID and passphrase moved out of ESP8266Interface constructor and to ESP8266Interface::connect
- ESP8266Interface constructor provides optional timeout parameter to specify how long to wait for network operations
Note
NodeMCU defaults to a baud rate of 9600 instead of 115200 used by the default firmware.
Firmware
To install the NodeMCU firmware, follow the instructions on the Firmware Update wiki page using the nodemcu_integer_0.9.6-dev_20150406.bin binary at address 0x00000 instead of boot_v1.1.bin and user1.bin.
Since the NodeMCU firmware defaults to a baud rate of 9600, the Serial Passthrough program can be used to get direct access to the Lua interpreter running on the ESP8266.
Status
Working features:
- TCP Client
- UDP Client Transmit (Currently only UDP Server can recieve messages)
- Single Connection at a time
- Station Mode (Connects to AP)
- DNS Lookups
To be implemented:
- TCP Server
- UDP Server
- UDP Client recieve
- Multiple Connections tracked through Lua variables
- AP Mode (Act as access point)
- IPV6 support (Existing issue with NodeMCU)
Diff: WiflyInterface.h
- Revision:
- 13:41098c907200
- Parent:
- 12:c5f0eac67a8a
- Child:
- 14:4d1128f72e00
--- a/WiflyInterface.h Wed Oct 08 19:57:58 2014 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/* WiflyInterface.h */
-/* Copyright (C) 2012 mbed.org, MIT License
- *
- * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
- * and associated documentation files (the "Software"), to deal in the Software without restriction,
- * including without limitation the rights to use, copy, modify, merge, publish, distribute,
- * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
- * furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included in all copies or
- * substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
- * BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
- * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
- * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
- */
-
-#ifndef WIFLYINTERFACE_H_
-#define WIFLYINTERFACE_H_
-
-#include "Wifly.h"
-
- /**
- * Interface using Wifly to connect to an IP-based network
- */
-class WiflyInterface: public Wifly {
-public:
-
- /**
- * Constructor
- *
- * \param tx mbed pin to use for tx line of Serial interface
- * \param rx mbed pin to use for rx line of Serial interface
- * \param reset reset pin of the wifi module ()
- * \param tcp_status connection status pin of the wifi module (GPIO 6)
- * \param ssid ssid of the network
- * \param phrase WEP or WPA key
- * \param sec Security type (NONE, WEP_128 or WPA)
- */
- WiflyInterface(PinName tx, PinName rx, PinName reset, PinName tcp_status, const char * ssid, const char * phrase, Security sec = NONE);
-
- /** Initialize the interface with DHCP.
- * Initialize the interface and configure it to use DHCP (no connection at this point).
- * \return 0 on success, a negative number on failure
- */
- int init(); //With DHCP
-
- /** Initialize the interface with a static IP address.
- * Initialize the interface and configure it with the following static configuration (no connection at this point).
- * \param ip the IP address to use
- * \param mask the IP address mask
- * \param gateway the gateway to use
- * \return 0 on success, a negative number on failure
- */
- int init(const char* ip, const char* mask, const char* gateway);
-
- /** Connect
- * Bring the interface up, start DHCP if needed.
- * \return 0 on success, a negative number on failure
- */
- int connect();
-
- /** Disconnect
- * Bring the interface down
- * \return 0 on success, a negative number on failure
- */
- int disconnect();
-
- /** Get IP address
- *
- * \return ip address
- */
- char* getIPAddress();
-
-private:
- char ip_string[20];
- bool ip_set;
-};
-
-#include "TCPSocketConnection.h"
-#include "TCPSocketServer.h"
-#include "UDPSocket.h"
-
-#endif /* WIFLYINTERFACE_H_ */
ESP8266

Adafruit Huzzah