SmartArduino / WiFiMCU

WiFiCMU-v0.9.8-pre release
https://github.com/SmartArduino/WiFiMCU
123 stars 65 forks source link



WiFiMCU

Latest Firmware Download Download

WiFiMCU is developed based on EMW3165 module produced by MXCHIP.INC. A Lua interpreter is builded inside with hardware support. A light weight file system and socket protocols can help to realize IoT development easily and quickly. Basically, you can load Lua scripts on your device and then run it on board with nothing more than a terminal connection.
Enjoy Programming!

  ;   .  . .___ .  . __ .  .      ,--.
 ["]  |  |o[__ o|\/|/  `|  | ,<-|__oo|
/[_]\ |/\|||   ||  |\__.|__| /  |//  |
 ] [                            /o|__|  [www.wifimcu.com@2015]

Overview

Highlights

Cortex-M4 microcotroller
Multi-Interface
Broadcom IEEE 802.11 b/g/n RF Chip

GPIO table

GPIO indexAlternative FunctionDiscription
D0GPIO/BOOTWiFiMCU would enter into Bootloader Mode, if D0 goes to LOW
D1GPIO/PWM/ADC
D2GPIO
D3GPIO/PWM
D4GPIO
D5GPIOSWD Flash Programming Pin: swclk
D6GPIOSWD Flash Programming Pin: swdio
D7GPIO
D8GPIO/PWMUart1 rx pin: RX1
D9GPIO/PWMUart1 tx pin: TX1
D10GPIO/PWMI2C interface: SCL
D11GPIO/PWMI2C interface: SDA
D12GPIO/PWM
D13GPIO/PWM/ADC
D14GPIO/PWM
D15GPIO/PWM/ADC
D16GPIO/PWM/ADC
D17GPIO/ADCA LED is connected on WiFiMCU board

Tutorial

How to Use

Reference

WiFiMCU Function Refecence
WiFiMCU Tutorial
EMW3165 Datasheet(English)
EMW3165 Datasheet(Chinese)
WiFiMCU SCH
EMW3165 Datasheet(English)
EMW3165 Datasheet(Chinese)
WiFiMCU SCH

Resource

Home site:www.wifimcu.com
discussion:www.emw3165.com
http://bbs.smartarduino.com
http://bbs.doit.am

The IDE tool for wifimcu can be found here

WiFiMCU STUDIO(supported by WiFiMCU Team)
WMC WiFiMCU CLI Article(Thanks for Zpeters' contribution)

Program demos

Setup a AP

    cfg={ssid='Doit_3165',pwd=''}
    wifi.startap(cfg)

WebServer

   skt = net.new(net.TCP,net.SERVER) 
   net.on(skt,"accept",function(clt,ip,port) 
   print("accept ip:"..ip.." port:"..port.." clt:"..clt) 
   net.send(clt,[[HTTP/1.1 200 OK
   Server: WiFiMCU
   Content-Type:text/html
   Content-Length: 28
   Connection: close

   <h1>Welcome to WiFiMCU!</h1>]])
   end)
   net.start(skt,80) 

Connect Wireless Router

   print(wifi.sta.getip())  --check ip
   0.0.0.0
   cfg={ssid="Doit",pwd="123456789"} wifi.startsta(cfg) --sta mode connect
   print(wifi.sta.getip())  --check ip
   0.0.0.0
   print(wifi.sta.getip())  --check ip
   192.168.1.116 

Connect Remote Server

   clt = net.new(net.TCP,net.CLIENT)
   net.on(clt,"dnsfound",function(clt,ip) print("dnsfound clt:"..clt.." ip:"..ip) end)
   net.on(clt,"connect",function(clt) print("connect:clt:"..clt) end)
   net.on(clt,"disconnect",function(clt) print("disconnect:clt:"..clt) end)
   net.on(clt,"receive",function(clt,data) print("receive:clt:"..clt.."data:"..data) end)
   net.start(clt,6579,"115.29.109.104")

GPIO Operation

   gpio.mode(17,gpio.OUTPUT)
   gpio.toggle(17)
   gpio.write(17,gpio.HIGH)
   gpio.write(17,gpio.LOW)
   gpio.mode(17,gpio.INPUT)
   =gpio.read(17)
   1
   =gpio.read(17)
   0

Timer

   function tmr_cb() print('tmr1 is called') end 
   tmr.start(1,1000,tmr_cb)
   tmr1 is called
   tmr1 is called

File Operation

   file.open ("test.lua","w+")
   file.write("this is a test")
   file.close()
   file.open ("test.lua","r")
   data=file.read()
   print(data)
   this is a test
   file.close()

Auto start

   file.open ("init.lua","w+")
   file.write("print('Hello WiFiMCU!')")
   file.close()
   mcu.reboot()

Acknowledgements

Thanks to eLua project,NodeMCU project,spiffs file system

Doctors of Intelligence & Technology

DoIT website
WiFiMCU Dev Kit

Version log

v0.9.8.1 @2016-02-22
v0.9.8 @2015-12-16
v0.9.7 @2015-12-14