diff --git a/content/airrohr/hr/00-introduction.md b/content/airrohr/hr/00-introduction.md new file mode 100644 index 00000000..54848100 --- /dev/null +++ b/content/airrohr/hr/00-introduction.md @@ -0,0 +1,38 @@ +--- +title: Uvod +--- +> 🚧 Izgradite svoj uradi-sam senzor i postanite dio globalne opendata & civictech mreže. <br> Sa airRohr-om možete sami mjeriti onečišćenje zraka. <br> + + +<img src="../docs/airrohr/particulate-matter-air-quality-sensor-kit.jpeg" loading="lazy"/> + +### Popis za kupovinu +##### Senzor set +* [Pre-programirani senzor set](https://nettigo.eu/products/sensor-community-kit-sds011-bme280-english-language-harness-cable-edition) + +##### Pojedinačne komponente +* NodeMCU ESP8266 CPU/WLAN + - [via Aliexpress](https://www.aliexpress.com/wholesale?groupsort=1&SortType=price_asc&SearchText=nodemcu+v3+esp8266+ch340) + - [Chipoteka (HR)](https://www.chipoteka.hr/razvojna-ploca-joy-it-esp8266-sbc-nodemcu-wi-fi-modul-8208000828?search=8266) +* SDS011 Senzor kvalitete zraka + - [via Aliexpress](http://www.aliexpress.com/wholesale?groupsort=1&SortType=price_asc&SearchText=sds011) + - [Chipoteka (HR)](https://www.chipoteka.hr/senzor-kvalitete-zraka-joy-it-sen-sds011-za-fine-cestice-8208000832?search=sds011) +* BME280 6-PIN, Senzor temperature, vlažnosti i tlaka zraka + - [via Aliexpress](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20200308040440&SearchText=bme280+-5V+%2B3.3V) + - [via Nettgio](https://nettigo.eu/products/module-pressure-humidity-and-temperature-sensor-bosch-bme280) + - [via Berrybase](https://www.berrybase.de/sensoren-module/feuchtigkeit/gy-bme280-breakout-board-3in1-sensor-f-252-r-temperatur-luftfeuchtigkeit-und-luftdruck?c=92) + - [Chipoteka (HR)](https://www.chipoteka.hr/index.php?route=product/search&search=bme680) + - [Holex (HR)](https://www.holex.hr/elektronicki-kitovi-i-kutije-za-samogradnju/d-oky3259-2-modul-barometar-i2cspi-bme280-33v/) +* [Spojne žice](https://www.chipoteka.hr/spojne-zice-velleman-wjw012-150mm-zenski-kontakti-paket-8203000039?search=spojne%20zice) +* [USB kabel npr.: 2m Micro-USB](https://www.chipoteka.hr/kabel-ugreen-micro-usb-m-na-usb-20-a-m-2m-8944000731?search=micro%20usb) +* [Napajanje bilo koji USB kućni punjač ili power-bank](https://www.chipoteka.hr/smartphone-telefoni-i-oprema/punjaci-za-smartphone/kucni-punjac-nedis-wcham100abk-5w-micro-usb-crni-9150037394) +* [Vezice za kabele](https://www.bauhaus.hr/vezice-za-kabele-i-uvlakaci-kabela/elektro-material-vezice/p/22557209) +* fleksibilna cijev, po mogućnosti **ne** prozirna, promjer 6 mm, duljina cca. 20cm vrtni centar trgovina za akvarije +* [Zaštita od vremenskih uvjeta, HT koljeno PVC DN 7, 87°](https://www.bauhaus.hr/ht-cijevi/ht-koljeno/p/13625028) + + +<br> + +🙌 Odlično, odlučili ste kupiti dijelove online! +Nažalost, dostava može trajati od dana do tri tjedna. +Do tada uživajte u životu️. diff --git a/content/airrohr/hr/01-firmware.md b/content/airrohr/hr/01-firmware.md new file mode 100644 index 00000000..8a7c314d --- /dev/null +++ b/content/airrohr/hr/01-firmware.md @@ -0,0 +1,68 @@ +--- +title: Driver & firmware +--- + +Već smo pripremili firmware. Trebate samo instalirati upravljačke programe i uprogramirati svoj NodeMCU (ESP8266). + +Za komunikaciju s vašim NodeMCU (ESP8266) potrebni su vam usb2serial upravljački programi za vaš operativni sustav. + +Čipset za NodeMCU v3 obično je CH341, samo provjerite stražnju stranu vašeg NodeMCU (ESP8266) da biste pronašli neke tehničke informacije. + +Odaberite poveznicu koja odgovara operativnom sustavu vašeg računala. + +### Windows + +##### Upravljački programi za NodeMCU (ESP8266) V2 (CP2102) za Windows +* [Windows 10](https://www.silabs.com/documents/public/software/CP210x_Universal_Windows_Driver.zip) - Windows 10 bi trebao moći automatski preuzeti ove upravljački programe +* [Windows 7/8/8.1](https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip) - 32-bitna verzija - **ne** podržava 64-bitnu verziju OS-a + +##### Upravljački programi za NodeMCU (ESP8266) V3 (CH340/CH341) za Windows +* [Windows](http://www.wch.cn/downloads/file/5.html) - Windows 10 bi trebao moći automatski preuzeti ove upravljački programe + +##### Otpakirajte preuzetu datoteku za Windows +* za NodeMCU (ESP8266) V2: otvorite mapu CP210x i dvaput kliknite na aplikaciju CP210xVCPInstaller_x64 (ili x86) +* za NodeMCU (ESP8266) V3: otvorite mapu CH341SER i dvaput kliknite na aplikaciju SETUP. + +--- + +### MacOS + +##### MacOS upravljački programi +* [NodeMCU V2](https://www.silabs.com/documents/public/software/Mac_OSX_VCP_Driver.zip) +* [NodeMCU V3](http://www.wch.cn/downloads/file/178.html) + +##### Otpakirajte preuzetu datoteku za MacOS +* za V2: otvorite mapu CP210x i dvaput kliknite na aplikaciju CP210xVCPInstaller_x64 (or x86) +* za V3: otvorite mapu CH341SER i dvaput kliknite na aplikaciju SETUP. +* u slučaju poruke "No boards found": ponovno pokrenite Mac + +--- + +### Linux +Nije potrebno instalirati upravljačke programe. Čip bi trebao biti izravno podržan (provjerljivo pomoću dmesg) + +--- +### Programiranje Firmware-a +Podrška za više operativnih sustava: Windows, MacOS and Linux. + +* [airRohr Flashing Tool](http://firmware.sensor.community/airrohr/flashing-tool/) +* [Izvorni kod](https://github.com/opendata-stuttgart/airrohr-firmware-flasher/) + +povežite NodeMCU s računalom kratkim mikro-USB kabelom (odaberite jedan kraći od 1 metra, inače instalacija možda neće uspjeti). Odaberite `latest_en.bin` (ili inačicu na nekom drugom jeziku) i kliknite "Učitaj". +Pričekajte da se proces završi. Sada možemo sastaviti senzor. + +#### Linux: Postavite dozvolu izvršavanja programa +Nakon preuzimanja možda ćete morati postaviti dozvolu na izvršnu datoteku. To se može učiniti naredbom: `chmod o+x <download filename>` +<br> +Ako vidite poruku o pogrešci *"nije moguće spojiti na port /ttyUSB0"*, morate se dodati u *dialout* grupu: `sudo usermod -a -G dialout $USER` zatim se odjavite i ponovno prijavite. +<br> +Veliko hvala [Piotr, from Poland](https://dropbox.inf.re/), za tu pomoćnu informaciju 🙋♂️ + +#### MacOS: kako pokrenuti neprovjerenu aplikaciju +Kliknite desnom tipkom i otvorite aplikaciju nekoliko puta i uvijek potvrdite s "Otvori". + +Evo kratkog videa na Youtubeu 👉 https://youtu.be/1KZiP94TYjw + + + + diff --git a/content/airrohr/hr/02-assemble.md b/content/airrohr/hr/02-assemble.md new file mode 100644 index 00000000..c1fe37fa --- /dev/null +++ b/content/airrohr/hr/02-assemble.md @@ -0,0 +1,87 @@ +--- +title: Sastavljanje +--- + +> ⚠️ **VAŽNA NAPOMENA** +Prije sastavljanja instalirajte firmware! +Vidi __programiranje Firmware-a__ poglavlje. + +### NodeMCU v3 +Napomena: Naše se upute odnose na verziju 3 NodeMCU. To se može prepoznati po pinovima VU i GND +(vidi gore-lijevo na slici). + +<img src="../docs/airrohr/airrohr-wiring-sds011-bme280.jpg" style="width:40%; margin-top: 3em" loading="lazy"/> +<small>Copyright: roman-minyaylov, MIT License</small> + + +<img src="../docs/airrohr/nodemcu-v3-bme280.jpeg" style="margin-top: 1em" loading="lazy"/> + +##### Kada ste gotovi, to bi trebalo izgledati ovako + + +### Spojite SDS011 +Pinovi su numerirani s DESNA na LIJEVO, pazite da pri spajanju kabeli sjede na pinovima, jer većina spojnih žica također stane i između pinova. +```bash +SDS011 Pin 1 -> Pin D1 / GPIO5 +SDS011 Pin 2 -> Pin D2 / GPIO4 +SDS011 Pin 3 -> GND +SDS011 Pin 4 -> neiskorišten +SDS011 Pin 5 -> VU (NodeMCU v3) / VIN (NodeMCU v1,v2) +SDS011 Pin 6 -> neiskorišten +SDS011 Pin 7 -> neiskorišten +``` + +<br> + +💡 Možete pronaći popis [senzora koje podržava naš firmware](https://github.com/opendata-stuttgart/sensors-software/blob/master/airrohr-firmware/Readme.md) + + +### Zalemi BME280 +<img src="../docs/airrohr/solder-a-bme-280.jpeg" style="width:49%; padding-right: 0.5em" class="items-center" loading="lazy"/> +<img src="../docs/airrohr/solder-bme-280.jpeg" style="width:49%;" loading="lazy"/> + +Spojite strip pin konektor s BME280 pločicom. Zalemite ga sa stražnje strane. Razmaci između pinova su vrlo mali pa budite strpljivi i oprezni. + +Trik je u tome da vršak lemilice prislonite na pin, malo zagrijete i zatim lagano nanesete lem. + + +### Spojite BME280 +Pinovi su numerirani s LIJEVA na DESNO. +```bash +VIN -> Pin 3V3 (3.3V) +GND-> GND/G +SDA -> PIN D3 +SCL -> Pin D4 +``` + +### Sve skupa povežite + +##### Povežite NodeMCU i SDS011 +<img src="../docs/airrohr/tie-air-quality-sensor-together.jpeg" loading="lazy"/> +Upotrijebite kabelsku vezicu za povezivanje NodeMCU (ESP8266) i SDS011 senzora tako da Wifi antena bude odmaknuta od senzora + +##### Povežite fleksibilnu cijev +<img src="../docs/airrohr/sds011-with-tube.jpeg" style="width:49%; padding-right: 0.5em" loading="lazy"/> +<img src="../docs/airrohr/bme280-tied-to-tube.jpeg" style="width:49%;" loading="lazy"/> + +* Spojite fleksibilnu cijev na senzor SDS011 +* Upotrijebite drugu kabelsku vezicu za pričvršćivanje senzora temperature BME280 na cijev +* Provucite USB kabel kroz cijev. Montirajte SDS011 s NodeMCU okrenutim prema gore i ventilatorom prema dolje + +##### Umetnite senzor u cijev +* gurnite dijelove u cijev, tako da budu unutra uglavljeni +* USB kabel, savitljiva cijev i BME280 trebaju gledati prema vani +* Gurnite drugu cijev u prvu. + +<img src="../docs/airrohr/sds011-jammed-into-tube.jpeg" loading="lazy"/> + +##### Završna obrada +* Postavite senzor temperature na savitljivu cijev tako da bude na rubu cijevi. +* Odrežite fleksibilnu cijev na kraju PVC odvodne cijevi +* Po želji: otvorene krajeve cijevi možete pokriti finom mrežicom. Dakle, zrak može prolaziti, ali insekti ostaju vani + +<img src="../docs/airrohr/position-bme280.jpeg" loading="lazy"/> + +### Postavljanje +idealno mjesto bi bilo oko 1,5 do 3,5 metra iznad razine ulice i na dobro prozračenom mjestu. Međutim, to nije kod svih moguće učiniti i stoga su prilikom registracije potrebni podaci poput visine iznad tla i položaja prema ulici. + diff --git a/content/airrohr/hr/03-configure.md b/content/airrohr/hr/03-configure.md new file mode 100644 index 00000000..11877e98 --- /dev/null +++ b/content/airrohr/hr/03-configure.md @@ -0,0 +1,32 @@ +--- +title: Podešavanje +--- +### Potražite jedinstveni ID uređaja +1. Spojite uređaj preko USB kabela na napajanje. + +2. Mjerna stanica će se pokušati spojiti na konfiguriranu WiFi mrežu. Kod početnog podešavanja, veza neće uspjeti i stanica će pokrenuti vlastitu WiFi mrežu s imenom `Particulate Matter ID` , `Feinstaubsensor-ID` ili `airRohr-ID`. ID je **ChipID** (primjerice 13597771). **Zabilježite si ovaj broj jer će vam biti potreban kod registracije** + +3. Spojite se na WiFi mrežu koju je kreirala stanica putem vašeg računalu ili pametnog telefona. Zadana lozinka za ovu mrežu je 'airrohrcfg'. Pričekajte dok se veza ne uspostavi.<br>*Android*: Ako se veza odmah prekine, možda ćete morati deaktivirati opciju 'Smart network switch' pod 'Connections -> WiFi -> Advanced'. + +4. Otvorite preglednik i upišite [http://192.168.4.1/](http://192.168.4.1/). + +> ⚠️ **Napomena** Može biti potrebno nekoliko pokušaja da se NodeMCU poveže s kućnom WiFi mrežom. Budite strpljivi i isprobajte navedene korake nekoliko puta dok ne uspijete. Ako je podešavanje senzora uspjelo, WiFi mreža stanice i konfiguracijska stranica više neće biti dostupna pod ovim IP-om 192.168.4.1 + +### Podesite stanicu +1. Na stranici 'Configuration' unesite svoj SSID (naziv vaše kućne WiFi mreže), mrežni sigurnosni ključ (u sustavu Windows) ili WiFi lozinku. + +2. Ako koristite preporučeni senzor sitnih čestica (SDS011), nisu potrebne daljnje promjene konfiguracije. + +3. Pritisnite gumb 'Save configuration and restart". Stanica će se ponovno pokrenuti i više neće biti dostupna na ovaj način kada se poveže s vašom kućnom WiFi mrežom. + +<br> + +<img src="../docs/airrohr_config_initial.jpg" loading="lazy"/> + +<br> + +### Provjerite je li stanica ispravno podešena +Ako u prethodnom koraku osim konfiguracije WiFi mreže niste napravili nikakve druge promjene, senzor će sada početi snimati i učitavati podatke. Možete provjeriti radi li sve ispravno nakon otprilike 10 minuta odlaskom na sljedeće stranice. Na ovim stranicama potražite ChipID (u primjeru iznad 13597771). + + * [Sensor data](https://www.madavi.de/sensor/graph.php) + * [WiFi signal data](https://www.madavi.de/sensor/signal.php) diff --git a/content/airrohr/hr/04-register.md b/content/airrohr/hr/04-register.md new file mode 100644 index 00000000..b83335c6 --- /dev/null +++ b/content/airrohr/hr/04-register.md @@ -0,0 +1,17 @@ +--- +title: Registracija +--- + +### Otvorite korisnički račun + +Posjetite [devices.sensor.community](https://devices.sensor.community/) za otvaranje korisničkog računa i postanite član open data mreže. + + +### Registrirajte svoj uređaj +kada napravite račun i prijavite se, moći ćete registrirati svoj uređaj. Ispunite obrazac za registraciju svog uređaja. Odaberite Home -> (Login) - Sensors -> Register new sensor + +* ID senzora je ID čipa ESP8266 (NodeMCU) koji ste prethodno zabilježili +* vaša email adresa (neće biti objavljena) +* vaša adresa: ulica i kućni broj, poštanskim broj i grad. Kliknite na "Lookup entered address" da biste dobili koordinate lokacije (biti će zaokružene). Provjerite položaj na karti, promijenite ga ako je potrebno +* unesite osobni naziv senzora kako biste ih lakše razlikovali ako imate više senzora (kao vrt, senzor za mamu,...) +* okoliš stanice - npr. visina iznad tla, uz cestu, veliki promet, slobodno polje ili slično diff --git a/content/airrohr/hr/05-troubleshoot.md b/content/airrohr/hr/05-troubleshoot.md new file mode 100644 index 00000000..50bed08c --- /dev/null +++ b/content/airrohr/hr/05-troubleshoot.md @@ -0,0 +1,37 @@ +--- +title: Rješavanje problema +--- + +### Problemi kod prijenosa podataka? +EUnesite sljedeće u preglednik sa svojim podacima: +`https://api-rrd.madavi.de/grafana/d/GUaL5aZMz/pm-sensors?orgId=1&var-chipID=esp8266-[ID]` + +[ID] se također može pretraživati u polju za unos u gornjem lijevom kutu [https://api-rrd.madavi.de/grafana/d/GUaL5aZMz/pm-sensors?orgId=1](https://api-rrd.madavi.de/grafana/d/GUaL5aZMz/pm-sensors?orgId=1) + +* Je li senzor registriran putem [https://devices.sensor.community/](https://devices.sensor.community/) ai vidi li se senzor na karti? + * Je li razina WiFi signala u prošlosti bila slaba? + ovdje je evidencija signala na strani poslužitelja: `https://api-rrd.madavi.de/grafana/d/Fk6mw1WGz/wifi-signal?orgId=1&var-chipID=esp8266-[ID]` + + +### Problemi s USB kabelom? +* Provjerite napajanje: USB kabel +* Ronovno pokretanje (odspojite napajanje, npr. izvucite USB utikač) +* Je li WiFi konfiguracija u redu (senzor se spaja na konfigurirani WLAN) Ako nije: + * otvara li senzor WiFi pristupnu točku / AP (u prvih 2-7 minuta nakon ponovnog pokretanja)? + * Potražite `airrohr-[ID]` WLAN mrežu. Strpljenje, to može potrajati 1-2 minute nakon pokretanja. +* Provjerite na vlastitom routeru je li senzor prijavljen na mrežu, a zatim zapamtite IP adresu + * alternativno koristite "Discovery" u programu [flashtool](https://github.com/opendata-stuttgart/airrohr-firmware-flasher//) + * Ako da: spojite se na senzor putem IP-a s preglednikom `http://[ip-of-the-sensor]/`, sučelje bi se trebalo pojaviti + * ako ne: ESP ima problema, npr. nedovoljno napajanje, pokretanja u petlji i sl. +* Spojite USB na računalo i pogledajte zapisnik + * Pratite tekst na serijskom sučelju preko serijskog terminala (Postavke: baud 9600, 8N1) + * Linux: screen, minicom, cutecom; Windows: Tera Term; MacOS: screen, minicom, ... + * eventualno prikladni usb2serial drajveri su i dalje potrebni, vidi [https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen](https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen) + * Tamo biste trebali moći vidjeti što senzor radi (poruke za pokretanje, WiFi veza ili AP, mjerenje - tek nakon 3 minute) + +### Problemi s elektronikom? +* Izvadite elektroniku senzora iz kućišta i provjerite +* Ponovno provjerite/zamijenite napajanje + * treperi li ESP ubrzo nakon ponovnog pokretanja? + * SDS011: crveni LED/ventilator uključen nakon ponovnog pokretanja? + * ponovno provjerite/zamijenite kabele do senzora \ No newline at end of file diff --git a/content/dnms/hr/00-introduction.md b/content/dnms/hr/00-introduction.md new file mode 100644 index 00000000..f94e5aec --- /dev/null +++ b/content/dnms/hr/00-introduction.md @@ -0,0 +1,69 @@ +--- +title: Introduction +--- + + <div class="max-w-screen-xl mx-auto pb-5"> + <div class="p-2 rounded-lg bg-indigo-100 shadow-lg sm:p-3"> + <div class="flex items-center"> + <span class="p-2 rounded-lg bg-indigo-500"> + <svg class="h-8 w-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5.882V19.24a1.76 1.76 0 01-3.417.592l-2.147-6.15M18 13a3 3 0 100-6M5.436 13.683A4.001 4.001 0 017 6h1.832c4.1 0 7.625-1.234 9.168-3v14c-1.543-1.766-5.067-3-9.168-3H7a3.988 3.988 0 01-1.564-.317z" /> + </svg> + </span> + <div class="flex-wrap flex"> + <p class="pt-1 text-indigo-700 font-medium"> + Noise is in beta. Send questions to</p> + <a href="mailto:Noise@Sensor.Community" class="ml-1 font-medium underline text-white hover:text-yellow-600"> + Noise@Sensor.Community</a> + </div> + </div> + </div> +</div> + + +> 🚧 Build your DIY sensor and become part of the worldwide, opendata & civictech network. <br> With DNMS (Digital Noise Measuring Sensor) you can measure noise pollution yourself. + +<img src="../docs/dnms/dnms-noise-measuring-sensor-kit.jpg" style="display: block; margin: 1em 0" loading="lazy"/> + + +Check out the original instructions and former versions of the noise sensor on [Helmut Bitter's Github](https://github.com/hbitter/DNMS/tree/master/Manual). + +<br> + +That repository contains different setups to build the sensor with different kinds of board and PCBs. + +<br> + + There are two different kinds of setups: + +* a setup where the NodeMCU with some sensors (PM, temperature etc.) and the DNMS are separated. The PCBs are called AIRROHR V1.4 and DNMS - T4 V1.4 +* a combined version of the NodeMCU and DNMS on the same PCB: DNMS - T4+NodeMCU V1.4 + + Only the variant where the NODEMCU and DNMS are separated is described here. Have a look at Helmut's Github for the other variants! + + In this case, the connection between the NodeMCU and the DNMS can be as long as 10m. This is important because you need to find the right position for the DNMS to obtain accurate noise measurements. + +### Shopping list + +##### Single components +* [NodeMCU ESP8266 CPU/WLAN](https://www.aliexpress.com/wholesale?groupsort=1&SortType=price_asc&SearchText=nodemcu+v3+esp8266+ch340) +* [Teensy 4.0 development board](https://www.pjrc.com/store/teensy40.html). Other sellers: [EXPTECH](https://www.exp-tech.de/plattformen/teensy/9596/teensy-4.0-development-board), [Antratek](https://www.antratek.de/teensy-4-0), [PIMORONI](https://shop.pimoroni.com/products/teensy-4-0-development-board) +* [Digitales Mikrofon ICS-43434](https://www.tindie.com/products/onehorse/ics43434-i2s-digital-microphone/) +* ultra flexible silicone cables with a diameter of 0,15mm² (AWG 26) in 6 different colours +<br> +The DNMS (Digital Noise Measuring Sensor) can be combined with an airRohr PM-Sensor: + +* SPS30 fine dust sensor](https://www.sparkfun.com/products/15103). Other sellers: [TME](https://www.tme.eu/de/details/sps30/gassensoren/sensirion/1-101638-10/?brutto=1), [SOS electronic](https://www.soselectronic.de/products/sensirion/sps30-2-304234). The usual [SDS011 PM sensor](https://de.aliexpress.com/wholesale?catId=0&initiative_id=AS_20200813122806&SearchText=sds011) can be used as well. +* [BME280 6-PIN Version, temperature & humidity](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20200308040440&SearchText=bme280+-5V+%2B3.3V). Other sellers: [Nettigo](https://nettigo.eu/products/module-pressure-humidity-and-temperature-sensor-bosch-bme280), [Berrybase](https://www.berrybase.de/sensoren-module/feuchtigkeit/gy-bme280-breakout-board-3in1-sensor-f-252-r-temperatur-luftfeuchtigkeit-und-luftdruck?c=92) +* [Cable](http://www.aliexpress.com/wholesale?groupsort=1&SortType=price_asc&SearchText=Dupont+cable+20cm+female-female) +* [USB cable e.g.: flat 2m Micro-USB](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20200308040708&SearchText=micro+usb+flat+cable+2m) +* [Power supply USB](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20200308040834&SearchText=single+micro+usb+eu+power+supply) +* [Cable straps](https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20200308040852&SearchText=cable+straps) + +The PCBs and the weather protection will be described below. + +<br> + +🙌 Great, you decided to buy the parts online! +Unfortunately the delivery can take from days up to three weeks. +Until then enjoy your life️. diff --git a/content/dnms/hr/01-firmware.md b/content/dnms/hr/01-firmware.md new file mode 100644 index 00000000..8b09899d --- /dev/null +++ b/content/dnms/hr/01-firmware.md @@ -0,0 +1,66 @@ +--- +title: Driver & firmware +--- + +We already prepared the firmware. You only have to install drivers and flash your NodeMCU (ESP8266) and Teensy 4.0 boards. + +To communicate with your ESP8266 you need usb2serial drivers for your operating system. + +The chipset for NocdeMCUs v3 is usually CH341, just check the back of your NodeMCU to find some technical information. Choose the link that corresponds to the operating system of your computer. + +### Windows + +##### Drivers for model V2 (CP2102) for Windows +* [Windows 10](https://www.silabs.com/documents/public/software/CP210x_Universal_Windows_Driver.zip) - Windows 10 should be able to automatically download these +* [Windows 7/8/8.1](https://www.silabs.com/documents/public/software/CP210x_Windows_Drivers.zip) - 32-bit version - **not** supporting 64-bit version OS + +##### Driver for model V3 (CH340/CH341) for Windows +* [Windows](http://www.wch.cn/downloads/file/5.html) - Windows 10 should be able to automatically download these + +##### Extract the downloaded file for Windows +* for V2: Open the folder CP210x and double click on the application CP210xVCPInstaller_x64 (or x86) +* for V3: open the folder CH341SER and double click on the application SETUP. + +--- + +### MacOS + +##### MacOS Drivers +* [NodeMCU V2](https://www.silabs.com/documents/public/software/Mac_OSX_VCP_Driver.zip ) +* [NodeMCU V3](http://www.wch.cn/downloads/file/178.html) + +##### Extract the downloaded file for MacOS +* for V2: Unzip the folder CP210x and double click on the application CP210xVCPInstaller_x64 (or x86) +* for V3: Unzip the folder CH341SER and double click on the application SETUP. +* Restart your Mac + +--- + +### Linux +No drivers need to be installed. Chip should be supported directly (verifiable with dmesg) + +--- +### Firmware Flasher NodeMCU +Support for multiple Operating Systems: Windows, MacOS and Linux. + +* [airRohr Flashing Tool](http://firmware.sensor.community/airrohr/flashing-tool/) +* [Source Code](https://github.com/opendata-stuttgart/airrohr-firmware-flasher/) + +Connect NodeMCU to your computer with a short micro-USB cable (choose one shorter than 1 Meter, otherwise the installation may fail). Select `latest_en.bin` (or another language version) and click “Upload”. +Wait until the process is done. Now we can assemble the sensor. +<br> +A big thanks goes to [Piotr, from Poland](https://dropbox.inf.re/), for his help! 🙋♂️ + +--- +### Firmware Flasher Teensy +In [Helmut Bitter's Github](https://github.com/hbitter/DNMS/tree/master/Firmware) you can find two kinds of firmware: +* .ino +* .hex + +##### Teensy Loader +You can flash the .hex file in the Teensy boards with the standalone GUI software [Teensy Loader](https://www.pjrc.com/teensy/loader.html) for Windows, Mac and Linux. +A command line version also exist. + +##### Teensyduino +You can flash the .ino file in the Teensy boards with the Arduino IDE extension [Teensyduino](https://www.pjrc.com/teensy/teensyduino.html). +If needed, you can modify the firmware directly in the Arduino IDE. \ No newline at end of file diff --git a/content/dnms/hr/02-PCBs.md b/content/dnms/hr/02-PCBs.md new file mode 100644 index 00000000..29bddd98 --- /dev/null +++ b/content/dnms/hr/02-PCBs.md @@ -0,0 +1,31 @@ +--- +title: PCBs and circuit diagrams +--- + +The best way to build the DNMS is to use one of our PCBs. +There are now quite a lot of PCB manufacturer who can produce circuit boards for a few bucks with no minimum quantities. For example, [JLCPCB](https://jlcpcb.com//). +Just download our circuit diagrams and/or Gerber files below, upload them at the manufacturer's website and order your PCBs. + +<br> +The last versions of the PCBs are described here. Refer to [Helmut Bitter's Github](https://github.com/hbitter/DNMS/tree/master/PCBs) for further informations and to access the KiCad files. + +### AIRROHR V1.4 +<img src="../docs/dnms/airrohr-PCB.jpg" style="display: block; width:40%;margin: 1em 0" loading="lazy"/> +PCB for the NodeMCU ESP8266 CPU/WLAN with a I2C Bus extension to connect the DNMS on as well as other sensors (SDS011, BME280…). + + +##### Download +* [Circuit diagram](../docs/dnms/airrohr-PCB-circuit-diagram.pdf) +* [Gerber file to upload at the PCB manufacturer's website](../docs/dnms/airrohr-PCB-circuit-diagram-gerber.zip) + +--- + +### DNMS - T4 V1.4 +<img src="../docs/dnms/dnms-noise-measuring-teensy-4.jpg" style="display: block;width:40%; margin: 1em 0" loading="lazy"/> +PCB for the DNMS Teensy 4.0 which can be connected directly on a NodeMCU ESP8266 or on the AIRROHR PCB above. + + +##### Download +* [Circuit diagram](../docs/dnms/dnms-noise-measuring-teensy-40-circuit-diagram.pdf) +* [Gerber file to upload at the PCB manufacturer's website](../docs/dnms/dnms-noise-measuring-teensy-40-circuit-gerber.zip) + diff --git a/content/dnms/hr/03-assemble.md b/content/dnms/hr/03-assemble.md new file mode 100644 index 00000000..f83824a1 --- /dev/null +++ b/content/dnms/hr/03-assemble.md @@ -0,0 +1,130 @@ +--- +title: Assemble +--- +> ⚠️ **IMPORTANT NOTE** +Before assembling install the firmware! +See __firmware flasher__ section. + + +### Microphone unit + +The microphone unit is based on Pesky Products breakout board with a MEMS microphone ICS-43434. You can fin such board at the [Tindie marketplace](https://www.tindie.com/products/onehorse/ics43434-i2s-digital-microphone/). + +<img src="../docs/dnms/dnms-noise-measuring-microphone.jpg" style="width:40%; margin: 3em 0" loading="lazy"/> + + +##### Housing for the microphone unit +The housing is made with a .500" (12.7mm) polystyrene tubing. This diameter permits to plug directly most of the calibrators on the unit. + +The prototype was developed with the [Evergreen No. 236 tubing](https://evergreenscalemodels.com/products/236-500-12-7mm-od-white-polystyrene-tubing). + +<img src="../docs/dnms/dnms-noise-measuring-microphone-anschluesse.jpg" style="width:40%; margin: 3em 0" loading="lazy"/> + +<br> +The breakout board has to be adapted to the diameter of the tubing with a file. Use some tape to protect the microphone inlet. +<br> + +<img src="../docs/dnms/dnms-noise-measuring-microphone-protection.jpg" style="width:40%; margin: 2em 0" loading="lazy"/> +<img src="../docs/dnms/dnms-noise-measuring-microphone-protection-front.jpg" style="width:41%; margin: 2em 0" loading="lazy"/> + +Then solder the six silicone cables. Note which pin the cable is connected with! + +<img src="../docs/dnms/dnms-noise-measuring-microphone-with-cable.jpg" style="display: block; width:40%; margin: 2em 0" loading="lazy"/> +Cut a 115 mm long piece of tubing. +<br> +Stick the microphone board on some crossed tape. Put the cables in the tubing and fasten the board at the extremity of the tubing. +<br> +<img src="../docs/dnms/dnms-noise-measuring-microphone-preparing-housing.jpg" style="width:40%; margin: 2em 0" loading="lazy"/> +<img src="../docs/dnms/dnms-noise-measuring-microphone-housing.jpg" style="width:42%; margin: 2em 0" loading="lazy"/> + +Make the extremity of the tube tight with the tape. + +<img src="../docs/dnms/dnms-noise-measuring-microphone-tube.jpg" style="width:40%; margin: 2em 0" loading="lazy"/> + +Now you can fill the tube with some resin. This step is mandatory to avoid resonance and obtain calibrated and reproductible data. + +The prototype was developed with some [PURe Isolation ST 33](https://www.buerklin.com/en/Polyurethane-cast-resin-black-Copaltec-PURe-Isolation-ST-33/p/12L5900) produced by Copaltec GmbH. + +##### Specifications +* Dielectric strength: 28 kV/mm +* Specific forward resistance: 5,8.1014 ohm/cm +* Surface resistance: 1,3.1016 ohm +* Mixing ratio resin/hardener: 2 : 1 +* Pot time: 20 à 30 min. +* Curing time: 16 à 30 h +* Final hardened state: 10 à 14 days +* Viscosity (mixed): 500 à 600 mPa.s +* Shore hardness: D 50 to 55 (ISO 868, DIN 53505) +* Thermal conductivity: 0,3 W/mK +* Application temperatures: - 20 to +130 °C + + +The [polyurethane resin UR5545](https://electrolube.com/wp-content/uploads/2019/11/044-UR5545A-SDS1525.pdf) made by Electrolube should work too. + +For each tubing 15 g of resin should be sufficient. + +<img src="../docs/dnms/dnms-noise-measuring-microphone-inside-tube.jpg" style="display:block; margin: 2em 0" loading="lazy"/> + +When the resin has hardened remove the tape. Your microphone unit is ready. + + + +### DNMS Housing + +When the Teensy (DNMS) and the NodeMCU (standalone or on PCB) are separated: DNMS and airRohr + +You need a piece of 25 mm diameter tubing (for example tubing for electrical applications), a connector, a 90° bow and a M25 IP68 cable gland. + +The tube itself should be 160 mm long. The DNMS looks place in. The microphone housing is maintained by the cable gland. + +The bow prevents water and humidity to enter the housing while letting the cable pass. + +<img src="../docs/dnms/dnms-noise-measuring-housing.jpg" style="margin: 1em 0" loading="lazy"/> + +The DNMS is connected to the second PCB by a RJ12 cable. If this cable is longer than 250 mm, you must use an I²C extension. + +<img src="../docs/dnms/dnms-noise-measuring-sensor-kit.jpg" style="margin: 1em 0" loading="lazy"/> + +After everything is well connected, the parts are glued together. + +Result: + +<img src="../docs/dnms/dnms-noise-measuring-dn40-result.jpg" style="margin: 1em 0" loading="lazy"/> + +The PCB carrying the NodeMCU can be put in any kind of electrical box. + + +### Weather protection + +The housings themselves should be waterproof. Only the microphone inlet could be sensitive. TDK, the manufacturer has published some recommendations for sealing InvenSense bottom-port MEMS microphones from dust and liquid ingress but the components are difficult to find and were not tested. + +It is absolutely necessary to install a weather protection in the form of a foam cover. If necessary, even a household sponge is sufficient. There are several reasons for this: +* it protects against wind noise (which can increase the decibels measurements) +* it protects against direct water leakage on the microphone. To avoid condensation on the microphone pull back the cover a beat after installing it in order to create a small cavity. +* it protects against solar radiation. Intense sunlight can influence the measured values and reduce the life of the microphone. + +<img src="../docs/dnms/dnms-noise-measuring-microphone-bonette.jpg" style="width:45%; margin: 3em 0" loading="lazy"/> + +Those foam covers are normaly sold as ‘covers for measurement microfons’. But they are expensive. You can also take a normal foam ball and cut a hole with the scissors. + +If you need more ones [this source](https://de.aliexpress.com/item/32357483926.html?gps-id=pcStoreJustForYou&scm=1007.23125.137358.0&scm_id=1007.23125.137358.0&scm-url=1007.23125.137358.0&pvid=6cc8dfcd-974e-4fde-9dc9-6444c37a9069&spm=a2g0o.store_home.smartJustForYou_148437547.2 +) can be helpful. + +### Location of the microphone + +It is important to place the microphone in an area as "free" as possible, this means in a location with as less sound reflecting surfaces as possible. The distance to reflective surfaces should be as great as possible. Try not to mount the microphone directly on the wall of a house, because walls reflect sounds strongly. The distance to the wall should ideally be more than 1 m. Of course this is not always easy to realize. + +With a distance of about 50 cm from the tip of the microphone to the wall, the induced error is still reasonable. Good places are for example balconies or terrace railings, or a small mast on the roof. + +You can also try to place the microphone directly on the corner of the house for the reflections to partially cancel each other. + +A free-standing mast of at least 1 m height could also be a solution but then you have to watch out for reflections on the ground. That depends on the floor covering, of course. + +It is also important to always be aware that we measure ambient noise. We can only make an approximation of the noise emission of sources such as roads or railways. + +However, the closer you get to the source, the more accurate the reference to the source becomes. Upgrades of the firmware should then be able to get preceise measurements for an identified type of noise. + +<img src="../docs/dnms/measuring-sensor-on-balcony.jpg" style="width:49%; margin: 1em 0;" loading="lazy"/> +<img src="../docs/dnms/measuring-sensor-on-terasse.jpg" style="width:49%; margin: 1em 0;" loading="lazy"/> +<br> +<img src="../docs/dnms/measuring-sensor-on-wall.jpg" style="width:99%; margin-bottom: 2em;" loading="lazy"/> diff --git a/content/dnms/hr/04-configure.md b/content/dnms/hr/04-configure.md new file mode 100644 index 00000000..8edc0acc --- /dev/null +++ b/content/dnms/hr/04-configure.md @@ -0,0 +1,56 @@ +--- +title: Configure +--- + + <div class="max-w-screen-xl mx-auto pb-5"> + <div class="p-2 rounded-lg bg-indigo-100 shadow-lg sm:p-3"> + <div class="flex items-center"> + <span class="p-2 rounded-lg bg-indigo-500"> + <svg class="h-8 w-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5.882V19.24a1.76 1.76 0 01-3.417.592l-2.147-6.15M18 13a3 3 0 100-6M5.436 13.683A4.001 4.001 0 017 6h1.832c4.1 0 7.625-1.234 9.168-3v14c-1.543-1.766-5.067-3-9.168-3H7a3.988 3.988 0 01-1.564-.317z" /> + </svg> + </span> + <div class="flex flex-wrap"> + <div class="flex-wrap flex"> + <p class="pt-1 text-indigo-700 font-medium"> + Noise is in beta. Send questions to</p> + <a href="mailto:Noise@Sensor.Community" class="ml-1 font-medium underline text-white hover:text-yellow-600"> + Noise@Sensor.Community</a> + </div> + </div> + </div> + </div> + </div> + +### Get the ID +1. Connect the station with an USB cable to power up the sensor + +2. The station tries to connect to the configured WiFi access point. If this does not work, the sensor opens an access point with the name `Particulate Matter ID` , `Feinstaubsensor-ID` or `airRohr-ID`. The ID is the **ChipID** (for example 13597771). **Please note that number down, as you need it for the registration** + +3. Connect to the created access point. Wait until the connection is established.<br>*Android*: If the connection disconnects immediately, you may have to deactivate the option 'Smart network switch' under 'Connections -> WiFi -> Advanced' + +4. Open your browser and type in [http://192.168.4.1/](http://192.168.4.1/) + +> ⚠️ **Please note** It may take a few tries for the NodeMCU to connect to the home WiFi network. Please do not get impatient and try until it works. The sensor can also be configured via a smartphone. If the configuration of the sensor has worked, the configuration page is no longer accessible under this IP 192.168.4.1 + +### Configure the station +1. Under 'Configure' enter SSID (name of your home WiFi network), the network security key (under Windows) or WiFi password. + +2. For noise sensors (DNMS) according to this manual, no further changes are necessary + +3. After hitting save, the sensor will restart and is no longer accessible this way when it connects to the WLAN. + +<br> + +<img src="../docs/airrohr_config_initial.jpg" loading="lazy"/> +<br> + +### Test the station +If no changes have been made other than entering the WiFi network data, the sensor can be 'tested' on the following pages after about 10 minutes. On these pages you have to search for the ChipID (in the example above the 13597771). + + * [Sensordaten](www.madavi.de/sensor/graph.php) + * [WLAN-Signal](www.madavi.de/sensor/signal.php) + + + + diff --git a/content/dnms/hr/05-register.md b/content/dnms/hr/05-register.md new file mode 100644 index 00000000..2f1f205b --- /dev/null +++ b/content/dnms/hr/05-register.md @@ -0,0 +1,24 @@ +--- +title: Register +--- + +### Register yourself + +Go to [devices.sensor.community](https://devices.sensor.community/) to register your device and become a part of the open data network. + + +### Register your device +After you logged in click on register new device and fill out the form. +Home -> (Login) - Sensors -> Register sensor + +* your noted down ChipID of the ESP8266 (NodeMCU) +* your email address (will not be published) +* your address: Street with house number, postcode and city. Click on "Lookup entered address" to get the location coordinates (will be rounded off). Check the position of the pin, change it if needed +* internal name makes it easier to separate if you have multiple sensors (like garden, sensor for mom,...) +* the surroundings of the station - e.g. height above ground, side of the road, high traffic volume, free field or similar + + +#### By the way! +Currently it is not possible to register using the site both PM sensor, temp/humidity and DNMS sensor connected to one NodeMCU. +For now it can only be done manually by sending a request to tech (at) sensor.community. +See [issue](https://github.com/opendata-stuttgart/sensor.community/issues/117) for details. diff --git a/content/dnms/hr/06-troubleshoot.md b/content/dnms/hr/06-troubleshoot.md new file mode 100644 index 00000000..38eea956 --- /dev/null +++ b/content/dnms/hr/06-troubleshoot.md @@ -0,0 +1,59 @@ +--- +title: Troubleshoot +--- + +### Transmitting problems? +Enter the following in the browser with your own data: +`https://api-rrd.madavi.de/grafana/d/BYsfp-xGz/dnms?orgId=1&var-chipID=esp8266-[ID]` + +The [ID] can also be searched for in input field in the upper left corner [https://api-rrd.madavi.de/grafana/d/BYsfp-xGz/dnms?orgId=1](https://api-rrd.madavi.de/grafana/d/BYsfp-xGz/dnms?orgId=1) + +* Is the sensor registered via [https://devices.sensor.community/](https://devices.sensor.community/) and is the sensor visible on the map? + * Was the WLAN signal level weak in the past? + here is the signal log server-side: `https://api-rrd.madavi.de/grafana/d/Fk6mw1WGz/wifi-signal?orgId=1&var-chipID=esp8266-[ID]` + + + +### USB cable problems? +* Check power supply: USB cable +* Reboot (disconnect power supply, e.g. pull USB plug) +* Is the WLAN Config OK (the sensor connects to the configured WLAN) If not: + * does the sensor open an AP (in the first 2-7 minutes after a reboot)? + * Look for `airrohr-[ID]` WLAN network. Patience, it may take 1-2 minutes after boot. +* Check on your own router if the sensor is logged into the network, then remember the IP + * alternatively use "Discovery" in the [flashtool](https://github.com/opendata-stuttgart/airrohr-firmware-flasher//) + * If yes: connect to the sensor via IP with a browser `http://[ip-of-the-sensor]/` , the interface should appear + * If no: the ESP has problems, e.g. power supply insufficient, reboot loop or similar +* Connect USB to a computer and view the log + * Track text on serial interface with serial terminal program (Settings: baud 9600, 8N1) + * Linux: screen, minicom, cutecom; Windows: Tera Term; MacOS: screen, minicom, ... + * possibly suitable usb2serial drivers are still necessary, see [https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen](https://github.com/opendata-stuttgart/meta/wiki/Firmware-einspielen) + * There you should be able to see what the sensor is doing (boot messages, WLAN connection or AP, measurement - only after 3 minutes) + +### Electronics problems? +* Remove sensor electronics from the housing and observe +* Check/replace power supply again + * does ESP flash shortly after reboot? + * Teensy: red LED flashing after reboot? + * check/replace the cables to the sensors again + + + <div class="max-w-screen-xl mx-auto pt-5"> + <div class="p-2 rounded-lg bg-indigo-100 shadow-lg sm:p-3"> + <div class="flex items-center"> + <span class="p-2 rounded-lg bg-indigo-500"> + <svg class="h-8 w-8 text-white" fill="none" viewBox="0 0 24 24" stroke="currentColor"> + <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M11 5.882V19.24a1.76 1.76 0 01-3.417.592l-2.147-6.15M18 13a3 3 0 100-6M5.436 13.683A4.001 4.001 0 017 6h1.832c4.1 0 7.625-1.234 9.168-3v14c-1.543-1.766-5.067-3-9.168-3H7a3.988 3.988 0 01-1.564-.317z" /> + </svg> + </span> + <div class="flex flex-wrap"> + <div class="flex-wrap flex"> + <p class="pt-1 text-indigo-700 font-medium"> + Noise is in beta. Send questions to</p> + <a href="mailto:Noise@Sensor.Community" class="ml-1 font-medium underline text-white hover:text-yellow-600"> + Noise@Sensor.Community</a> + </div> + </div> + </div> + </div> + </div> diff --git a/locales/hr.json b/locales/hr.json new file mode 100644 index 00000000..10947fdb --- /dev/null +++ b/locales/hr.json @@ -0,0 +1,199 @@ +{ + "nav": { + "home": "Početna stranica", + "docs": "Uputstva", + "blog": "Blog", + "projects": "Projekti", + "forum": "Forum", + "sensor": "Upute", + "donate": "Donacije", + "langHelpWanted": "Potrebna pomoć", + "langCallTo": "Promjena jezika?", + "langDescription": "Omogućite prijevod putem GitHub-a" + }, + "error": { + "errorStatus": "Došlo je do {status} pogreške.", + "reloadPage": "Pokušajte ponovo učitati stranicu.", + "offline": "Čini se da niste umreženi.", + "submitError": "Ako se pogreška nastavi pojavljivati, navratite na <a href=\"forum.sensor.community\">our forum</a> i javite nam ili dostavite problem na <a href=\"https://github.com/opendata-stuttgart/\">GitHub</a>. Hvala!" + }, + "index": { + "metaDescription": "Izgradite svoj uradi sam senzor i postanite dio svjetske mreže građanske znanosti, otvorenih podataka i građanske tehnologije. Podržano od strane mnogih suradnika \uD83D\uDC95", + "metaTitle": "Sensor.Community \uD83C\uDF10 Izgradite vlastiti senzor i pridružite se svjetskoj mreži građanskih tehnologija", + "h1-build": "Izgradite vlastiti senzor", + "h1-become": "i postanite dio ", + "h1-civic-tech": "svjetske Civic Tech mreže \uD83C\uDF10", + "h1-support": "Podržano od strane mnogih ", + "h1-contributors": "suradnika \uD83D\uDC95", + "inNumbers-title": "Sensor.Community u brojkama", + "inNumbers-activeSensors": "Aktivnih senzora na svijetu", + "inNumbers-countries": "Države", + "inNumbers-dataPoints": "Podatkovne točke", + "inNumbers-communityProjects": "Projekti zajednice", + "inNumbers-communityHubs": "Laboratoriji", + "inNumbers-commits": "GitHub Prilozi", + "inNumbers-fetching": "... dohvat podataka", + "inNumbers-error": "Nastala je pogreška!", + "message-description": "Sensor.Community je globalna senzorska mreža vodjena suradnicima koja stvara otvorene podatke o okolišu.", + "message-mission": "Naša misija je nadahnuti i obogatiti živote ljudi nudeći platformu za kolektivnu znatiželju koja je u prirodi istinska, radosna i pozitivna.", + "message-hubs": "Sensor.Community ima globalna središta u Stuttgartu, Sofiji i Varšavi." + }, + "sensor": { + "metaDescription": "", + "metaTitle": "Pronađite svoj senzor i upute za izradu svog uradi-sam senzora fine prašine", + "h1": "Setovi za samogradnju", + "subtitle": "Odaberi uputstvo i sagradi svoj senzor.", + "airSensorTitle": "Zrak", + "noiseSensorTitle": "Buka" + }, + "guide": { + "editOnGithub": "izmijeni na Github" + }, + "airrohr": { + "metaTitle": "Izgradite svoj senzor kvalitete zraka.", + "metaDescription": "" + }, + "dnms": { + "metaTitle": "Izgradite vlastiti senzor za mjerenje buke.", + "metaDescription": "" + }, + "forum": { + "metaDescription": "", + "metaTitle": "Forum", + "h1": "Forum", + "subtitle": "Uskoro", + "getNotified": "\uD83D\uDC8C Pretplatite se" + }, + "donate": { + "metaDescription": "We are non-profit, non-corporate and non-compromised. People like you help us. We rely on donations to carry out our mission.", + "metaTitle": "Donirajte - pomozite nam pokazujući svoju ljubav", + "h1": "Pokažite svoju podršku", + "description": "Mi smo neprofitni, nekompromitirani i nekorporativni. Ljudi poput vas nam pomažu. Oslanjamo se na donacije u izvršavanju naše misije.", + "section": "Načini podrške", + "campaign": "Provođenje kampanje", + "donation": "Direktne donacije", + "holder": "Vlasnik računa", + "iban": "IBAN", + "bic": "BIC", + "bank": "Banka", + "intendedUse": "Opis namjene", + "donationDescription": "Änderwerk gemeinnützige GmbH priznata je kao neprofitna organizacija." + }, + "blog": { + "metaDescription": "Novosti", + "metaTitle": "Novosti", + "h1": "Nedavni prilozi", + "description": " Pronađi novosti ili druge zanimljive informacije" + }, + "contributors": { + "metaDescription": "Ljudi koji stoje iza projekta", + "metaTitle": "Sensor.Community suradnici", + "h1": "Pozdrav od ekipe \uD83D\uDC4B", + "description": "Upoznajte tim koji radi iza kulisa kako bi ojačali Sensor.Community.", + "contactBottom": "\uD83D\uDCEEKoristite opcije za kontakt na dnu stranice.", + "meetTeam": "Upoznajte tim" + }, + "projects": { + "metaDescription": "Pronađite mobilne aplikacije, web-stranice,... naše drage zajednice \uD83D\uDC96", + "metaTitle": "Projekti zajednice", + "h1": "Community Projects", + "description": "Find mobile apps, websites,... from our lovely community \uD83D\uDC96️", + "submitIdea": "Have a great project? Share it with the community!", + "submitProject": "Submit your project →" + }, + "hubs": { + "metaDescription": "Find communities around the world \uD83D\uDC96️", + "metaTitle": "Community Hubs", + "h1": "Community Hubs", + "description": "Find communities around the world \uD83D\uDC96️️" + }, + "campaigns": { + "title": "Pridružite se kampanji" + }, + "campaign": { + "h1": "Kampanja", + "subtitle": "Coming soon", + "phase1": "Phase 1:", + "phase2": "Phase 2:", + "phase3": "Phase 3:", + "refs": "Sensor.Community campaign to bring sensors at every reference station in this world.\n", + "refs-metaTitle": "Sensor.Community campaign to bring sensors at every reference station in this world.\n", + "refs-phase1": "Display locations of reference stations.\n", + "refs-phase2": "Display meta information of reference stations.\n", + "refs-phase3": "Display measurement values of reference stations.\n", + "sensor2school": "Sensor.Community campaign to bring sensors at every school in this world.\n", + "sensor2school-metaTitle": "Sensor.Community campaign to bring sensors at every school in this world.\n", + "sensor2school-phase1": "Register and become an open environmental data contributor.\n", + "sensor2school-phase2": "Connect with the global Sensor.Community.\n", + "sensor2school-phase3": "Become data driven citizen and support your local community.\n", + "sensor2library": "Sensor.Community campaign to bring sensors at every library in this world.\n", + "sensor2library-metaTitle": "Sensor.Community campaign to bring sensors at every library in this world.\n", + "zero200": "#zero200 campaign supports you in launching your local Sensor.Community group.\n", + "zero200-metaTitle": "#zero200 campaign supports you in launching your local Sensor.Community group.\n", + "no2": "We measure NO2 with diffusion tubes.\n", + "no2-metaTitle": "We measure NO2 with diffusion tubes.\n", + "no2-phase1": "Launching on 01.10.2020 - 9 cities in Europe measure with 30 NO2 diffusion tubes each.\n", + "no2-phase2": "New Map to display all NO2 diffusion tubes measurements.\n", + "no2-phase3": "Adding all other NO2 diffusion tube campaigns worldwide to the Map.\n", + "getNotified": "\uD83D\uDC8C Subscribe", + "map": "Open the map in a separate tab" + }, + "collaborations": { + "h1": "Collaborations", + "subtitle": "Coming soon", + "getNotified": "\uD83D\uDC8C Subscribe" + }, + "location": { + "h1": "Location", + "subtitle": "Coming soon", + "getNotified": "\uD83D\uDC8C Subscribe" + }, + "partnership": { + "title": "Collaborations" + }, + "contact": { + "title": "Kontaktirajte nas", + "general": "Kontakt", + "general-subtitle": "opća pitanja?", + "partnership": "Partnerstvo", + "partnership-subtitle": "želite surađivati s nama?", + "press": "Mediji", + "press-subtitle": "ideje za članke?", + "tech": "Tech", + "tech-subtitle": "tehnička pitanja?" + }, + "footer": { + "importantLinks": "važne poveznice", + "sitemap": "Sitemap", + "license": "License", + "socialLinks": "Connect", + "blog": "Blog", + "donate": "Donate", + "privacy" : "Privacy & Terms", + "communityProjects": "Community Projects", + "communityHubs": "Community Hubs", + "contributors": "Contributors", + "mission" : "Making the world a better place through community driven, open environmental data.", + "withLove": "Made with \uD83D\uDC95 in Stuttgart, Germany" + }, + "imprint": { + "h1": "Imprint & Privacy", + "lastModified": "Last Modified: ", + "imprint": "Imprint", + "imprintName": "Name: Rajko Zschiegner", + "imprintStreet": "Street: Reichenbacher Str. 20", + "imprintPostalCode": "Zip Code: 07973 Greiz", + "imprintCountry": "Country: Germany", + "imprintMail": "Email: rajko@sensor.community", + "privacyPolicy": "Privacy", + "privacyPolicyContact": "Responsible", + "privacyPolicyDesc": "With this privacy policy we would like to inform you about the type, scope and purpose of the processing of personal data on our website. Personal data are all data that have a personal reference to you, e.g. name, address, e-mail address or user behaviour. With regard to the terms used, such as \"processing\" or \"responsible person\", we refer to the definitions in Art. 4 of the Basic Data Protection Regulation (DSGVO)", + "privacyPolicyName": "Name: Rajko Zschiegner", + "privacyPolicyStreet": "Street: Reichenbacher Str. 20", + "privacyPolicyPostalCode": "Zip code: 07973 Greiz", + "privacyPolicyCountry": "Country: Germany", + "privacyPolicyMail": "Email: rajko@sensor.community", + "privacyPolicyContactTitle": "Contact via e-mail, social media or telephone", + "privacyPolicyContactDescription": "As far as you address the e-mail, telephone or social media offered on our website and provide us with personal data, these data will be automatically stored and processed by our team to process your inquiry. These data are only processed for correspondence with you. We need your e-mail address to be able to answer your inquiry. We need your telephone number in order to be able to answer your callback request. Legal basis: The legal basis for the use of your data as described above is Art. 6 para. 1 lit. a DSGVO. Deletion: The personal data collected by us will be deleted if they are no longer required. We check the necessity every 2 years. You can also revoke the data processing at any time." + } +} diff --git a/src/components/LanguageSwitcher.svelte b/src/components/LanguageSwitcher.svelte index 02f4d323..92d57c0a 100644 --- a/src/components/LanguageSwitcher.svelte +++ b/src/components/LanguageSwitcher.svelte @@ -22,7 +22,7 @@ } const langauges = [ - "en", "de", "fr", "it", "sk", "ru", "cz", "bg", "pl", "es", "nl", "ua", "se", "pt", "ja", "zh", "da", "el", "et", "hu", "lt", "lv", "ro", "sl" + "en", "de", "fr", "it", "sk", "ru", "cz", "bg", "pl", "es", "nl", "ua", "se", "pt", "ja", "zh", "da", "el", "et", "hu", "lt", "lv", "ro", "sl", "hr" ].sort() </script> @@ -45,6 +45,8 @@ {flag("ee")} {:else if lang == "sl"} {flag("si")} + {:else if lang == "hr"} + {flag("hr")} {:else} {flag(lang)} {/if}</span> @@ -84,6 +86,8 @@ {flag("ee")} {:else if lang == "sl"} {flag("si")} + {:else if lang == "hr"} + {flag("hr")} {:else} {flag(lang)} {/if} {lang}</a> diff --git a/src/routes/[lang]/_layout.svelte b/src/routes/[lang]/_layout.svelte index 6fb0cbd7..67ce68bc 100644 --- a/src/routes/[lang]/_layout.svelte +++ b/src/routes/[lang]/_layout.svelte @@ -1,5 +1,5 @@ <script context="module"> - const LANGUAGES = ["en", "de", "fr", "it", "sk", "ru", "cz", "bg", "pl", "nl", "es", "ua", "se", "pt", "ja", "zh", "da", "el", "et", "hu", "lt", "lv", "ro", "sl"]; + const LANGUAGES = ["en", "de", "fr", "it", "sk", "ru", "cz", "bg", "pl", "nl", "es", "ua", "se", "pt", "ja", "zh", "da", "el", "et", "hu", "lt", "lv", "ro", "sl", "hr"]; const DEFAULT_LANGUAGE = "en"; export async function preload(page) { diff --git a/src/routes/endpoints/airrohr/hr/index.json.js b/src/routes/endpoints/airrohr/hr/index.json.js new file mode 100644 index 00000000..b888df86 --- /dev/null +++ b/src/routes/endpoints/airrohr/hr/index.json.js @@ -0,0 +1,15 @@ +import send from '@polka/send'; +import generate_docs from '../../../../utils/generate_docs.js'; + +let json; + +export function get(req, res) { + if (!json || process.env.NODE_ENV !== 'production') { + json = JSON.stringify(generate_docs('airrohr/hr')); + } + + send(res, 200, json, { + 'Content-Type': 'application/json' + }); + +} diff --git a/src/utils/initI18n.js b/src/utils/initI18n.js index 1e8c8d29..7217a340 100644 --- a/src/utils/initI18n.js +++ b/src/utils/initI18n.js @@ -23,6 +23,7 @@ import lv from '../../locales/lv'; import ro from '../../locales/ro'; import sl from '../../locales/sl'; import zh from '../../locales/zh'; +import hr from '../../locales/hr'; function initI18n(lng = 'en') { i18next.init({ @@ -51,7 +52,8 @@ function initI18n(lng = 'en') { lv, ro, sl, - zh + zh, + hr }, fallbackLng: { 'de-CH': ['de'],