Giter VIP home page Giter VIP logo

seminariot's Introduction

Bezpečnost vestavěných systémů - Seminář pro studenty SŠ "IT a bezpečnost"

Prezentace

Google Slides Prezentace ze cvičení

Cvičení

Google Docs Zadání cvičení

V tomto demu si postupně naprogramujete jednoduchý IoT modul, který bude snímat teplotu vzduchu pomocí čidla na shieldu, tuto teplotu odesílat na server a podle pokynů obdržených ze serveru rozsvěcovat LED (v demu jsou pokyny generovány náhodně, bez ohledu na naměřenou teplotu).

Abychom získali skutečný systém pro regulaci vytápění, stačí místo LED připojit například relé pro spínání kotle nebo serva pro regulaci ventilů topení a na serveru doplnit řídicí logiku a případnou agregaci dat z více senzorů (např. snímače vlhkosti, předpověď počasí na internetu a další).

Wemos D1 mini budeme programovat pomocí Arduino IDE s příslušnými rozšířeními.

Kostra programu

Připravili jsme pro vás kostru programu, do které budete doplňovat vlastní kód. Obsahuje definice potřebných proměnných a knihoven.

/***
   Snimani teploty pomoci ESP8266
   Sprava dalsich desek: http://arduino.esp8266.com/stable/package_esp8266com_index.json
   Deska: WeMOS D1 & D1 mini
   Zapojeni GPIO pinu:
	   5 - Dallas DS18B20
	   4 - LED1
	   0 - LED2
	   2 - LED3
*/

const int DS18B20 = 5;
const int led1 = 4;
const int led2 = 0;
const int led3 = 2;

// knihovna pro komunikaci po sbernici OneWire
#include <OneWire.h>

// knihovna pro praci s teplotnim cidlem
#include <DallasTemperature.h>

// knihovna pro praci s WiFi
// definuje globalni promennou WiFi
#include <ESP8266WiFi.h>

// knihovna pro komunikaci po HTTP
#include <ESP8266HTTPClient.h>

// jmeno site a heslo pro pripojeni
const char* ssid = "FITIOT1";
const char* password = "IOTFITVUTBR";

// adresa serveru
const String server = "192.168.0.100";

// vase ID
const int myId = 12;

// vytvoreni instance HTTP klienta z knihovny ESP8266HTTPClient
HTTPClient http;

// vytvoreni instance oneWireDS z knihovny OneWire
OneWire oneWireDS(DS18B20);

// vytvoreni instance senzoryDS z knihovny DallasTemperature
DallasTemperature senzoryDS(&oneWireDS);

void setup() {
  /* vas kod inicializace patri sem */
}

void loop() {
  /* vas kod patri sem */
}

Vaším prvním úkolem je doplnění vašeho ID do konstanty myId. Správnou hodnotu naleznete na titulní stránce tohoto textu.

Kostra dále obsahuje konstanty s adresou serveru a jménem a heslem WiFi sítě, ke kterým se modul připojí. Ty měnit nemusíte.

Vašim úkolem bude postupně doplňovat kód dvou funkcí:

  • funkce setup() se zavolá vždy pouze jednou a slouží k inicializaci
  • funkce loop() se volá neustále dokola (bez zpoždění) a měla by obsahovat hlavní funkcionalitu (v našem případě čtení teploty a komunikaci)

Poté, co si otevřete kostru v Arduino IDE, zkontrolujte, zda je zvolena správná deska a port:

  • v menu Tools -> Board by mělo být “Wemos D1 R2 & Mini”
  • v menu Tools -> Port by mělo být nejčastěji COM3 (modul se může objevit i pod jiným číslem, ale prakticky nikdy to není COM1)

Řešení

Abyste si mohli odzkoušet práci s deskou i doma, nabízíme vám vyřešené úkoly ke stažení. Můžete se podívat i na zdrojový kód jednoduchého nezabezpečeného serveru implementovaného pomocí PHP.

seminariot's People

Contributors

michalwiglasz avatar mrazekv avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.