Vegyes témakörök. 4. Hálózatkezelés micropythonnal, ESP8266 kártyán. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

Hasonló dokumentumok
MSP430 programozás Energia környezetben. Digitális szenzorok I2C kommunikációval

MSP430 programozás Energia környezetben. Kitekintés, további lehetőségek

Ismerkedés a Python programnyelvvel. és annak micropython változatával

3G185 router Li-ion akkumulátor Usb kábel Telepítési útmutató.

Ismerkedés a Python programnyelvvel. és annak micropython változatával

Vegyes témakörök. 5. Gagyiszkóp házilag hangfrekvenciás jelek vizsgálata. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia

FELHASZNÁLÓI KÉZIKÖNYV. WF-2322 Vezetéknélküli Hozzéférési Pont

Gyors Telepítési Útmutató N típusú, Vezeték Nélküli, ADSL2+ Modem DL-4305, DL-4305D

Bevezetés a mikrovezérlők programozásába: Digitális szenzorok

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Gyors telepítési kézikönyv

Szoftvertelepítési útmutató NPD HU

Vegyes témakörök. 11. Robotvezérlés WiFi kapcsolaton keresztül 2. rész. Hobbielektronika csoport 2018/2019. Debreceni Megtestesülés Plébánia


Netis vezeték nélküli, N típusú Router Gyors Telepítési Útmutató

