Skip to content

MrZANE42/WiFiMCU

 
 

Repository files navigation

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

  • Based on Lua 5.1.4 (package, string, table, math modules)
  • Build-in modules: mcu,gpio, timer, wifi, net, file, pwm, uart, adc, spi, i2c, bit
  • Modules to be builded: 1-wire, bit, mqtt...
  • Integer version provided
  • Free memory >48k bytes

##Highlights #####Cortex-M4 microcotroller

  • STM32F411CE
  • 100MHz,Cortex-M4 core
  • 2M bytes of SPI flash and 512K bytes of on-chip flash
  • 128K bytes of RAM
  • Operation Temperature:-30℃ ~ +85℃

#####Multi-Interface

  • 18 GPIO Pins
  • 2 UARTs
  • ADC(5)/SPI(1)/I2C(1)/USB(1)
  • SWD debug interface
  • 11 PWMs

#####Broadcom IEEE 802.11 b/g/n RF Chip

  • Supports 802.11 b/g/n
  • WEP,WPA/WPA2,PSK/Enterprise
  • 16.5dBm@11b,14.5dBm@11g,13.5dBm@11n
  • Receiver sensitivity:-87 dBm
  • Station,Soft AP and Station+Soft AP
  • CE, FCC suitable

#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

###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
  • MQTT module:
    • Fix mqtt publish bug
v0.9.8 @2015-12-16
  • Add string.md5calc/md5 for md5 calculation
v0.9.7 @2015-12-14
  • (under beta version)
  • Mico SDK Lib:
    • Update to SDK 2.4.0
  • WiFi module:
    • Add easylink and airkiss function in wifi module
    • Add sethostname/sethostname function
  • GPIO module:
    • Enhance GPIO interrupt code to avoid errors in its callback function
  • Timer module:
    • Enhance Timer interrupt checking method
  • Uart module:
    • Use pushlstring for uart recieve data to avoid data missing
  • Net module:
    • Improve TCP Client connect callback function
  • MQTT module:
  • Others:
    • Rearrangement the source code files and folders
    • Improve wifimcu upload function, LUA_MAXINPUT 128->512
    • Support utf-8 charset
    • Optimize WiFiMCU STUDIO upload file function
    • Set init.lua or init.lc to start up
    • Fix dofile bug in tmr/gpio
    • Fix bootloader gpio initize bug,add compiling bootloader switch for MicoKit
      More details see change.log

Packages

No packages published

Languages

  • C 95.7%
  • C++ 1.8%
  • HTML 1.3%
  • Other 1.2%