280 likes | 290 Views
Computer System Laboratory. Lab9 - Sensor Network. Experimental Goal. Learn how to establish a simple sensor network (SIOTAS) on STM32F207. Environment. Host System Windows XP Build System IAR Embedded Workbench + Ubuntu 8.04 Target System PTK development board (STM32F207) Software
E N D
Computer System Laboratory Lab9 - Sensor Network / 28
Experimental Goal • Learn how to establish a simple sensor network (SIOTAS) on STM32F207. / 28
Environment • Host System • Windows XP • Build System • IAR Embedded Workbench + Ubuntu 8.04 • Target System • PTK development board (STM32F207) • Software • SQL Agent • Prepared Database • mCloud Portal • MySQL Connector ODBC • mCloudAppClient • PTK Examples Version 2 • You can find all software on HERE. / 28
Case Study – SIOTAS • We would like to build a sensor network for the elders. • A gateway device is used to collect data from node devices by using Zigbee. • All the sensing data will be sent to a server and recorded in database. • We can use a browser to monitor the history of data and graphs. Sensor Devices Client Side node device gateway device Server Side / 28
Sensor Devices of SIOTAS • We use STM32F207 as the base of each device. • Gateway Device • Collect all the data from other sensors, and send them to the server. • Lighting Device • Detect the current value of temperature and luminance flux, and turn on the light when it is dark. • Bathroom Device • Detect the movement of users and record user in/out events. • Entrance Device • Detect the door whether it is open, and record events of user entrance. • User can go indoor/outdoor by using RFID. • Activity Device • Detect the heart beat rate and calories consumption. / 28
Server Side of SIOTAS • We would establish LAMP environment. • LAMP means Linux, Apache, MySQL, and PHP. • Create a website for monitoring and analyzing. • Design a database for data captured by sensors. / 28
Table Schemas • data_block • This is used to record continuous data. • Data will store into a file and record the filename in database. • data_feed • This is used to record intermittent data. • The data will be stored into value defined by the schema. • For detailed description, please refer to the document. / 28
Install VirtualBox • Please download “VirtualBox” from https://www.virtualbox.org/ or course website. • Install VirtualBox. • Using default settings is fine. • Note that the network will be disconnected temporarily during the installation. • The related networking drivers should be installed. / 28
Create a Virtual Machine in VirtualBox (1/2) • Step 1: click “新增(N)”in “Oracle VM VirtualBox管理員”. • Step 2: create a Linux Ubuntu (32 bit) virtual machine (VM). • The size of memory needs at least 512 MB. • The size of disk needs at least 20 GB. • Step 3: add an additional network adapter to the VM. • “設定值(S)” “網路” “介面卡 2”“啟用網路卡(E)” • “附加到(A)” = “「僅限主機」介面卡” / 28
Create a Virtual Machine in VirtualBox(2/2) • Step 4: download Ubuntu 8.04 from course website. • Step 5: start your virtual machine and choose the Ubuntu image file for booting from CD/DVD. • “裝置” “CD/DVD 裝置” “選擇虛擬 CD/DVD 磁碟檔案” • Step 6: install Ubuntu 8.04. • English version is more stable. • Change time zone to “Asia” “Taipei”. • When finishing installation, press “ENTER” to reboot. • Please remember the account <user name>to login Linux. • Tips: • To uncaptured the keyboard and the mouse from virtual machine to Windows XP, please press the host key, right ctrl key by default. / 28
Install Drivers in Virtual Machine • Step 1: open a terminal in Ubuntu 8.04. • “Applications” “Accessories” “Terminal” • You can execute commands with root privilege by typing “sudo<command>”. • E.g., % sudomkdir/etc/test • Step 2: install guest additions in Ubuntu 8.04. • “裝置” “插入 Guest AdditionsCD 映像…” • Execute the script in Ubuntu 8.04. • % sudo /media/cdrom/VBoxLinuxAdditions.run • Step 3: restart Ubuntu 8.04. • % sudo reboot • Tips: • After complete installation of guest additions, you can also share clipboard between Windows XP and Ubuntu. • In VirtualBox: • “機器”“設定值”“一般”“進階” • Change the setting of “共用剪貼簿”from “停用”to “雙向”. / 28
Set Network Environment • Step 1: bridge the two network LAN, “VirtualBox Host-Only Network” and “區域網路” which connects STM32F207, together. • Step 2: set IP address of the bridge on Windows XP to configure LAN environment. • IP address = 192.168.0.101 • Netmask = 255.255.255.0 • Step 3: set IP address on Ubuntu. • % sudonano /etc/network/interfaces auto lo iface lo inetloopback auto eth0 iface eth0 inetdhcp auto eth1 iface eth1 inet static address 192.168.0.10 netmask 255.255.255.0 • % sudo /etc/init.d/networking restart / 28
Change Apt Sources List • Unfortunately, Ubuntu 8.04 is now out of support and no longer receiving updates and security patches. There are repositories available at http://old-releases.ubuntu.com. • Step 1: update apt repositories. • % sudosed -i -e 's/tw.archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list • Be careful of the area which was set during the installation. If you chose the area other than Taiwan, you have to modify the command to the correct one. • You can type “man sed” to see more information. • Step 2: upgrade the sources list. • % sudo apt-get update / 28
Server Side Installation (1/2) • Step 1: install several packages. • % sudo apt-get install unzip • % sudo apt-get install apache2 • % sudo apt-get install mysql-server • You must use the predefined password “microtime” for root in the installation process. • % sudo apt-get install php5 • % sudo apt-get install phpmyadmin • Make sure you choose apache2 by SPACE key in the installation process. • % sudo apt-get install libmysqlclient15-dev • Step 2: modify the configuration of MySQL. • % sudonano /etc/mysql/my.cnf • bind-address = 192.168.0.10 • [mysqld] • plugin_dir = /usr/lib/mysql/plugin • Restart MySQL service: sudo /etc/init.d/mysql restart / 28
Server Side Installation (2/2) • Step 3: download sql-agent.tar.gz. • Step 4: install MySQL plugin lib_mysqludf_sys.so. • % sudomkdir /usr/lib/mysql/plugin • % sudomkdir /home/test0001 • % sudo tar zxvf sql-agent.tar.gz -C /home/test0001 • % sudocp /usr/lib/libmysqlclient.so.15 /home/test0001/libmysqlclient.so.18 • % cd /home/test0001/lib_mysqludf_sys • % sudo ./install.sh • Step 5: add some tasks to rc.local. • % sudonano /etc/rc.local cd /home/test0001 ./runme.sh • Step 6: rebootand check. • % sudoreboot • % ps-A / 28
Create a Database • Step 1: connect MySQL by a browser. • http://192.168.0.10/phpmyadmin • Step 2: import the prepared database. • “載入” “選擇檔案” mCloud-SIOTAS.sql “執行” • Step 3: create a new user. • “權限”“新增使用者” • 使用者名稱= imami • 主機 =任何主機 • 密碼 =imami • database for user =None • 整體權限=全選 / 28
Client Side Installation (1/3) • Install the website. • Step 1: download mCloud-Portal.zip. • % sudounzip mCloud-Portal.zip -d /var/www • % sudo chown -R www-data.www-data /var/www/mcloud • Step 2: check the website. • http://192.168.0.10/mcloud/ • Password is microtime / 28
Client Side Installation (2/3) • Install MySQL Connector. • Step 1: download mysql-connector-odbc-5.1.8-win32.msi. • “控制台” “系統管理工具” “資料來源 (ODBC)” • “系統資料來源名稱”“新增” “MySQL ODBC 5.1 Driver” “完成” • Data Source Name = MySQL-mCloud • Description = MySQL ODBC 5.1 driver • TCP/IP Server = 192.168.0.10 • Port = 3306 • User = imami • Password = imami • Database = imami • Step 2: Test the connection. • Click “Test”. / 28
Client Side Installation (3/3) • Install mCloud-AppClient. • Step 1: download and install mCloud-SIOTAS-setup-1.0.1-004.exe. • Step 2:download and decompress mCloud-SIOTAS-GW66-AppClient.zip • Drag and drop “mCloud-SIOTAS-GW66-AppClient.exe” to path “C:/Program Files/Microtime/mCloud”. • Override the file. • Step 3: execute mCloud-AppClient.exe. IP address should be “192.168.0.101” / 28
Gateway Device Settings (1/2) • Step 0: download PTK_Example. • Step 1: turn off the power. • Step 2: install Zigbee module (PTK-RF-ZB-ZB01). • Step 3: install LED module (PTK-MEMS-RTC). / 28
Gateway Device Settings (2/2) • Step 4: open the gateway project. • PTK_Example_v2/ePBB/Applications/Projects/PTK-STM32F207/EWARM-V6/Case_Study/MT_Case_SIOTAS-PTK/node_gateway/demo.eww • Step 5: modify configuration in app_cfg.h. APP_TCPIP_CFG_IF_IP_ADDR_STR = "192.168.0.100" APP_TCPIP_CFG_IF_MASK_STR = "255.255.255.0" APP_TCPIP_CFG_IF_GATEWAY_STR = "192.168.0.1“ • Step 6: modify constant values in app.c. static const MT_MCLOUD_SIGNAL_T gSignalConfig[] = { { MK_MID_SID(0x0001, 0x0000), // MID_SID "Light", // Name MCLOUD_DATA_UINT16, // DataType 0, // Type COM_TYPE_ZB, // ComType "Lighting_0001", // Paring "", // ShareLib … The 4 digits number is the last 4 digits of MAC address of Zigbeeof the node. / 28
Lighting Device Settings • Step 1: turn off the power. • Step 2: install Zigbee module (PTK-RF-ZB-ZB01). • Step 3: install LED module (PTK-MEMS-RTC). • Step 4: open the lighting project and download. • PTK_Example_v2/ePBB/Applications/Projects/PTK-STM32F207/EWARM-V6/Case_Study/MT_Case_SIOTAS-PTK/node_lighting/demo.eww / 28
Bathroom Device Settings • Step 1: turn off the power. • Step 2: install Zigbee module (PTK-RF-ZB-ZB01). • Step 3: install passive infrared sensor module (PTK-MEMS-PIR). • Step 4: open the bathroom project and download. • PTK_Example_v2/ePBB/Applications/Projects/PTK-STM32F207/EWARM-V6/Case_Study/MT_Case_SIOTAS-PTK/node_bathroom/demo.eww / 28
Entrance Device Settings • Step 1: turn off the power. • Step 2: install Zigbee module (PTK-RF-ZB-ZB01). • Step 3: install RFID module (PTK-RFID-EWTJ680). • Step 4: install reed switch module (PTK-MEMS-REEDSW). • Step 5: open the entrance project and download. • PTK_Example_v2/ePBB/Applications/Projects/PTK-STM32F207/EWARM-V6/Case_Study/MT_Case_SIOTAS-PTK/node_entrance/demo.eww / 28
Reset PAN ID of ZigBee • Step 1: turn on power. • Step 2: pressing Reset and KEY0. • Step 3: release Reset. • Step 4: release KEY0 after 2 seconds when hearing beep sound. / 28
Basic setup • We’re using two pieces of PTK for this laboratory, one as gateway and the other as device. • We don’t use the upper layer of PTK and we shall remove it from PTK for this laboratory. • Run the Ubuntu VM, and thus the sql-agent and listem_cmd up. • Connect gateway to host system via Ethernet. • Insert ZigBee module to gateway and device, and RTC module to device. • Turn gateway and device on; download project to boards respectively. • Run mCloud-SIOTAS-GW66-AppClient • Press Discover till you get an On-line Machine, and Edit to view its info; Our goal is to have a machine which is alive after pressing Refreshwithin DBMachine. • Go to http://192.168.0.10/phpmyadmin/->imami->machine;add a machine based on the info got above. You can view the existing one as an example. • Hint: Consider mCloud-SIOTAS.sql. • Reset the gateway and then device if you redo these steps; you need to have ‘1’ shown on 7-segment of the gateway after turning on the device before you can do monitoring. • Once it works, visit http://192.168.0.10/mcloud/, and now there should be a machine which is alive, too. • Then go to Online Monitoring->Control Panel. / 28
Exercise • Try to connect them all together and get a simple sensor network. • The goals are that: • You can monitor the light and temperature on the website. • You can use bathroom device and entrance device in advance. • Tips: • Opening phymyadmin and mCloud within host system is preferred. • Try rebooting the Ubuntu VM after making any change; it may help. • For more information, please refer to documents on the course website. / 28
Lab Requirement • Show that you can connect a gateway device and a lighting device, record the data into database, and also see the values on a browser. / 28