IoT Holland

Jeg har været i Holland i 4 uger, hvor jeg har arbejdet med et IoT projektet og igennem denne her blog vil jeg fortælle om min oplevelser og hvad jeg har lært.

Lidt om mig

Før vi går i dybden, med alt det jeg har lavet og den slags, vil jeg fortælle noget om mig selv. Vi kan starte med mit navn, jeg hedder Johannes og er 17 år gammel, jeg går på Aarhus Tech som EUX datatekniker elev med speciale i programmering og på tidspunktet, hvor jeg skriver det her, har jeg været på skolen i let over 1.5 år og er lige nu i SKP.

Hvordan/Hvorfor

Som jeg har sagt går jeg i SKP, og når man går i SKP kan man komme ud og rejse gratis eller næsten, da skolen betaler for flyet og bolig, men du skal selv betale for mad og sjov.

 Skolen ordner også det med den anden skole hvor du skal gå i den tid hvor du er væk.

Det er jo alt sammen godt, men Hvorfor tog jeg af sted, væk fra mor og far, væk fra trygge rammer og væk fra Danmark især nu når ”racen” kendt som IT Elever er bange for sol og andre mennesker.

 Godt spørgsmål, mine grunde er for at blive bedre til engelsk, fordi alt foregår på engelsk hvis du ikke havde gættet det og det er en god måde at gøre det på, en anden grund til at jeg tog afsted er meget simpel, at jeg bare gerne vil rejse, det bliver ikke mere simpelt end det, men den vigtigste grund til at jeg tog af sted er at jeg vil godt finde ud af hvordan det er at arbejde i et andet land og hvordan det er arbejde med folk som du ikke har mødt før.

Projektet

Men nok mig du er ikke kommet her for at læse om mig men for at læse om projektet så hvad går det så ud på for det må jo være et stort projekt siden det tog en hel måned, vores opgave var at vi 4 elever to fra Holland og to fra Danmark skulle lave et system til ham her svampefaren som hedder Patrick, som ejer et firma da laver gourmet svampe (Kwekersgilde) fra kaffegrums.

 Hvad skulle det her så kaldt system kunne gøre? Det skulle gøre mange ting, men overordnede skulle det kunne tage oplysninger fra svampene, temperaturen, Co2 niveau og fugtigheden.

 De tre oplysninger skulle sendes til en server, hvorefter serveren skulle gemme de oplysninger, og finde ud af om de skulle Fx.

 Skrues op for varmen og så videre, så med andre ord skulle det her system kontrollere næsten alt da har noget med svampens levevilkår, og samle data om dem.

 Hvordan gjorde vi så det, vi klarede opgaven ved at tage en Raspberry pi, som vi så gjorde til en server.

 Den måde vi gjorde den til en server var ved at installere noget som hedder Domoticz, og hvad er det så? tænker du nok.

 Domoticz, er et program som du installer på en computer, og det er lavet til hjemme automatisering, sådan noget med sensorer, dataindsamling, sikkerhed, og den slags ting.

 Da vi havde fået Domoticz op og køre, tilsluttede vi nogen ESP´er, en ESP er en lille Wi-Fi chip, på ESP’en installerede vi noget som hed ESPeasy og det program gør at vi kan tilslutte ESP´erne til Domoticz.

 Men hvorfor skulle tilslutte nogle ESP´er til vores system?

Det er fordi at vi ikke bare kunne tilslutte nogle sensorer direkte til Domoticz, så derfor skulle vi have en mellem mand.

 Og så tilsluttede vi 3 sensorer til vær af ESP´erne, så 2 af ESP´erne havde 1 temperaturen sensor, 1 Co2 og 1 fugtigheds sensorer, og alt det kom ned i 2 små kasser.

 Vi skulle også sætte et netværk op, så vi kunne sende data til Domoticz, så det gjorde vi også fra bunden.

 Inde på Domoticz programmerede vi alt så temperaturen, Co2 niveau og fugtigheden passet til svampenes levevilkår og der efter var vi næsten færdige, vi skulle bare installer en app på Patricks mobil så han kunne se hvad da sker i hans farm slev når han ikke er der.

 Det er Ca. det vi lavede, dette er godt nok et forkort version af det for hvis jeg skulle skrive det hele ned vil jeg ikke være færdig nu.

