你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32的IoT Notes打印机

[复制链接]
木木&点点 发布时间:2019-4-2 13:11
本帖最后由 点点&木木 于 2019-4-12 09:19 编辑
& K. E: w3 G7 V/ u" O( _
$ g/ {  M- T2 L; c4 R
“Zerynth IoT Notes打印机”试图为日常通信创建一个可移动的媒体。

9 J, K: d. n$ c, s

( R( G9 {% ?- S- O9 K+ U5 I9 p, S
1.jpg
0 b! i# [7 o  _. H3 u% S
7 X6 t/ _! }3 J% \/ }! B
这个项目中使用的东西
硬件组件
STM32 Nucleo ST Nucleo    ×     1      
Arduino      ×       1      
Adafruit热敏打印机    ×  1      
Adafruit CC3000 wifi屏蔽    ×  1      
容器    ×     1      

4 m( C+ Y) ?6 r9 k8 C! ~
: D# N* U6 K, v% S# k; Q/ H6 U- ?: C
手动工具和制造机器
钻头
钢锯
4 w; U" f1 z+ V2 |% ?* Q
“ Zerynth IoT Notes打印机”试图为日常通信创建一个可移动的媒体。

) j) X. h0 Y9 B- N
感谢Zerynth应用程序,您可以编写短信并将其发送到使用Zerynth Studio编程的小型热敏打印机,并通过微控制器和Wi-Fi芯片连接到网络。
, {$ L* \+ ]* w: \/ p

3 F( o- B, j6 a; \: V' e, u# T
第1步:为什么创建这个项目?

0 u1 I: t6 C! Z, s
2.jpg
物联网时代的技术压力

3 C1 G" u3 R2 B
我们始终颂扬物联网的优点和益处,梦想着一切都与网络相连并能与我们互动的未来。
/ o9 E8 V% B8 F6 W* L
然而,进一步扩大想象力并不难看出灾难情景,人类处于电子设备的枷锁之下,并且永远存在着一种通知焦虑。
! h- H4 P% T+ T* ?$ p& f' }- {
事实上,互联网和社交网络的发展已经“被迫”采用一种新的沟通方式,或许比以往任何时候都更有效,但肯定会更加紧张。

& U8 o7 x/ D7 u
由于电子设备传递的过多和同时的信息导致的“技术压力”的这一状况,甚至列在新的职业病中。
4 ~  z3 T; N8 I9 N6 @" N
由于与计算机,平板电脑,智能手机的连接和持续交互,经历了过多的信息和刺激造就了技术压力的受害者。

: s3 k) A/ R* ~+ |6 ~! j0 B. s
此外,通知表明某人或某事正在考虑我们。每当我们收到消息,电话或电子邮件,都让我们想迫切地看到它是什么,这导致我们兴奋和焦虑的状态。
1 Q9 d, b- A" L0 S' L! y3 J
那么我们如何才能保护我们免受技术压力?

2 |+ M& n8 t5 g) J' w& l( U
也许最极端,但肯定更有效的方法是技术禁食。即我们应该“关机”,注销。从这个背景出发,便有了基于STM32的IoT Notes打印机的这个项目的诞生!
2 Z* s& I: `0 D4 k" }- G$ O) L
1 Y4 S( Q$ z  Z/ f7 n. W0 @6 y
第2步:Zerynth IoT Notes打印机
2 ]% P# ?" I$ L# p2 k
3.1.jpg
2 T6 I9 a% R* }0 z

; ^% s3 g3 J' d: ^# J, T# `$ S' H
3.2.jpg
- I& a! f/ e6 y* e0 E2 P
* X" O6 T7 |( ]6 l7 K. {' J1 n# g, D  j
& V/ {% U) h9 e+ N& B
  M9 s0 v0 M6 R4 X0 W
想象一下,如果所有日常通知(大多数无用且不必要的)被收集在一起,可能会被打印在纸上(黄金旧纸),并且仅在晚上或在地铁上时向我们显示,可以避免多少压力。
# I1 h* P7 `8 f' O7 S1 w
这样就可以充分利用“死时间”,而不会浪费宝贵的时间来延长智能手机的电池寿命。

8 q8 L) \. J& a7 c. U, h0 ^
Zerynth使这成为可能。“ Zerynth IoT Notes打印机”试图为日常通信创建一个可移动的媒体。感谢Zerynth应用程序,您可以编写文本消息并将其发送到使用Zerynth编程的小型热敏打印机,并通过微控制器和Wi-Fi芯片连接到网络。
4 _2 q8 O+ ]% g) H  e8 y
免责声明

7 R6 l1 Y. |& _, w; D& w2 r
好的,在这一点上,我应该成功地说服你了解项目的实用性。如果你仍然问:“但我为什么要打印从智能手机发送的短信?”,老实说,我能给出的最佳答案是:“这很有趣”。
2 Z% w4 ^1 p2 k) o
此外,通过这个简单的项目,我们可以展示Zerynth和Zerynth应用程序的潜力。

