Uživatelské nástroje

Nástroje pro tento web


education:arduino

Toto je starší verze dokumentu!


Podpora pro projekty s Arduinem

Základní informace o Arduinu

používáme moduly Arduino Nano (které jsou fyzicky větší než Arduino Mini Pro)

http://arduino.cc
http://arduino.cc/en/Main/Boards
http://arduino.cc/en/Main/ArduinoBoardUno
http://arduino.cc/en/Main/ArduinoBoardNano

vývojové prostředí je k dipozici na adrese https://www.arduino.cc/en/Main/Software

Moduly původem z Číny používají USB-UART převodník CH340G, ovladač pro Windows lze stáhnout zde (verze 3.6.2021.12), případně na stránkách výrobce převodníku http://www.wch-ic.com/downloads/CH341SER_ZIP.html (anglická jazyková mutace stránek) a http://www.wch.cn/downloads/CH341SER_ZIP.html (čínská jazyková mutace; pozn. 02/2022 verze ovladače na čínských stránkách nemusí být vždy stejná jako na anglických, aktuálně je nejnovější verze pouze na čínských stránkách)

Oživení a ověření základní funkčnosti

Blikání LED

Seriová komunikace

Knihovny a příklady použití pro jednotlivé moduly

seznam dostupných modulů https://docs.google.com/spreadsheets/d/1eXgFiZbOv-FYLSS8f-wMkrtQ7ab7YqBjkbKZQvYHOg0/edit?usp=sharing
pozn.: pro zobrazení obsahu je třeba přihlášení přístupovými údaji ČVUT

BMP280

  • Senzor barometrického tlaku a teploty
  • Komunikace přes I2C, nebo SPI

» Více informací «

VL53L0X

  • Time-of-Flight senzor vzdálenosti
  • Komunikace přes I2C
  • Měření až do 2m

» Vice informací «

MPU-9250

  • Tříosý gyroskop, akcelerometr, magnetometr
  • Komunikace přes I2C, nebo SPI

» Více informací «

HTU21D(F)

  • Senzor teploty a vlhkosti
  • Komunikace přes I2C
  • Napájení 1.5 - 3.6V
  • Nastavitelné rozlišení
  • Vestavěné vyhřívání pro diagnostiku
  • Snímání napájecího napětí
  • Nastavitelné rozlišení

SparkFun_HTU21D_Breakout_Arduino_Library
Data sheet

HTU21D ARDUINO ESP32
I2C SDA A4 GPIO21
SCL A5 GPIO22

Výrobce doporučuje senzor po každém spuštění restartovat. Aktuální verze knihovny tuto funkci nenabízí, nicméně definuje příkaz SOFT_RESET. Následující kus kódu lze pro tento účel používat.

Wire.beginTransmission(HTU21D_ADDRESS);
Wire.write(SOFT_RESET);
Wire.endTransmission();

Knihovna obsahuje:
begin(&wirePort); - wirePort - I2C sběrnice
readTemperature(); - vrátí naměřenou teplotu [°C] jako float
readHumidity(); - vrátí naměřenou vlhkost [%] jako float
setResolution(resBits); - Slouží k nastavení rozlišení pro teplotu a vlhkost
writeUserRegister(val); - Slouží pro nastavení senzoru, val - 8 bitů nastavení
readUserRegister(); - Slouží pro přečtení nastavení senzoru

První a poslední bit určuje nastavení rozlišení. Bit 6 indikuje napájecí napětí menší něž 2.25V (End of Battery). Bitem číslo 2 se zapíná nebo vypíná vestavěné vyhřívání. Pokud se senzor zahřeje, měl by měřit vyšší teplotu a nižší vlhkost. Díky tomu lze automaticky ověřit funkčnost senzoru. Více informací je v datasheetu na straně 13.

ROZLIŠENÍ
Teplota Vlhkost
14b 12b
12b 8b
13b 10b
11b 11b
HTU21D.ino
#include <Wire.h>
#include "SparkFunHTU21D.h" // Kód je psaný pro verzi knihovny 1.1.3
 
HTU21D htu;
 
void setup() {
  Serial.begin(9600);
  Serial.println("\nHTU21D test");
  htu.begin(); // Spuštění komunikace se senzorem
  htuReset();  // Knihovna tuto funkci neobsahuje
  printInfo();
  /* Zápis do registru: vypnutí OTP, změna rozlišení na 8bitů pro vlhkost a 12bitů pro teplotu */
  htu.writeUserRegister(USER_REGISTER_DISABLE_OTP_RELOAD | USER_REGISTER_RESOLUTION_RH8_TEMP12);
}
 
void loop() {
  printInfo();
  delay(1000);
}
 
void htuReset() {
  Wire.beginTransmission(HTU21D_ADDRESS);
  Wire.write(SOFT_RESET);
  Wire.endTransmission();
}
 
void printInfo() {
  float temp = htu.readTemperature();       // Měření teploty
  float humd = htu.readHumidity();          // Měření vlhkosti
  uint8_t userReg = htu.readUserRegister(); // Načtení registru
 
  Serial.println("\n\nteplota\t\tvlhkost\t\tbattery\t\theater\t\tOTP reload\trozliseni\tregistr");
  Serial.print(temp); Serial.print("°C\t\t");
  Serial.print(humd); Serial.print("%\t\t");
  Serial.print(userReg & USER_REGISTER_END_OF_BATTERY ? "low" : "ok");  Serial.print("\t\t");
  Serial.print(userReg & USER_REGISTER_HEATER_ENABLED ? "on" : "off");  Serial.print("\t\t");
  Serial.print(userReg & USER_REGISTER_DISABLE_OTP_RELOAD  ? "disable" : "enable"); Serial.print("\t\t");
  switch (userReg & USER_REGISTER_RESOLUTION_MASK) { // rozlišení [teplota + vlhkost]
    case USER_REGISTER_RESOLUTION_RH12_TEMP14: Serial.print("14 + 12\t\t"); break;
    case USER_REGISTER_RESOLUTION_RH8_TEMP12: Serial.print("12 +  8\t\t"); break;
    case USER_REGISTER_RESOLUTION_RH10_TEMP13: Serial.print("13 + 10\t\t"); break;
    case USER_REGISTER_RESOLUTION_RH11_TEMP11: Serial.print("11 + 11\t\t"); break;
  }
  for(int i = 7; i >= 0; i--) Serial.print(bitRead(userReg, i)); // Výpis registru
}