Toggle Console (0)
No entries found.
Profiler (0 ms)
No entries found.
SQL (46 queries | 25.10 ms)
1.5559
SELECT name, val 
FROM www_wfconfig 
WHERE autoload = 'yes'
0.3290
SELECT `name`, `value` 
FROM `www_wfls_settings` 
WHERE `autoload` = 'yes'
0.2720
SELECT name, val, autoload 
FROM www_wfconfig 
WHERE name = 'detectProxyRecommendation'
1.1449
SHOW FULL COLUMNS 
FROM `www_wfblocks7`
0.4900
SELECT * 
FROM `www_wfblocks7` 
WHERE `IP` = '\0\0\0\0\0\0\0\0\0\0\"̺[' 
AND `type` = 7 
AND (`expiration` = 0 OR `expiration` > UNIX_TIMESTAMP())
0.2449
SELECT name, val, autoload 
FROM www_wfconfig 
WHERE name = 'wordfenceCentralConnected'
0.4570
SELECT option_value 
FROM www_options 
WHERE option_name = 'acm_server_settings' 
LIMIT 1
0.2770
SELECT name, val, autoload 
FROM www_wfconfig 
WHERE name = 'needsGeoIPSync'
0.5682
SELECT name, val, autoload 
FROM www_wfconfig 
WHERE name = 'detectProxyRecommendation'
0.2961
SELECT MAX(attackLogTime) 
FROM www_wfhits
0.2649
SELECT option_value 
FROM www_options 
WHERE option_name = 'wordfence_lastSyncAttackData' 
LIMIT 1
0.7670
SELECT *, CASE WHEN `type` = 3 THEN 0 WHEN `type` = 4 THEN 1 WHEN `type` = 7 THEN 2 WHEN `type` = 6 THEN 3 WHEN `type` = 5 THEN 4 WHEN `type` = 9 THEN 5 WHEN `type` = 8 THEN 6 WHEN `type` = 2 THEN 7 WHEN `type` = 1 THEN 8 ELSE 9999 END AS `typeSort`, CASE WHEN `type` = 3 THEN `parameters` WHEN `type` = 4 THEN `parameters` WHEN `type` = 1 THEN `IP` WHEN `type` = 9 THEN `IP` WHEN `type` = 5 THEN `IP` WHEN `type` = 6 THEN `IP` WHEN `type` = 7 THEN `IP` WHEN `type` = 2 THEN `IP` WHEN `type` = 8 THEN `IP` ELSE 9999 END AS `detailSort` 
FROM `www_wfblocks7` 
WHERE `type` IN (4) 
AND (`expiration` = 0 OR `expiration` > UNIX_TIMESTAMP()) 
ORDER BY `typeSort` ASC, `id` DESC
0.5500
SELECT *, CASE WHEN `type` = 3 THEN 0 WHEN `type` = 4 THEN 1 WHEN `type` = 7 THEN 2 WHEN `type` = 6 THEN 3 WHEN `type` = 5 THEN 4 WHEN `type` = 9 THEN 5 WHEN `type` = 8 THEN 6 WHEN `type` = 2 THEN 7 WHEN `type` = 1 THEN 8 ELSE 9999 END AS `typeSort`, CASE WHEN `type` = 3 THEN `parameters` WHEN `type` = 4 THEN `parameters` WHEN `type` = 1 THEN `IP` WHEN `type` = 9 THEN `IP` WHEN `type` = 5 THEN `IP` WHEN `type` = 6 THEN `IP` WHEN `type` = 7 THEN `IP` WHEN `type` = 2 THEN `IP` WHEN `type` = 8 THEN `IP` ELSE 9999 END AS `detailSort` 
FROM `www_wfblocks7` 
WHERE `type` IN (3) 
AND (`expiration` = 0 OR `expiration` > UNIX_TIMESTAMP()) 
ORDER BY `typeSort` ASC, `id` DESC
0.5929
SELECT * 
FROM `www_wfblocks7` 
WHERE `type` IN (1, 8, 9, 2, 5, 6) 
AND `IP` = '\0\0\0\0\0\0\0\0\0\0\"̺[' 
AND (`expiration` = 0 OR `expiration` > UNIX_TIMESTAMP()) 
ORDER BY `blockedTime` DESC 
LIMIT 1
0.6652
SELECT option_value 
FROM www_options 
WHERE option_name = 'can_compress_scripts' 
LIMIT 1
0.3109
SELECT option_value 
FROM www_options 
WHERE option_name = 'ure_role_additional_options_values' 
LIMIT 1
1.3599
SHOW FULL COLUMNS 
FROM `www_wflivetraffichuman`
0.3681
SELECT COUNT(*) 
FROM www_wflivetraffichuman 
WHERE IP = '\0\0\0\0\0\0\0\0\0\0\"̺[' 
AND identifier = 'F	V\nV|!' 
AND expiration >= UNIX_TIMESTAMP()
0.5162
SELECT * 
FROM www_users 
WHERE user_nicename = 'johannes-skytte-rasmussen' 
LIMIT 1
0.9809
SELECT user_id, meta_key, meta_value 
FROM www_usermeta 
WHERE user_id IN (145) 
ORDER BY umeta_id ASC
0.5679
SELECT SQL_CALC_FOUND_ROWS www_posts.ID 
FROM www_posts 
WHERE 1=1 
AND (www_posts.post_author = 145) 
AND www_posts.post_type = 'post' 
AND (www_posts.post_status = 'publish') 
ORDER BY www_posts.post_date DESC 
LIMIT 0, 4
0.1628
SELECT FOUND_ROWS()
0.3550
SELECT www_posts.* 
FROM www_posts 
WHERE ID IN (522)
1.2112
SELECT t.*, tt.*, tr.object_id 
FROM www_terms AS t 
INNER JOIN www_term_taxonomy AS tt ON t.term_id = tt.term_id 
INNER JOIN www_term_relationships AS tr ON tr.term_taxonomy_id = tt.term_taxonomy_id 
WHERE tt.taxonomy IN ('category', 'post_tag', 'post_format') 
AND tr.object_id IN (522) 
ORDER BY t.name ASC
0.4539
SELECT post_id, meta_key, meta_value 
FROM www_postmeta 
WHERE post_id IN (522) 
ORDER BY meta_id ASC
0.3221
SELECT COUNT(*) 
FROM www_wflivetraffichuman 
WHERE IP = '\0\0\0\0\0\0\0\0\0\0\"̺[' 
AND identifier = 'F	V\nV|!' 
AND expiration >= UNIX_TIMESTAMP()
0.8628
SELECT * 
FROM `www_yoast_indexable` 
WHERE `object_id` = '145' 
AND `object_type` = 'user' 
LIMIT 1
0.5670
SELECT COUNT(*) 
FROM www_posts 
WHERE ( ( post_type = 'post' 
AND ( post_status = 'publish' ) ) ) 
AND post_author = 145
0.6840
SELECT * 
FROM `www_yoast_indexable` 
WHERE `object_type` = 'home-page' 
LIMIT 1
0.3891
SELECT `ancestor_id` 
FROM `www_yoast_indexable_hierarchy` 
WHERE `indexable_id` = '34' 
ORDER BY `depth` DESC
0.4561
SELECT option_value 
FROM www_options 
WHERE option_name = 'https_migration_required' 
LIMIT 1
0.4382
SELECT t.*, tt.* 
FROM www_terms AS t 
INNER JOIN www_term_taxonomy AS tt ON t.term_id = tt.term_id 
WHERE t.term_id = 15
0.4060
SELECT tr.object_id 
FROM www_term_relationships AS tr 
INNER JOIN www_term_taxonomy AS tt ON tr.term_taxonomy_id = tt.term_taxonomy_id 
WHERE tt.taxonomy IN ('nav_menu') 
AND tt.term_id IN ('15') 
ORDER BY tr.object_id ASC
0.7901
SELECT www_posts.* 
FROM www_posts 
WHERE 1=1 
AND www_posts.ID IN (310,311,312,313,314,337,365,399,1162,1163,1185,1482) 
AND www_posts.post_type = 'nav_menu_item' 
AND ((www_posts.post_status = 'publish')) 
ORDER BY www_posts.menu_order ASC
0.9100
SELECT post_id, meta_key, meta_value 
FROM www_postmeta 
WHERE post_id IN (310,1163,311,312,313,314,1185,1162,399,365,1482,337) 
ORDER BY meta_id ASC
0.6239
SELECT www_posts.* 
FROM www_posts 
WHERE 1=1 
AND www_posts.ID IN (290,292,295,297,1183,76,362,1470,80) 
AND www_posts.post_type = 'page' 
AND ((www_posts.post_status = 'publish')) 
ORDER BY www_posts.post_date DESC
0.5350
SELECT post_id, meta_key, meta_value 
FROM www_postmeta 
WHERE post_id IN (1470,1183,362,297,295,292,290,80,76) 
ORDER BY meta_id ASC
0.3500
SELECT * 
FROM www_posts 
WHERE ID = 92 
LIMIT 1
0.2730
SELECT * 
FROM www_posts 
WHERE ID = 92 
LIMIT 1
0.2451
SELECT * 
FROM www_posts 
WHERE ID = 92 
LIMIT 1
0.2241
SELECT * 
FROM www_posts 
WHERE ID = 92 
LIMIT 1
0.2871
SELECT www_posts.* 
FROM www_posts 
WHERE ID IN (650)
0.2789
SELECT post_id, meta_key, meta_value 
FROM www_postmeta 
WHERE post_id IN (650) 
ORDER BY meta_id ASC
0.4940
SELECT www_posts.* 
FROM www_posts 
WHERE ID IN (640,646,651)
0.4301
SELECT post_id, meta_key, meta_value 
FROM www_postmeta 
WHERE post_id IN (640,646,651) 
ORDER BY meta_id ASC
0.7761
SELECT www_posts.*, CHAR_LENGTH(www_posts.post_title) post_title_length 
FROM www_posts 
WHERE 1=1 
AND www_posts.ID NOT IN (522) 
AND www_posts.post_type = 'encyclopedia' 
AND (www_posts.post_status = 'publish') 
ORDER BY post_title_length DESC
Templates
[0] => themes/busiprof/theme_setup_data.php
[1] => themes/busiprof/child_theme_compatible.php
[2] => themes/busiprof/functions/menu/busiprof_nav_walker.php
[3] => themes/busiprof/functions/menu/default_menu_walker.php
[4] => themes/busiprof/functions/woo/woocommerce.php
[5] => themes/busiprof/functions/font/font.php
[6] => themes/busiprof/functions/breadcrumbs/breadcrumbs.php
[7] => themes/busiprof/functions/scripts/script.php
[8] => themes/busiprof/functions/widgets/custom-widgets.php
[9] => themes/busiprof/functions/commentbox/comment-function.php
[10] => themes/busiprof/functions/customizer/customizer-pro-feature.php
[11] => themes/busiprof/functions/customizer/custo_general_settings.php
[12] => themes/busiprof/functions/customizer/custo_sections_settings.php
[13] => themes/busiprof/functions/customizer/customizer-archive.php
[14] => themes/busiprof/functions/customizer/customizer_recommended_plugin.php
[15] => themes/busiprof/functions/customizer-notify/busiprof-customizer-notify.php
[16] => themes/busiprof/functions/class-tgm-plugin-activation.php
[17] => themes/busiprof/author.php
[18] => themes/busiprof/header.php
[19] => themes/busiprof/content.php
[20] => themes/busiprof/sidebar.php
[21] => themes/busiprof/footer.php
Globals
$_GET = array (
);

