|
本帖最后由 点点&木木 于 2019-4-12 12:10 编辑 通过LoraWan将数据从自行车/汽车柜台发送到亚马逊数据库的程序。可以从仪表板查看此数据。
硬件组件 stm32L072和LoRa × 1 介绍 我们为Vives Brugge的黑客马拉松做了这个项目,挑战来自西佛兰德省(比利时)和Infrax。他们已经有一个系统将数据从传感器传送到计算机,但为此他们必须使用USB棒,他们只能在3个月后获得数据。我们更改了微控制器,以便每5分钟将数据发送到数据库,以便可以轻松快速地查看数据。 我们的想法 我们必须制作一些更容易理解且具有(几乎)实时数据的东西,我们已经知道Infrax有一个我们可以使用的LoraWan网络。因此,选择LoraWan是一个合乎逻辑的决定。下一步是将它放在数据库上。第一个想法是使用sql-database。但如果我们使用亚马逊数据库,那么Infrax会更容易。这就是为什么我们使用亚马逊DynamoDB。 登录页面 这个项目将用于政府或城市,唯一可以看到数据的人是员工,这就是我们构建登录页面的原因。
页面本身
<?php error_reporting(E_ALL); require 'vendor/autoload.php'; use Aws\DynamoDb\DynamoDbClient; // Instantiate a client $client = new DynamoDbClient([ 'region' => 'eu-west-1', 'version' => 'latest', 'credentials' => [ 'key' => 'USER_KEY', 'secret' => 'SECRET_USER_KEY', ], ]); $result = $client->scan([ 'AttributesToGet' => ['dev_id','time','amountOfCars', 'direction'], 'ConsistentRead' => true, 'Limit' => 50, 'TableName' => 'hackathon_2018_elias', ]); ?> <script type="text/javascript"> google.charts.load('current', {'packages':['corechart']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable([ ['time', 'left', 'right'], <?php for ($i = 0; $i <= 18; $i= $i+2) { $n = $i +1; $time = $result->get('Items')[$i]['time']['S']; $left = $result->get('Items')[$i]['amountOfCars']['N']; $right = $result->get('Items')[$n]['amountOfCars']['N']; echo "['".$time."',".$left.", ".$right."],"; } ?> ]); var options = { title: 'PassTru Data', legend: { position: 'right' } }; var chart = new google.visualization.LineChart(document.getElementById('curve_chart')); chart.draw(data, options); } </script> 从LoraWan发送到数据库的数据。数据并不完美(时间有点特殊)。但我们只有三天,所以我们对结果感到满意。 模拟 对于模拟,我们制作了一个从红外LED读取数据的小端口
红外LED在我们的小“端口”
里面装有LoraWan模块的微控制器。 商业计划 我们还必须制定商业计划。我们使用了一些我们认为正确的数字。我们知道这些数字中的一些会更高一些,而有些会更低一些。由于我们只有这么短的时间,我们仍然认为它是准确的。
|
微信公众号
手机版