Digitální teploměr DS18B20

Dallas Temperature Control Library http://www.milesburton.com/?title=Dallas_Temperature_Control_Library
praktické poznámky k OneWire sběrnici http://playground.arduino.cc/Learning/OneWire

příklady použití
nano_ds18b20.zip

Čidlo vlhkosti a teploty DHT11

podpora pro sensory DHT11 http://playground.arduino.cc/Main/DHT11Lib
poznámky k čidlům DHTxx http://playground.arduino.cc/Main/DHTLib

příklady použití
nano_dht.zip

Čidlo úrovně osvětlení BH1750

pozn.: modul označen GY-30
popis použití modulu BH1750 (s knihovnou BH1750) http://blog.venca-x.cz/arduino-mereni-svetelne-intenzity-s-bh1750/
popis použití modulu BH1750 (bez knihovny) http://blog.simtronyx.de/en/measurement-of-illuminance-with-a-bh1750fvi-breakout-board-gy-30-and-an-arduino-uno/

příklady použití
nano_bh1750.zip

Čidlo atmosférického tlaku BMP180

pozn.: modul označen GY-68, kompatibilní s BMP085
základní popis modulu https://laborja.wordpress.com/venta/arduino/gy-68-pressure-sensor-bmp180/
knihovna Adafruit BMP085 https://github.com/adafruit/Adafruit_BMP085_Unified
knihovna Adafruit sensors https://github.com/adafruit/Adafruit_Sensor

příklady použití:
příklad sensorapi z knihovny Adafruit BMP085

RTC DS1307

LCD

knihovna LiquidCrystal https://www.arduino.cc/en/Reference/LiquidCrystal
API pro znakové displeje http://playground.arduino.cc/Code/LCDAPI
knihovny pro I2C displeje (rozcestník pro různé I2C čipy) http://playground.arduino.cc/Code/LCDi2c
podpora připojení displeje k Arduinu (rozcestník pro různé typy displejů) http://playground.arduino.cc/Code/LCD

další poznámky
http://www.instructables.com/id/I2C-LCD-Controller-the-easy-way/
http://www.geeetech.com/wiki/index.php/Serial_I2C_1602_16×2_Character_LCD_Module
https://arduino-info.wikispaces.com/LCD-Blue-I2C

příklady použití
nano_lcd_test.zip, pozn. displeje s modrým podsvícením mají adresu 0x27 (obvyklejší adresa i u jiných displejů), displeje se zeleným podsvícením mají adresu 0x3F (méně obvyklá adresa), viz https://forum.arduino.cc/index.php?topic=369998.0

SD Card

knihovna SD Library https://www.arduino.cc/en/Reference/SD
poznámky ke komunikaci s SD kartou https://www.arduino.cc/en/Reference/SDCardNotes

příklady použití
nano_sd_card.zip

Servo

"Digitalni potenciometr"- rotacni enkoder

TV výstup (kompozitní video)

Senzory plynů MQ

Senzory plynů řady MQ
(např. MQ3 - senzor koncentrace alkoholu, MQ9 - senzor koncentrance hořlavých plynů atd.)

příklady použití
gas_sensor_mq.zip

další informace
http://playground.arduino.cc/Main/MQGasSensors
https://www.mysensors.org/build/gas

Senzor osvětlení - Flying Fish

PIR Senzor

Převodníky úrovní

Přenos a záznam dat do PC

Arduino lze použít jako jednoduchý měřící systém k PC nebo tabletu. Na odkazu najdete program, který umožňuje číst, vizualizovat a ukládat data z Arduina. Je možné i řídít průběh měření. Komunikace s PC nebo tabletem probíhá přes USB kabel nebo BlueTooth.

Vývojové desky s WiFi rozhraním

Vývojové desky s procesorem ESP 8266 (např. desky Wemos D1 mini a NodeMCU)

instalace podpory desek s chipem ESP 8266 do Arduino IDE https://github.com/esp8266/Arduino

příklad použití
wemosd1mini_webserver.zip

Uvedený příklad použití vychází z příkladu zde. Odkazovaný příklad obsahuje kromě možnosti odesílat HTML stránku i možnost připojit se pomocí JSON a ukládat data Google scriptem do tabulky na Google Drive.

Vývojové desky s procesorem ESP-WROOM-32

instalace podpory desek s chipem ESP-WROOM-32 do Arduino IDE https://navody.arduino-shop.cz/navody-k-produktum/jednoducha-instalace-esp32-do-arduino-ide.html

pozn.: aktuální verze jádra jsou na adrese

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

původní adresu v konfiguraci Arduino IDE je potřeba přepsat, nikoli pouze doplnit novou

podpora pro práci s deskami s ESP 8266 a ESP 32

Další vzorové kódy

autor: Václav Langer
připraveno pro Workshop 2015, doposud neověřeno

arduino_examples.zip

education/arduino.1685343910.txt.gz · Poslední úprava: 2023/08/18 12:36 (upraveno mimo DokuWiki)