$_POST = array (
);

$_COOKIE = array (
);

$_SESSION = array (
);

$_SERVER = array (
  'SERVER_SOFTWARE' => 'Apache',
  'REQUEST_URI' => '/author/johannes-skytte-rasmussen/',
  'ONECOM_DOMAIN_NAME' => 'ats-skpdatait.dk',
  'ONECOM_DOMAIN_ROOT' => '/customers/b/3/2/ats-skpdatait.dk/',
  'ONECOM_MEMORYLIMIT' => '2684354560',
  'ONECOM_CPU_SHARES' => '4096',
  'ONECOM_EXEC' => 'latest',
  'ONECOM_DIR_LAYOUT_VER' => '0',
  'CONTENT_LENGTH' => '0',
  'HTTP_CONNECTION' => 'close',
  'SCRIPT_NAME' => '/index.php',
  'QUERY_STRING' => '',
  'REQUEST_METHOD' => 'GET',
  'SERVER_PROTOCOL' => 'HTTP/1.1',
  'GATEWAY_INTERFACE' => 'CGI/1.1',
  'REDIRECT_URL' => '/author/johannes-skytte-rasmussen/',
  'REMOTE_PORT' => '38990',
  'SCRIPT_FILENAME' => '/customers/b/3/2/ats-skpdatait.dk/httpd.www/index.php',
  'SERVER_ADMIN' => 'support@one.com',
  'CONTEXT_DOCUMENT_ROOT' => '/var/www',
  'CONTEXT_PREFIX' => '',
  'REQUEST_SCHEME' => 'https',
  'REMOTE_ADDR' => '34.204.186.91',
  'SERVER_PORT' => '80',
  'SERVER_ADDR' => '10.27.3.13',
  'SERVER_NAME' => 'www.ats-skpdatait.dk',
  'SERVER_SIGNATURE' => '',
  'PATH' => '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin',
  'HTTP_X_VARNISH' => '414747548',
  'HTTP_ACCEPT_ENCODING' => 'gzip',
  'HTTP_X_ONECOM_HOST' => 'ats-skpdatait.dk',
  'HTTP_X_ONECOM_BRAND' => 'one.com',
  'HTTP_X_FORWARDED_PROTO' => 'https',
  'HTTP_X_ONECOM_FORWARDED_PROTO' => 'https',
  'HTTP_X_FORWARDED_FOR' => '34.204.186.91',
  'HTTP_HOST' => 'www.ats-skpdatait.dk',
  'HTTP_ACCEPT_LANGUAGE' => 'en-US,en;q=0.5',
  'HTTP_ACCEPT' => 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
  'HTTP_USER_AGENT' => 'CCBot/2.0 (https://commoncrawl.org/faq/)',
  'ENV_VCV_ENV_ADDONS_ID' => 'one.com',
  'ENV_VCV_TOKEN_URL' => 'https://wpapi.one.com/api/v1.0/plugins/visualcomposer/activate',
  'ONECOM_ONE_PHOTO_URL' => 'https://onephoto.one.com/domain_discover',
  'ONECOM_WP_ADDONS_API' => 'https://wpapi.one.com',
  'ONECOM_WEBSHOP_HOST' => 'webshop1.cst.webpod11-cph3.one.com',
  'HTTP_AUTHORIZATION' => '',
  'HTTPS' => 'on',
  'ONECOM_TMPDIR' => '/customers/b/3/2/ats-skpdatait.dk//tmp',
  'DOMAIN_NAME' => 'ats-skpdatait.dk',
  'ONECOM_DOCUMENT_ROOT' => '/customers/b/3/2/ats-skpdatait.dk/httpd.www',
  'DOCUMENT_ROOT' => '/customers/b/3/2/ats-skpdatait.dk/httpd.www',
  'REDIRECT_STATUS' => '200',
  'REDIRECT_ENV_VCV_ENV_ADDONS_ID' => 'one.com',
  'REDIRECT_ENV_VCV_TOKEN_URL' => 'https://wpapi.one.com/api/v1.0/plugins/visualcomposer/activate',
  'REDIRECT_ONECOM_ONE_PHOTO_URL' => 'https://onephoto.one.com/domain_discover',
  'REDIRECT_ONECOM_WP_ADDONS_API' => 'https://wpapi.one.com',
  'REDIRECT_ONECOM_WEBSHOP_HOST' => 'webshop1.cst.webpod11-cph3.one.com',
  'REDIRECT_HTTP_AUTHORIZATION' => '',
  'REDIRECT_HTTPS' => 'on',
  'REDIRECT_ONECOM_CPU_SHARES' => '4096',
  'REDIRECT_ONECOM_MEMORYLIMIT' => '2684354560',
  'REDIRECT_ONECOM_EXEC' => 'latest',
  'REDIRECT_ONECOM_DIR_LAYOUT_VER' => '0',
  'REDIRECT_ONECOM_TMPDIR' => '/customers/b/3/2/ats-skpdatait.dk//tmp',
  'REDIRECT_ONECOM_DOMAIN_ROOT' => '/customers/b/3/2/ats-skpdatait.dk/',
  'REDIRECT_ONECOM_DOMAIN_NAME' => 'ats-skpdatait.dk',
  'REDIRECT_DOMAIN_NAME' => 'ats-skpdatait.dk',
  'REDIRECT_ONECOM_DOCUMENT_ROOT' => '/customers/b/3/2/ats-skpdatait.dk/httpd.www',
  'REDIRECT_DOCUMENT_ROOT' => '/customers/b/3/2/ats-skpdatait.dk/httpd.www',
  'FCGI_ROLE' => 'RESPONDER',
  'PHP_SELF' => '/index.php',
  'REQUEST_TIME_FLOAT' => 1618694426.0070550441741943359375,
  'REQUEST_TIME' => 1618694426,
  'ONECOM_CLIENT_IP' => '34.204.186.91',
);

Close