% ]/ i) A' V8 D+ N, J

8 b5 d( H6 q5 d* S  q" h2 ~: U

4 U' ^& L7 ^8 [9 W6 [. A
第3步:所需材料
; ^- X8 j( ~1 {0 S
4.1.jpg
ST Nucieo
% t: ?5 G$ m7 x: [; o5 _; z
4.2.jpg
Arduino
  _! `. H( ^$ e/ l

8 V1 t8 D5 |% u" ?- p% r
4.3.jpg
Adafruit CC3000 wifi屏蔽
3 t) K. l" H  ~! _8 Y" J! F* }
4.4.jpg

! g: r* a( o; z& K* R+ x5 [3 [* Y6 ^; _) c! }

1 m! F. R$ Y( `* q# |% Z
4.5.jpg
热敏打印机

+ R8 ?7 x. W& P  C
) ?( K* O1 @# R3 D- E. m+ K- \( I
该项目非常简单,只需要很少的元素。
  G  P* u, c1 S* V2 X- ]
首先,您需要Zerynth Studio (可在http://www.zerynth.com/zerynth-studio/获得)。
, [8 p7 t7 T% C$ q
Zerynth是一个易于使用的开发套件,用于为云和物联网准备的交互式对象的高级设计。借助Zerynth的创意,设计师和专业人员可以使用Python开发Arduino DUE,ST Nucleo,Particle Photon和大多数ARM 32位微控制器系列,使用典型的PC和移动编程范例和功能。

% ^9 O' X6 |' y$ v
在这个项目中,我们还将看到如何使用Zerynth应用程序(http://bit.ly/ZerynthApp ),它允许您通过移动设备控制“虚拟化”对象,而无需为每个项目开发特定的Android应用程序。

& `; \+ ^) K5 g6 J. S& @
转到硬件方面,对于这个项目,您需要Zerynth支持的其中一个板,例如ST Nucleo 或Arduino Due 。

" N2 m+ U+ p, H! [$ Q/ X
显然,你需要一个将电路板连接到互联网的元素,例如Adafruit的Wi-Fi屏蔽。但是,您可以使用任何其他适配器安装wifichipCC3000 Texas Instruments(ttp ://www.ti.com/product/cc3000 )。
; ?- k* }4 }* i
然后需要一个可以打印的设备。也称为收据打印机,它们就是您在ATM或杂货店看到的。该打印机非常适合与微控制器连接,您只需从微控制器获得3.3V至5V TTL串行输出,即可打印带有任何格式,条形码,位图图形甚至QR码的文本。

/ }2 v1 l' @5 Z( h
你还需要:
6 l; Z3 T6 V. n
非常常见的2.25“宽热敏纸
5伏到9伏稳压直流电源,可提供1.5安培电流
2.1毫米插孔适配器,可以连接到打印机的红色/黑色线
最后你需要一个漂亮的容器来放置它。重要的是它必须足够大以容纳板并且不难钻(注意你必须在顶部练习一个孔以容纳热敏打印机!)。

8 {3 v! D( @& y+ n# C7 W! o

  I# h' i* o0 c+ ?7 A2 o
第4步:组装电路

' i1 ~; S. d/ k% ^. a
5.jpg
" B  y  Z+ w* z  m$ u% s1 U
% v' m. b! x9 m# y  W5 |/ |
打印机的RX-TX引脚必须连接到微控制器上选择的串行端口的TX-RX引脚。代码中使用的串行端口(见下文)是“Serial1 ”,位于ST Nucleo 中Morphos接头的D24和D25 引脚。

8 N6 i( X: G+ c2 L0 n
& z/ y' h! h8 t0 N. e  A. N  \8 m
第5步:“虚拟化”打印机

% o5 G- ?* |! t' G
6.1.jpg
在VIPERA创建一个新项目
  d/ F! ~6 c( H7 R2 G* [  |4 {

1 w2 `% N, m+ R. v* ~$ {- t- Z
6.2.jpg
在VIPER中将项目添加到项目里
6.3.jpg
发送viperized对象
8 ]8 P# u8 x! N9 H3 |' t& q

% ^6 @- L; P  O5 j8 m9 u
6.4.jpg

+ L# D+ y( N* q$ f8 ]" n7 {( u7 S) W! D6 _9 H) G& ?; z
使用Zerynth非常简单!

  ]7 o; V, X! ^/ h& O. a0 y5 D
正如您在第一张图中所看到的,它只需要两个步骤:

7 o0 h  b: |, b. S% y' Q1 Q
点击“ 浏览项目” 按钮
点击“ 新项目”
现在只需使用项目标题和可选说明填写字段即可。Zerynth还允许您插入标签。这样可以更轻松地在搜索旧项目时过滤结果。

$ C1 b0 F* w( H7 i, s5 q' D
通过单击“创建”按钮创建项目后,我们将有一个空白文本编辑器来复制main.py中的代码,主要文件是用Zerynth/ Python语言编写的程序逻辑。

! ~0 A, T- E/ R1 ?
您需要使用要连接打印机的WiFi网络的名称和密码编辑SSID_WiFi 和PWD_WiFi 。
; R! t8 y# h1 k6 [8 f% l+ x; A
要与Zerynth App进行交互,您需要将另一个文件添加到项目中。它是一个HTML 文件,用于定义具有特定App的界面。
* d3 `# O  a& G+ s+ p- m" `
要向项目添加文件,只需单击“ 当前项目”,然后单击“将文件添加到项目”,最后在“创建”按钮上命名文件(“ template.html ”)后,如第二个图所示。

$ h' y! \: p9 G
我们将再次有一个空白字段来复制代码,该代码在HTML5(以及通过库jQuery Mobile )App 的界面中定义。

  K& W; N4 a: b. n2 o
为了更好地了解通过Zerynth应用程序开发接口的功能和理念,请参阅此地址中的示例:http ://www.zerynth.com/zerynth-app/
此时,您必须编译脚本并将其上载到电路板。打开打印机后,这将自动连接到预设网络。
6 a- k, m# S1 c' G3 c7 W, J( _. g4 O
然后打开Zerynth应用程序,它将搜索连接到网络的“虚拟化”对象,选择感兴趣的对象(在这种情况下,当然是“Zerynth物联网打印机备注”),您可以与打印机进行交互!

2 J  I' W8 x4 w% p0 Y# W
代码有很多注释,应该很容易理解。

1 \7 Q) _/ b( X1 J. F) E

' w( |+ b. _- T8 e! S4 R
第6步:添加更多功能

5 R0 d. ?5 H$ Y3 x; l* G
7.jpg
TOI盾

2 V7 W" [) V( f7 f1 t

" b; j- c: K! Z/ c; Q
有一个与Zerynth密切相关的硬件设备:Zerynth Shield:http ://www.zerynth.com/zerynth-shield/
3 @% ?! G1 F- I
它是一个多板屏蔽,提供一组传感器和执行器,包括用于触摸检测的传感器,红外LED,麦克风,光传感器和温度传感器。将ZerynthShield添加到打印机将扩展其功能,也许您可​​能能够创建一个非常有用的设备。试试怎么样?
) S, v( ]" d2 a6 `4 i& F
" c4 k. |2 l. s% x
& S- u1 t& Q) w# v8 Q

! D  Q/ p% q: R
原理图
8.jpg

, F, _$ _; o1 ]8 {7 \- l, P# H( x* V% F% q' L4 o; W! N/ U& n8 R

% E4 P( V( G5 b, U' K
代码

9 a& D% y) v$ c) Y: @  S6 S0 {
################################################################################
# VIPER IoT Notes Printer
#
# Created by VIPER Team 2015 CC
# Authors: G. Baldi, D. Mazzei
################################################################################
# import everything needed
import streams
from drivers.thermalprinter import thermalprinter
from wireless import wifi
from drivers.wifi.cc3000 import cc3000_tiny as cc3000
# and also import the viperapp module
from libs.apps import viperapp
p = thermalprinter.ThermalPrinter(SERIAL1,19200)
s=streams.serial()
# save the template.html in the board flashwith new_resource
new_resource("template.html")
# connect to a wifi network
try:
   cc3000.auto_init()
    print("Establishing Link...")
   wifi.link("SSID_WiFi",wifi.WIFI_WPA2,"PWD_WiFi")
    print("Ok!")        
except Exception as e:
    print(e)
def printMessage(msg):
   p.print_text("VIPER\n",justification="c", style="b")
   p.print_text("www.viperize.it\n\n",justification="c", style="b")
   p.print_text("Take me!\n",justification="c", style="b")
   p.print_text(msg)
   p.print_text("\n"*2+"*"*20+"\n"*3,justification="c")   
   
#### ViperApp Setup   
   
# :: Javascript to Python ::
# the following function will be calledwhen the template button is pressed
def show_message(msg):
    print(msg)
   printMessage(msg)
# configure the viper app with a name, adescripton and the template url
vp = viperapp.ViperApp("Viper IoT Notes Printer","Print yourmessage!","resource://template.html")
# everytime Javascript generates the event"showmsg" the function show_message is called
vp.on("showmsg",show_message)
# run the ViperApp!
vp.run()
# since vp.run starts a new thread, you cando whatever else you want down here!

4 f0 L: l- t' ?- l% i% L4 q3 f

; g- |5 ]  o+ e. k2 p, u; Y
收藏 1 评论1 发布时间:2019-4-2 13:11

举报

1个回答
Kevin_G 回答时间:2019-4-3 10:18:30
点赞

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版