A készülék fő egységei X1 X1 (kizárólag vezeték nélküli kamera esetében X1 X1 X1 X1 X1

1. Gyakorlat: Telepítés: Windows Server 2008 R2 Enterprise, Core, Windows 7

Netis Vezetékes ADSL2+, N Modem Router Gyors Telepítési Útmutató

Netis vezeték nélküli, N típusú, router

Gyors üzembe helyezési kézikönyv

Internetkonfigurációs követelmények. A számítógép konfigurálása. Beállítások Windows XP alatt

Rövid útmutató P2P IP kamerákhoz

Jelszóváltás a ludens gépen

TP-LINK Router Wireless M7350

Hálózati betekint ő program telepítése mobil telefonra. Symbian. alarm shop. Windows mobile Android IPhone Blackberry

PT1 Légnyomás távadó Felhasználói kézikönyv. v1.0 Előzetes

Broadlink RM mini 3 infra vezérlő integrálása az inels rendszerbe

Thomson Speedtouch 780WL

Foscam. FosBaby és C1 light beállítási segédlet. Okostelefon segítségével

Modbus kommunikáció légkondícionálókhoz

WLAN router telepítési segédlete

MobilKém. A szállító elérhetősége: Használati útmutató. SHX Trading s.r.o. V Háji 15, Praha oldal

loop() Referencia:

RUBICON Serial IO kártya

AC1750 intelligens WiFi router

Vodafone DSL Easy Box beállítása

Hobbi Elektronika. 1. Témakörök, célkitűzés, hozzávalók

Gyors üzembe helyezési kézikönyv

MSP430 programozás Energia környezetben. Az I/O portok kezelése

WLAN router telepítési segédlete

N900 vezeték nélküli, kétsávos Gigabit router

Csatlakozás a BME eduroam hálózatához Setting up the BUTE eduroam network

API tervezése mobil környezetbe. gyakorlat

Wi-Fi karóra kamera használati utasítás - CW-Y30

MSP430 programozás Energia környezetben. Az első lépések

WLAN router telepítési segédlete

OpenVPN kliens telepítése a RITEK Zrt. szervereinek eléréséhez.

iseries Client Access Express - Mielőtt elkezdi

Tanúsítványkérelem készítése, tanúsítvány telepítése Microsoft Internet Information szerveren

További lehetőségek. Nighthawk X6 AC3200 Tri-Band WiFi-router. R8000-as modell

ROUTER beállítás otthon

DataScope program SE/SP-300 távadókhoz HASZNÁLATI UTASÍTÁS

A csomag tartalma. R6100 WiFi útválasztó Telepítési útmutató

T Bird 2. AVR fejlesztőpanel. Használati utasítás. Gyártja: BioDigit Kft. Forgalmazza: HEStore.hu webáruház. BioDigit Kft, Minden jog fenntartva

Házi feladatok Szenzorhálózatok és alkalmazásaik

Webbox Telepítési útmutató

PTE-PROXY VPN használata, könyvtári adatbázisok elérhetősége távolról

WLAN router telepítési segédlete

The modular mitmót system. DPY kijelző kártya C API

Wi-Drive Használati útmutató

AR-721Ei-V2. Felhasználói és Telepítői Kézikönyv. 3 Panel szerelő lap (AR-721E-V2-X) Külső WG bemenet WG 26 / WG 34 Memória (RAM) Igen Tápfeszültség

TxBlock-USB Érzékelőfejbe építhető hőmérséklet távadó

GIRO GSM MODEM/VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Ross-Tech HEX-NET. A VCDS Mobile működéséhez csak egy böngésző, és WiFi csatlakozás szükséges.

Technikai tudnivalók a Saxo Trader Letöltéséhez tűzfalon vagy proxy szerveren keresztül

MSP430 programozás Energia környezetben. Analóg jelek mérése

ParkIT ANPR Kamera LetUgo Beléptető Rendszerrel

Bevezetés a mikrovezérlők programozásába: Kommunikáció

KÉPZETT VILLANYSZERELŐ SZAKEMBER

Bevezetés a mikrovezérlők programozásába: Fényérzékelés, fénymérés

Vodafone HomeNet Használati útmutató

(AR-721E-V2-X) AR-701B-X 16,000 32,000. Csatlakozó: CN18 TCP/IP Jelölés Láb Leírás. Csatlakozó: Leírás. Láb. Jelölés LA+ LB- Csatlakozó:CN1 RS-485

Router konfigurációs útmutató

ems2.cp04d [18010] Keriterv Mérnök Kft Programozható Automatikai állomás 14 multifunkcionális bemenet, 6 relé kimenet, 4 analóg kimenet DIGICONTROL

Hama WLAN USB Stick 54 Mb/s. Használati útmutató

Kommunikáció Androidon Mobilinternet Wifi

CĺM: Bogdana Šuputa Novi Sad Serbia

PTPi adatgyűjtő V1.5

M2M Pro3 450MHz LTE Telepítési útmutató - kivonat

DWL-G520 AirPlus Xtreme G 2,4GHz Vezeték nélküli PCI Adapter

ALTEAS One ARISTON NET

A B C D E F. F: 4. LAN port LED G: Táp csatlakozó H: 4. LAN port I: 3. LAN port J: 2. LAN port

SSL VPN KAPCSOLAT TELEPÍTÉSI ÚTMUTATÓ

Gyökértanúsítványok telepítése Windows Mobile operációs rendszerekre

KIRA. KIRA rendszer. Telepítési útmutató v1

1. Ismerkedés a Hyper-V-vel, virtuális gépek telepítése és konfigurálása

Vezeték nélküli IP kamera / Vezetékes kamera. (Windows operációs rendszerekhez)

C2000 Manager 1.02 Verzió Használati Utasítás

Dinamikus terhelés hatására létrejövő deformáció mérése. Dr. Siki Zoltán Moka Dániel BME Általános- és Felsőgeodézia tanszék

EW-7416APn v2 & EW-7415PDn

komplex megoldás a beléptetés minden területén: Beléptető, munkaidő nyilvántartó, parkoló és jegyértékesítő-beléptető rendszerek

Telepítési és használati útmutató 4 relés Wi-Fi hálózatról és Internetről vezérelhető relékártya, termosztát. Az elektronika bekötése, funkciói:

Rövid telepítési útmutató

Satel ETHM-1. Ethernet modul.

Vezetéknélküli technológia

TCP/IP kommunikációval működő változat, WEST6100+ (WEST4170+) hőmérsékletszabályozó műszerrel. 2. rész

Internet-hőmérő alapkészlet

Telepítés, újratelepítés több számítógépre, hálózatos telepítés Kulcs-Bér program

1. Témakörök, célkitűzés, hozzávalók. Hobbielektronika csoport 2015/2016

AirDrive Pro USB Keylogger Használati útmutató

Átírás:

Vegyes témakörök 4. Hálózatkezelés micropythonnal, ESP8266 kártyán 1

NodeMCU kártya ESP8266 CPU 80 / 160 MHz 4 MB ffsh 3,3 V jelszint és tápfeszültség MicroPythonbfn f GPIO számozásokft kell hfsználni! WiFi 2.4 GHz 1 fnflog input 13 digitfl I/O ebből fz UART Rx és Tx foglflt 2

USB soros kommunikáció A NodeMCU kártyf egy USB-soros átflfkítót is tfrtflmfz, melynek hfsználftához f megfelelő meghfjtó progrfmot telepíteni kell CP2012: Silabs usb-uart bridge VCP drivers CH340: CH341SER_EXE letöltés Windows esetén f Letöltés gombra kell kftintfni! Linux vfgy MAC esetén f CH341SER_LINUX.ZIP vfgy f CH341SER_MAC.ZIP állomány kiválfsztásf után kftintsunk! 3

MicroPython telepítése Esptool-lal A MicroPython frmwfre letöltése (esp8266-2011801511-v1.9.4.bin) Az Esptool csomfg telepítése (hf f gépünkön már vfn Python): pip install esptool Feltöltés/törlés előt kfpcsoljunk ffsh módbf f NodeMCU kártyát! (FLASH gomb lenyomvf, miközben megnyomjuk f RESET gombot) A ffsh memórif törlése (esetünkben COM9 portrf került fz eszköz) esptool.py --port COM9 erase_flash A frmwfre feltöltése (egy sorbf írjuk, csfk it nem fért ki!) esptool.py --port COM9 --baud 460800 write_flash --flash_size=detect 0 esp8266-20180511-v1.9.4.bin A feltöltés sebessége szükség esetén lehet kisebb (pl. 1151200) A ffsh mérete (esetünkben 4 MB) konkrétfn is megfdhftó, pl. --flash_size=4 formábfn 4

WebREPL drótnélküli terminálkapcsolat REPL Refd, Evflufte, Print Loop (f soros kfpcsolfton) WebREPL ugyfnez, WiFi kfpcsolfton keresztül (csfk érdekességként) Első flkflommfl engedélyezni és konfgurálni kell: import webrepl_setup A konfgurálás után csftlfkozhftunk f kívánt AP eszközhöz (f MicroPython-xxxxxx nevekben fz utolsó 6 kfrfkter f MAC cím utolsó 6 kfrfkterével egyezik meg. Az flfpértelmezet jelszó: micropython (fz utolsó kfrfkter nfgybetű) 5

WebREPL drótnélküli terminálkapcsolat Töltsük le f webrepl.html weblfpot (ofine hfsználftrf)! Link1: micropython.org/webrepl/ Link2: github.com/micropython/webrepl/frchive/mfster.zip Nyissul meg f webrepl.html lfpot egy böngészővel! Hf f számítógépet már csftlfkoztftuk fz ESP8266-t fwifi hálózftrf fkkor kftintsunk f Connect gombrf és fdjuk meg f korábbfn megfdot felhfsználói belépési jelszfvunkft! Sikeres belépés után f böngésző fblfkbfn pfrfncsokft írhftunk be forrás: lefrn.fdffruit.com/micropython-bfsics-esp8266-webrepl/fccess-webrepl 6

Esplorer az összkomfortos környezet Esplorer: Jfvf-bfn írt fejlesztői környezet ESP8266 fejlesztésekhez. vezetékes (USB UART) kfpcsolfton A Settings menüben válfszthftjuk ki f MicroPython módot Kftintsunk fz Open gombrf, mfjd kétszer fz RTS gombrf! 7

Esplorer - snippets Az Esplorer Snippet0 Snippet15 gombjfihoz rövid (néhány soros) progrfmokft rendelhetünk, melyekkel kipróbálhftjuk, vfgy beállíthftjuk f kártyát Az flábbi kód (Blink) f GPIO2 kivezetésre csftlfkozó (beépítet) LED-et villogtftjf négyszer: from machine import Pin import time led = Pin(2, Pin.OUT) for i in range(4): print('led ON') led.value(0) time.sleep(1) print('led OFF') led.value(1) time.sleep(1) print("all done.") 8 GPIO kezeléshez Késleltetéshez GPIO2 legyen kimenet i = 0,1,2,3 Kiírás GPIO2 lehúz (LED ég) 1 s késleltetés kiírás GPIO2 felhúz (LED nem ég) 1 s késleltetés kiírás, for ciklus lejárt

Programfejlesztés a Scripts ablakban A beírt kód soronkén, blokkonként, vfgy egészében átküldhető f mikrovezérlőnek, kipróbálhftjuk A kész kódot elmenthetjük, vfgy f ffsh memóriábf feltölthetjük Az flábbi példábfn egy WiFi hálózftpásztázás eredményét jelenítjük meg (forrás: github.com/cfsperp/esp8266_micropython_wif_scfn) 9

Csatlakozás a hálózathoz Az ESP8266 kártyf kliens végpont (stftion) és szolgáltftást nyújtó Access point (hozzáférési pont) is lehet. A network modul függvényei és metódusfi fz flábbifk szerint hfsználhftók (ssid és pfssword helyére fz fktuális értéket kell írni!) Az AP flfpértelmezet IP címe: 192.168.4.1 import network wlan = network.wlan(network.sta_if) wlan.active(true) wlan.scan() wlan.isconnected() wlan.connect('ssid', 'password') wlan.config('mac') wlan.ifconfig() ap = network.wlan(network.ap_if) ap.active(true) ap.config(essid='esp-ap') create access-point interface activate the interface set the ESSID of the access point create station interface activate the interface scan for access points check if the station is connected to an AP connect to an AP get the interface's MAC adddress get IP/netmask/gw/DNS addresses 10

Csatlakozás a helyi hálózatra Egy hfsznos függvény f helyi hálózftrf történő csftlfkozásrf (forrás: docs.micropython.org/en/lftest/esp8266/quickref.html ) def do_connect(): import network wlan = network.wlan(network.sta_if) wlan.active(true) if not wlan.isconnected(): print('connecting to network...') wlan.connect('essid', 'password') while not wlan.isconnected(): pass print('network config:', wlan.ifconfig()) Az első csftlfkozás után f ffsh memóriábfn rögzítésre kerülnek f csftlfkozás pfrfméterei, legközelebb futomftikusfn csftlfkozik fz ESP8266! 11

ntptime a pontos idő lekérdezése Az ntptime modul lehetővé teszi f pontos idő lekérdezését f megfdot szerverről. Egyútfl fz RTC-t is beállítjf ntptime.time() f 2000.01.01-től eltelt UTC idő, másodpercekben ntptime.settime() dátum és idő tuplet, pl. (2018, 11, 14, 13, 28, 3, 2, 318) import ntptime import time from machine import RTC rtc = RTC() ntptime.host="hu.pool.ntp.org" dummy=ntptime.settime() timeserver lekérdezése days = ['Hétfő','Kedd','Szerda','Csütörtök','Péntek',\ 'Szombat','Vasárnap'] for i in range(20): yy,mm,dd,wd,h,m,s,q=rtc.datetime() RTC lekérdezés print("%d-%02d-%02d %02d:%02d:%02d %s" %\ (yy,mm,dd,h+1,m,s,days[wd])) time.sleep(1) 2018-11-14 2018-11-14 2018-11-14 2018-11-14 2018-11-14... 14:20:12 Szerda 14:20:13 Szerda 14:20:14 Szerda 14:20:15 Szerda 14:20:16 Szerda RTC.datetime() dátum és idő tuplet: (yy,mm,dd,wd,h,m,s,ms) 12

Thingspeak IoT felhő Mi fz IoT? Internet of Tings, fzfz f dolgok Internetje. Különféle szenzorok, fdftgyűjtő eszközök küldhetnek fdftokft privát csftornákbf, melyeket f szerver tárol és megjelenít. Az fdftok publikus vfgy egyéni beállításbfn megtekinthetők, lekérdezhetők és fkár MftLfb-bfl vfgy számolótáblávfl elemezhetők, feldolgozhftók TM 13

Adatküldés HTTP protokollal Hf regisztráltunk, fkkor létrehozhftunk csftornákft, fmelyeknek egyedi fzonosítójf vfn. Például: thingspefk.com/chfnnels/341244 Csftornánként 1 8 mezőt defniálhftunk (pl. egy DHT22 szenzor esetén feld1 = hőmérséklet, feld2 = párftfrtflom) Regisztráláskor kfpunk egy vfgy több API kulcsot. Adftot csfk ennek birtokábfn tudunk beküldeni (xxxxxxx helyére fz API kulcs kell!) GET https://api.thingspeak.com/update?api_key=xxxxxxx&field1=adat1&filed2=adat2 A legegyszerűbben fz urequests könyvtári modullfl tölthetjük fel fdftfinkft, de fz flábbi primitív példf nem védet f hibák ellen: import urequests r = urequests.get('https://api.thingspeak.com/update?\ api_key=dvdxxxxxxxetd&field1=22&field2=44') print(r.text) r.close() hasból beírt adatok 14

Adatküldés HTTP protokollal Egy hfsználhftóbb változft progrfmlistájf it láthftó: from machine import Pin from dht import DHT22 import time import urequests DELAY = 80 d = DHT22(Pin(14)) D5 láb while True: d.measure() t = d.temperature() h = d.humidity() print('temperature = %.2f humidity = %.2f' % (t,h)) payload = "&field1="+str(t)+"&field2="+str(h) topic = 'https://api.thingspeak.com/update?api_key=*******' try: r = urequests.get(topic+payload) Saját API kód ide! print(r.text); r.close() except: print('failed') time.sleep(delay) 15

Adatküldés MQTT protokollal MQTT (Messfge Qeuing Telemetry Trfnsport) egy szfbványos TCP/IP protokoll A kommunikációhoz kell egy lokális vfgy globális szerver (f bróker ), fmelyhez f kliensek fdftközlésre (publish) vfgy fdftlekérésre (subscribe) irftkozhftnfk fel Kép forrása: www.electronicwings.com 16

Adatküldés MQTT protokollal Hfsználjuk f TingSpefk szervert MQTT módbfn! Ehhez fz umqt.simple modul MQTTClient objektumárf lesz szükség. A küldendő fdft f topic (fz fzonosítónk) és f payload (fz fdftok) import dht, machine, time from umqtt.simple import MQTTClient DELAY = 80 DHT22_PIN = 14 SERVER = "mqtt.thingspeak.com" client = MQTTClient("umqtt_client", SERVER) CHANNEL_ID = "34244" WRITE_API_KEY = "************" topic = "channels/" + CHANNEL_ID + "/publish/" + WRITE_API_KEY d = dht.dht22(machine.pin(dht22_pin)) DHTT22 a GPIO14 (D5) lábon while True: d.measure(); t = d.temperature(); h = d.humidity() print('temperature = %.2f' % t) print('humidity = %.2f' % h) payload = "field1="+str(t)+"&field2="+str(h) client.connect() client.publish(topic, payload) client.disconnect() time.sleep(delay) 17

Az eredmény megtekintése böngészőben 18

Az eredmény megtekintése applikációban TingView - TingSpefk megjelenítő (Google Plfy áruház) 19

Légnyomás mérése BMP180 szenzorral A Bosch BMP180 szenzor egy I2C periférif, fmely kész modul formájábfn is kfphftó (pl. Arduinohoz) Piezorezisztv nyúlásmérő, amely a nyomás hatására bekövetkező deformációt érzékeli Felhúzó ellenállások SDA SCL Bosch SensorTec BMP180 GND Nyomásmérés: 300 1100 hpa (9000 - -300m) Tápfeszültség: 1,8 3,6 V Áramfelvétel: 5 µa (1 mintavétel/s esetén) Kis zaj: 0.06hPa (0.5m) kisfogyasztású mód 0.02hPa (0.17m) nagyfelbontású mód Jellemzők: Hőmérő, I2C felület, gyárilag kalibrált VIN (+5V) Feszültségstabilizátor (3,3V) 20

A kalibrált értékek meghatározása A nyers fdftokból és f szenzor memóriájábfn tárolt kflibrációs fdftokból e képletekkel számolhftjuk ki f nyomást és f hőmérsékletet UT és UP a nyers hőmérséklet és nyomás adat oss oversampling (0 3) 21

Milyen magasan repül a repülő? Mihez képest? QFE A repülőtér saját tengerszint felet magasságához igazítot helyi légnyomás QNH Tengerszintre átszámítot helyi légnyomás QNE Nemzetközi egyezményes standard magassági légnyomás htp://hu.wikipedia.org/wiki/nyomásmagasság 22

Helyi légnyomás átszámítása tengerszintre QFE QNH átszámítás (az alábbiakban p = QFE, P0 = QNH) A tengerszintre átszámítot légnyomás (p0) f következő képletel számíthftó ki: Egyszerű(bb) közelítés: Debrecenben (kb. 120 m) 1440 Pf-t hozzáfdunk f mért légnyomáshoz. Vfgy flkflmfzzuk f p0 = p*1.0153311141556 összefüggést (fltitude = 120 m esetre) Tudnunk kell f helyi tengerszint feleti mfgfsságot (fltitude) és f szenzorrfl meg kell mérnünk fz fbszolút helyi nyomás értékét (p). 23

A magasság meghatározása Ahol p fz áltflunk mért nyomás (QFE), p0 pedig f tengerszinti nyomás (QNE) (pl. 1013.25 hpf) 24 A gyfkorlftbfn f légnyomás nemcsfk f mfgfsságtól, hfnem f meteorológifi viszonyoktól is függ (hőmérséklet, párftfrtflom, stb.)

A bmp180.py könyvtári modul bmp180.py egy micropython modul f Bosch BMP180 szenzorhoz. Helyhiány mift csfk f tfgfüggvények neveit soroljuk fel. A teljes forrásállomány it tflálhftó: github.com/micropython-imu/micropython-bmp180 Felhfsználási engedély: Te MIT License (MIT) Copyright (c) 2014 Sebastian Plamauer, oeplse@gmail.com def def def def def def def def A hőmérsékletet és f helyi nyomást méri, fmiből fz egyezményes nyomásmfgfsság is meghftározhftó compvaldump(self): makegauge(self): blocking_read(self): oversample_sett(self, value): oversample_sett(self): temperature(self): pressure(self): altitude(self): a számítás részeredményeit adja meg a nyers mérési adat kiolvasása Blokkoló olvasás túlmintavételezés beállítása túlmintavételezési beállítás kiolvasása Hőmérséklet kiszámítása nyomás kiszámítása Egyezményes nyomásmagasság meghatározása 25

Fájlok feltöltése az ampy programmal Először instfllálnunk kell fz adafruit-ampy csomfgot (feltételezzük, hogy f Python már telepítve vfn f számítógépünkön) pip install adafruit-ampy Fájlok feltöltése (pl. fz előző oldflon említet bmp180.py) ampy --port COM9 put bmp180.py Fájl kiolvfsásf és lementése: ampy --port COM9 get boot.py saved_boot.py Fájl eltávolításf: ampy --port COM9 rm main.py Fájlok listázásf: ampy --port COM9 ls 26

bmp180_demo.py ESP8266 esetén szofveres I2C vezérlést hfsználunk SDA = GPIO4 (D1), SCL = GPIO5 (D2) válfsztássfl Kiírjuk: hőmérséklet, helyi nyomás, mfgfsság, tengerszintre korrigált nyomás from bmp180 import BMP180 from machine import I2C, Pin import time i2c = I2C(scl=Pin(5), sda=pin(4), freq=100000) I2C busz konfiguálás bmp180 = BMP180(i2c) Példányosítás bmp180.oversample_sett = 3 Túlmintavételezés (0, 1, 2, 3) bmp180.baseline = 101325 Egyezményes tengerszinti nyomás print("temp Pressure Altitude Press. corrected") while True: temp = bmp180.temperature p = bmp180.pressure p0 = p*1.0153114576 Korrekció 128 m-es magasságra altitude = bmp180.altitude print("t=%.1f C QFE=%.2f hpa Alt=%.f m QNH=%.2f hpa" \ % (temp, p/100, altitude, p0/100)) time.sleep(5) 27

Futási eredmény A futási eredményekből jól láthftó, hogy f meteorológifi viszonyoktól függően fz egyezményes nyomásmfgfsság jelentősen eltér f tényleges mfgfsságtól (10-11 m, 128m helyet) 28