分类:开源硬件

Micropython:和开发板通过SOCKET聊天

ESP8266主打的WIFI功能使得我们将设备连入网络变得更加简单方便低成本,MicroPython则将单片机的门槛变得很低,两者结合起来,使得我们能更加方便的透过网络操作单片机,本次我们介绍Micropython的Socket使用方法,使用安卓端TCP工具(软件名为 TCP连接,大家可上各大app市场搜索),通过SOCKET与ESP8266芯片通信。

通过上图我们可以看到,我们向芯片发送一串字符,然后芯片向手机回复了一串字符,同时我们可以看到串口工具上开发板的串口输出信息:

Continue reading

MicroPython:安卓手机串口连接MicroPython开发板

一般情况下,我们都是使用电脑连接开发板的,在PC机上各种工具都比较方便,在互联网上我们可以找到许多像PUTTY这样方便好用的工具,对于基于ESP8266的Micropython开发板,我们更可以通过无线的方式,使用WebREPL,在手机或电脑的浏览器上连接开发板,进行命令输入,文件传输的操作。

最近,芝麻DIY推出一套DIY套件,可以使用安卓手机发送和接收串口数据,借助该套件的APP,我们可以串口连接MicroPython开发板,从下图我们可以看出,可以读取到开发板启动时的串口输出信息。

APP默认的波特率为:9600,8,1,None,flow off,所以在使用的时候我们要将波特率设置为115200,None,flow off,app目前仅支持9600,38400,115200三个选项。

Continue reading

树莓派基金会发布Raspberry Pi Zero W

2015 年,Raspberry Pi推出了只要 5 美元的 Raspberry Pi Zero ,却有着比初代 Pi 强 40% 的运算能力,在市场上引起相当大的轰动,之后几乎都是只要上市就会被抢空。低廉的售价让许多就算不是 Maker 的人也为之注意,想要上手来玩玩。

时间迈入2017,这已经是树莓派基金会成立的第五个年头了,官方为了庆祝五周年,发布了一款新机种,称为 Raspberry Pi Zero W,即 Raspberry Pi Zero升级版,这里的W你可以理解为Wireless,也可以理解为WIFI。

Raspberry Pi Zero W 的基本规格与 Raspberry Pi Zero 相同,配备博通(Broadcom)出产的 ARM 架构的 BCM2835 处理器(1GHz)、512MB 的存储器。提供迷你 HDMI 接孔、Micro-USB On-The-Go 接孔、微型 USB 电源接孔、HAT 相容的 40 针接头;在无线方面,采用的是与 Raspberry Pi 3 相同的赛普拉斯 CYW43438 无线芯片,以提供 802.11n 无线局域网和蓝牙 4.0 连接。

Continue reading

使用node-red快速构建物联网应用

一、什么是Node-Red?

Node-Red是由IBM创建的开源项目,它是一个用来实现物联网的可视化编辑器,它旨在让开发人员更加专注物与物的连接,避免纠缠于繁琐的代码,它可以运行在大多数linux平台上,包括但不局限于树莓派这样的廉价linux主机。

系统由一个一个的“NODE”构成,每个“NODE”可以提供不同的功能,你可以通过拖拽,连线来组成一个完整的流程。用来构建一个通常意义上的物联网应用。

下图演示了一个将cpu温度上传到IBM watson物联网平台的过程,是不是很简单呢?我们会在本文中介绍详细的实现过程。

 

Continue reading

MicroPython:擦除开发板的FLASH

在平常使用MicroPython for ESP8266的过程中,经常有同学反应,我的程序写错了或者其他一些原因导致开发板无法正常启动,我们可以通过擦除Flash,然后重新烧写固件的方式尝试让开发板重新启动。
我们使用esptool这一工具,对开发板进行操作,这个工具有很多功能,我们今天只使用它来擦除flash,实际上它经常用来更新固件:
我们首先安装程序:
sudo git clone https://github.com/themadinventor/esptool
查看当前目录,会出现一个名为esptool的文件夹,进入该文件夹,输入以下命令安装:
sudo python setup.py install
如果在安装过程中卡住了,可以CTRL-C重试。
安装好以后就可以试用了,我们将板子连接电脑,就绪后,使用以下命令:
sudo esptool.py --port /dev/ttyUSB0 erase_flash
等出现下图所示的那样,就说明完成了.

Continue reading

MicroPython:将开发板连入物联网云平台

MicroPython和一般的python一样,也有很多第三库,多亏了这些类库,使得我们能使用少量语句,就可以完成其他语言大量代码才能完成的工作,大家可以到 www.github.com/micropython/micropython-lib , 查看,下载这些类库,使用工具传到板子上,一个import 就可以使用了。

本次,我们使用搭载ESP8266模块的MicroPython开发板,导入了umqtt.simple.py模块,该模块是对MQTT协议的封装,我们使用MQTT协议,接入中国移动ONENET物联网平台,我们的目的是在物联网平台上发送命令,控制开发板上自带的LED,我们发送‘on’,使得LED亮起,发送‘off’使得LED熄灭。

Continue reading

MicroPython:开发板的模拟I/O操作

ADC:

模数转换(ADC)是一个常见的单片机外设,它能将模拟的电压值转换为二进制数据,它非常适合用来读取传感器的物理值,一般的传感器经过一些电路的转换就可以将生活中的物理量转化为电信号,从而被单片机这样的控制设备读取.

对于MicroPython,感谢乔治-达明(Damien George)做了大量的工作,使我们只用使用一条Python语句就可以控制ESP8266的各种外设,值得注意的是MicroPython支持很多芯片,ESP8266只是其中之一而每种芯片的特性是不同的,拿ADC来说:

ESP8266的ADC是十位精度的,并且读取的电压值最大不能超过1v,如果电压值过大很有可能会损坏开发板.

官方出的Pyboard,使用的是STM32芯片,它的ADC是12位精度的并且能读取的最大电压值是3.3v.

下面我们将演示如果读取ADC的值:

import machine
adc = machine.ADC(0)
adc.read()

Continue reading

MicroPython:导入第三方模块

Python语言之所以如此受欢迎原因之一就是由于他有许多第三方包和类库,大大简化了编程难度,MicroPython也是如此,对于MicroPython自带的诸如OS,sys,time等我们只需要一个import就可以很轻松的将其导入,但是如果使系统不存在的模块就需要我们自己将其导入进去了。
本文探讨将包导入到开发板的方法,抛砖引玉,如果有意见或建议可以到下方评论区留言或者到论坛发帖。
就像普通的python版本一样,MicroPython也支持直接import脚本,我们可以自己编写一个.py脚本文件,然后传入开发板。
下图演示了,将自己的代码文件传入开发板的过程:

Continue reading