“第八课--MicroWRT SD卡/U盘使用”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
第61行: 第61行:
 
功能:POST随机数据到web平台(已提供POST接口)
 
功能:POST随机数据到web平台(已提供POST接口)
  
1. import httplib   
+
  1. import httplib   
2. import urllib   
+
  2. import urllib   
3. import time   
+
  3. import time   
4. import random   
+
  4. import random   
5.    
+
  5.    
6. url_platform = '11.4.31.195:9071'   
+
  6. url_platform = '11.4.31.195:9071'   
7.    
+
  7.    
8. path = '/WIFPa/ResourceData.xml/000100003f0cfd4a?ResourceID=1'   
+
  8. path = '/WIFPa/ResourceData.xml/000100003f0cfd4a?ResourceID=1'   
9. path_uploadservicedata = '/WIFPd/UploadServiceData/000100003f0cfd4a'   
+
  9. path_uploadservicedata = '/WIFPd/UploadServiceData/000100003f0cfd4a'   
10.    
+
  10.    
11. FORMAT = '%Y-%m-%dT%X'   
+
  11. FORMAT = '%Y-%m-%dT%X'   
12. params_xml1 = '<ServiceData><mwid>000100003f0cfd4a</mwid><datatime>' +time.strftime(FORMAT,time.localtime()) + '</datatime><Datapoints><value>'   
+
  12. params_xml1 = '<ServiceData><mwid>000100003f0cfd4a</mwid><datatime>' +time.strftime(FORMAT,time.localtime()) + '</datatime><Datapoints><value>'   
13. params_xml2 = '</value><num>1</num></Datapoints></ServiceData>'   
+
  13. params_xml2 = '</value><num>1</num></Datapoints></ServiceData>'   
14.    
+
  14.    
15. header = {'Content-type':'text/xml'}   
+
  15. header = {'Content-type':'text/xml'}   
16.    
+
  16.    
17.    
+
  17.    
18. # conn.request(method='GET',url=path)   
+
  18. # conn.request(method='GET',url=path)   
19. # while True:   
+
  19. # while True:   
20. conn = httplib.HTTPConnection(url_platform)   
+
  20. conn = httplib.HTTPConnection(url_platform)   
21. val = str(random.randint(1,100))   
+
  21. val = str(random.randint(1,100))   
22. print 'value',val   
+
  22. print 'value',val   
23. params_xml = params_xml1 + val + params_xml2   
+
  23. params_xml = params_xml1 + val + params_xml2   
24.    
+
  24.    
25. conn.request('POST',path_uploadservicedata,params_xml,header)   
+
  25. conn.request('POST',path_uploadservicedata,params_xml,header)   
26. resp = conn.getresponse()   
+
  26. resp = conn.getresponse()   
27. print resp.status,resp.reason   
+
  27. print resp.status,resp.reason   
28.    
+
  28.    
29. #  htmldata = resp.read()   
+
  29. #  htmldata = resp.read()   
30. #  print htmldata   
+
  30. #  print htmldata   
31. #  time.sleep(5)   
+
  31. #  time.sleep(5)   
  
 
运行程序,结果如下图所示:
 
运行程序,结果如下图所示:

2015年1月4日 (日) 07:28的版本

MicroWRT上没有提供SD卡的插槽接口,不过我们可以USB接口连连接外部的SD卡,当然玩家也可以使用USB存储设备。 本文主要通过一个例子来介绍如何使用SD卡,并在上面安装pyhon和mysql。由于出厂固件的原因, 在microWRT上安装需要较大空间的程序时,总是提示/overlay空间不足的错误,比如安装python时会有如下错误,如下图所示:

文件:Sd-1.jpg
SD Configuration

用命令查看时,其空间确实挺小的:

文件:Sd-2.jpg
SD Configuration

下面就来介绍如何用闪存卡来扩容。由于出厂固件已经有了usb驱动模块,所以一插上闪存卡就能识别了。

文件:Sd-3.jpg
SD Configuration

对SD卡的操作步骤想很简单,先格式化,再挂载,再配置opkg.conf使软件安装到其上。

1.格式化,操作步骤看下图所示。

文件:Sd-4.jpg
SD Configuration

2.挂载到/mnt/usb目录

文件:Sd-5.jpg
SD Configuration

3.修改/etc/profile及/etc/opkg.conf文件

文件:Sd-6.jpg
SD Configuration
文件:Sd-7.jpg
SD Configuration

4. 软件安装

4.1使用如下命令安装python。

opkg update
opkg -d usb install python

即把python安装到了卡中,/etc/profile修改环境变量保证能找到库和程序。

4.2 安装mysql

安装mysql的具体步骤,请参考如下连接:

http://www.right.com.cn/forum/thread-89216-1-1.html

由于我将mysql安装在了外挂SD卡上(U盘),还要修改它本身的配置文件。在/mnt/usb/目录下,打开etc/my.cnf, 修改数据目录和临时目录和基础目录,如图所示:

文件:Sd-8.jpg
SD Configuration

在创建默认的数据库时,即命令:mysql_install_db --force --basedir=/mnt/usb/usr,有一大堆的输出,可以参考。 注意貌似像my.cnf和mysqld都得在相应的/etc/和/etc/init.d目录下创建软链接;启动服务后,修改root密码,登陆后,如图所示:

文件:Sd-9.jpg
SD Configuration


下面用一个测试例子来验证安装的程序是否正确。 功能:POST随机数据到web平台(已提供POST接口)

 1.	import httplib  
 2.	import urllib  
 3.	import time  
 4.	import random  
 5.	  
 6.	url_platform = '11.4.31.195:9071'  
 7.	  
 8.	path = '/WIFPa/ResourceData.xml/000100003f0cfd4a?ResourceID=1'  
 9.	path_uploadservicedata = '/WIFPd/UploadServiceData/000100003f0cfd4a'  
 10.	  
 11.	FORMAT = '%Y-%m-%dT%X'  
 12.	params_xml1 = '<ServiceData><mwid>000100003f0cfd4a</mwid><datatime>' +time.strftime(FORMAT,time.localtime()) + '</datatime><Datapoints><value>'  
 13.	params_xml2 = '</value><num>1</num></Datapoints></ServiceData>'  
 14.	  
 15.	header = {'Content-type':'text/xml'}  
 16.	  
 17.	  
 18.	# conn.request(method='GET',url=path)   
 19.	# while True:   
 20.	conn = httplib.HTTPConnection(url_platform)  
 21.	val = str(random.randint(1,100))  
 22.	print 'value',val  
 23.	params_xml = params_xml1 + val + params_xml2  
 24.	  
 25.	conn.request('POST',path_uploadservicedata,params_xml,header)  
 26.	resp = conn.getresponse()  
 27.	print resp.status,resp.reason  
 28.	  
 29.	#   htmldata = resp.read()   
 30.	#   print htmldata   
 31.	#   time.sleep(5)  

运行程序,结果如下图所示:

文件:Sd-10.jpg
SD Configuration
文件:Sd-11.jpg
SD Configuration