Jul 23, 2017 - ESP8266学习笔记(六)

  本人在看micropython源码的README文件时,发现源码中含有micropython的unix版本,想也许在有些地方有用,比如做测试什么的,所以根据README试安装了一下。

  1. 下载micropython(电脑里必须有git工具,或者到网站上下载)
    git clone https://github.com/micropython/micropython.git
    cd micropython
    cd unix
    make axtls
    make
    

      编译过程中提示缺少ffi.h文件,需要安装libffi包
      apt-get install libffi-dev
      安装完成后,在当前unix目录下生成可执行文件micropython,执行./micropython进入环境,用CTRL-D退出环境
      ./micropython –help #帮助   make test #完整测试

  2. 软件包管理
      已经内置了pip的micropython版本
    ./micropython -m upip install micropython-pystone #示例
    ./micropython -m pystone #示例
    #软件包默认安装在/root/.micropython/lib/umqtt
    ./micropython -m upip install micropython-umqtt.simple
    ./micropython -m upip install micropython-umqtt.robust
    

      本人的更多原创文章请加入个人微信公众号。

Jul 10, 2017 - esp8266_led_demo通过浏览器控制ESP8266上的LED

参考:This is example code for this blog post.

  如何通过浏览器控制ESP8266?这里提供一个方法。可以用mq消息机制,通过消息的方法专递信息给esp8266。原理是浏览器通过websocket接口连接mq服务器,再点击on/off按钮之后发送消息给mq服务器,mq服务器接受到消息之后通过micropython的mqtt库程序将消息传递给esp8266,根据消息内容来打开或者关闭esp8266上的led。

  1. 安装mosquitto(在linux环境下) mosquitto默认安装不支持websocket,需以下步骤安装
    1. 下载mosquitto、libwebsockets、cmake
      wget http://mosquitto.org/files/source/mosquitto-1.4.12.tar.gz  
      tar -zxvf mosquitto-1.4.12.tar.gz  
      useradd mosquitto #需要新建一个用户  
      git clone https://github.com/warmcat/libwebsockets  
      

      编译需要cmake
      所以:apt-get install cmake

    2. 安装 完成以后 进入libwebsockets目录
      mkdir build
      cd build
      cmake .. -DOPENSSL_ROOT_DIR=/usr/bin/openssl
      make
      sudo make install
      

      进入mosquitto目录,更改configure.mk中WITH_WEBSOCKETS:=no变成(这一步是做WebSocket支持)WITH_WEBSOCKETS:=yes 修改配置,编译。

      make
      make install
      

      启动:mosquitto -c /etc/mosquitto/mosquitto.conf
      有可能找不到动态库,查一下库文件目录,并确保动态库在/etc/ld.so.conf
      mosquitto安装注意点

      • 编译找不到openssl/ssl.h 安装openssl
        sudo apt-get install libssl-dev
      • 编译过程找不到ares.h
        sudo apt-get install libc-ares-dev
      • 编译过程找不到uuid/uuid.h
        sudo apt-get install uuid-dev
      • 使用过程中找不到libmosquitto.so.1
        error while loading shared libraries: libmosquitto.so.1: cannot open shared object file: No such file or directory
        修改libmosquitto.so位置 创建链接
        sudo ln -s /usr/local/lib/libmosquitto.so.1 /usr/lib/libmosquitto.so.1
        更新动态链接库
        sudo ldconfig
      • make: g++:命令未找到 装g++编译器
        sudo apt-get install g++
  2. 安装tornado sudo pip install tornado

  3. 下载源代码并测试 git clone https://github.com/breezecloud/esp8266_led_demo.git或者到 https://github.com/breezecloud/esp8266_led_demo直接下载
    led_mqtt.py #ESP8266执行程序
    websocket_led.py #命令行启动tornado程序
    templates–index.html #web页面
    static/scripts–config.js,jquery.min.js,mqttws31.js #javascript库
    esp8266安装micropython的固件(参考http://blog.sina.com.cn/s/blog_537da9e40102x79k.html)
    修改led_mqtt.py中ap的ssid和密码,并上传到esp8266(参考http://blog.sina.com.cn/s/blog_537da9e40102x83s.html)
    然后登录esp8266,执行import led_mqtt.py。此时可以在linux终端上执行mosquitto_pub -t ‘/esp8266’ -m on和mosquitto_pub -t ‘/esp8266’ -m off测试esp8266是否正常工作,在linux终端下执行pythhon websocket_led.py。浏览器http://ip地址:8000(注意:必须支持websocket的浏览器),点击上面的on/off按钮控制led的亮和暗。

  这样一个mini物联网完成了。

  本人的更多原创文章请加入个人微信公众号。

Jun 19, 2017 - ESP8266学习笔记(五)小巧的文件上传软件MicroPython File Uploader

  最近使用mpfshell上传文件也很不稳定。后来发现不是软件的问题而是ESP8266用作热点时网络非常不稳定,而webrepl服务(mpfshell也是基于webrepl)好像一定要工作在这种模式下,只好作罢。想起在网上找找有没有通过虚拟串口上传文件的工具,果然找的这个–“MicroPython File Uploader”
原文链接:https://my.oschina.net/shaoziyang/blog/793293
目前版本已经更新到0.2。

  软件功能很简单,就是上传文件并重新启动esp8266,但通过虚拟串口进行传输还是比较方便、稳定。已知问题:

  • 不支持unicode编码的文件(上传后会无法运行)
  • 只支持windows系统 软件下载地址:
    http://www.wbudowane.pl/download/

  本人的更多原创文章请加入个人微信公众号。