Ide til ”internet of things” med Arduino eller Raspberry Pi (Læst 6278x)

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Ide til ”internet of things” med Arduino eller Raspberry Pi
« Dato: December 06, 2014, 18:16:45 »
I dag skal alt jo helst kunne tilsluttes internet, så jeg sidder og laver forundersøgelse til et lille projekt  :)

Jeg har behov for, fra en browser (PC eller smartphone), at kunne aflæse et par værdier og ændre på et par opsætninger på enheder, der er tilsluttet internet og befinder sig hos forskellige kunder.

Umiddelbart ville en Arduino eller Raspberry Pi med en lille webserver være løsningen.
Problemet er bare at kundernes internetudbyder typisk har blokeret for indkommende trafik på port 80, desuden vil jeg helst ikke til at rode med IP-adresser og opsætning i kundernes forskellige routere.

Nogen ideer til hvordan det kan løses og findes der evt. en standard løsning?

Jeg har en løs ide om at man måske kunne lade en webserver (på et webhotel) være ”mellemmand”, så browseren sender forespørgsler/kommandoer til webserveren.
Arduino ude hos kunderne kørere i stedet som client og poller webserveren for forespørgsler/kommandoer med faste intervaller.
Jeg er dog bekymret for svartiderne og al den trafik, der genereres når x-antal Arduino hele tiden poller webserveren for at se om der skulle være en ny forespørgsel/kommando.
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline Jesper_Munkholm

  • µProcessoren
  • *
  • Indlæg: 380
  • Antal brugbare Indlæg: 36
  • Alt er Volt
    • Vis profil
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #1 Dato: December 06, 2014, 18:52:09 »
Jeg kender ikke til den store server løsning, men har dog min egen lille webserver kørende (arduino selvfølgelig) :)

Det er jo bare at få åbnet en port der kigger direkte ned på webserverens ip adresse, har kørt her indtil jeg fik ny udbyder, og nu kan jeg ikke selv rode med porte mere :(
Men det kan bestilles pr mail...

Med en arduino og en webserver er det kun fantasien (og af 30.720 byte maksimum) der sætter grænserne ! :)
"Buy a man a beer and he wastes an hour. Teach a man to brew and he wastes a lifetime." :)

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #2 Dato: December 06, 2014, 19:07:30 »
Tak for dit svar Jesper

Din løsning var også min første indskydelse og jeg har den også oppe at kører på arbejdsbordet.
Problemet er at det ikke ”bare” er at åbnet en port der kigger direkte ned på webserverens ip adresse, når der er tale om 50-100 kunder med forskellig internetudbyder og forskellige routere.

Jeg har behov for en løsning, hvor man bare kan tilslutte udstyret til routeren og så er man kørende. Det kan man så vidt jeg kan se ikke med en webserver, men med en klient til routerens DHCP automatisk tildele en IP-adresse og så er man næsten kørende.

Jeg kan ikke være den eneste med det problem, så der findes sikkert en helt anden standard løsning  :)
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline Jakobsen

  • Højpas filter
  • *****
  • Indlæg: 302
  • Antal brugbare Indlæg: 45
    • Vis profil
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #3 Dato: December 06, 2014, 19:31:06 »
Hej
Som du selv er inde på ville jeg også  lave det med 50-100 stk  Raspberry Pi / Arduino hos dine kunder, så de kan kører DHCP uden at skulle konfigurere noget.
De connecter / poller til en server med et tids interval... enten ude i byen eller hos dig.
Vi mangler oplysning om hvor ofte de skal opdatere?

Skal det være mod et "web hotel" er du hurtigt begrænset til kun at kunne lave enten web eller ftp overførelse og mange er ikke vilde med at man har specielle programmer kørende på deres wehotel.

Rammer du en server hos dig selv bestemme du jo alt selv. men det kræver jo også en statisk IP hos dig samt at du har adgang til at opsætte din router.

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #4 Dato: December 08, 2014, 10:00:32 »
Tak for dit svar Jakobsen

Planen var at benytte et webhotel ude i byen som ”mellemmand” mellem den besøgendes browser (client) og Arduinoerne ude hos kunderne (client).
Jeg har ganske vist en fast IP, men det er på en ADSL da jeg ikke kan få fiber her i området, desuden er jeg ikke så glad for selv at skulle holde en server kørende i døgndrift.
Jeg er med på at et webhotel begrænser kommunikationen til http og ftp, i praksis nok til http da jeg ikke tror at udbyderen tillader så mange ftp connections samtidig. Planen var nu også at kommunikationen skulle være over http, da det må gide mindst bøvl med kundernes router.

Jeg har en tror på at ”mellemmanden” på webhotellet kan laves i PHP, så det ikke skal installeres specielle programmer på webserveren.

Mht. poll hastigheden, skal det være tæt på real time når en bruger er logget på via sin browser.
Jeg forestiller mig at polle for hvert sekund når en bruger er logget på.
For ikke at holde trafikken nede forestiller jeg mig at poll med længere intervaller, f.eks. 10-15 når der ikke er logget nogen bruger på en Arduino. Det betyder at brugeren vil opleve at login med sit password tager 10-15 sekunder, men det mener jeg er acceptabelt.

Er det den rigtige måde at angribe opgaven på?
Findes der evt. en færdig løsning, så jeg ikke opfinder den dybe tallerken igen?
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline edn

  • Modstanden
  • **
  • Indlæg: 17
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #5 Dato: Januar 19, 2015, 15:14:52 »
Du kan løse det på følgende måde:
- Anvend en virtuel server. Disse er billige, og de fungerer på samme måde som en almindelig computer. Du kan vælge linux eller windows. Se fx https://www.hosteurope.de/Server/Virtual-Server/. Du kan også anvende et web-hotel - i .net kan du medbring en embedded database, som virker fint.

- Serveren har et ip-nummer og tilbyder en web-service til omverden  (her kan du anvende PHP eller .net).  Serveren har også en database (postgresql er rigtig god) hvor du lagrer info.
- Dine små computere (arduino, RPi) kalder denne web-service. Altså er de små computere klienter, som initiere en forbindelse - det kan de jo gøre hvert 10. sekund og derved få smidt data op på serveren.
- De kan uploade data eller hente data (som kan være kommandoer). Du kan bruge formatet JSON eller XML (eller noget hjemmelavet).
- For at undgå at alle kan anvende din server skal hver klient (arduino, RPi) have en hemmelig kode (en token, som kunne være en GUID for eksempel), som de udveksler med serveren hver gang de initierer en forbindelse.
- Du kan gøre det bedre ved at anvende https fremfor http (så er det krypteret med ssl - hvis andre kender token kan de jo komme ind i systemet).

En virtuel-server har ikke problemer at trække 100 klienter.

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #6 Dato: Januar 20, 2015, 00:52:33 »
- Serveren har et ip-nummer og tilbyder en web-service til omverden  (her kan du anvende PHP eller .net).  Serveren har også en database (postgresql er rigtig god) hvor du lagrer info.
- Dine små computere (arduino, RPi) kalder denne web-service. Altså er de små computere klienter, som initiere en forbindelse - det kan de jo gøre hvert 10. sekund og derved få smidt data op på serveren.
- De kan uploade data eller hente data (som kan være kommandoer). Du kan bruge formatet JSON eller XML (eller noget hjemmelavet).

Det var nøjagtig sådan jeg havde forstillet mig at løse opgaven.
Jeg var mest på udkik efter om der findes en færdig løsning. Jeg kan næppe være den første, der stå med den opgave.
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline edn

  • Modstanden
  • **
  • Indlæg: 17
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #7 Dato: Januar 20, 2015, 07:21:13 »
Du har alle elementerne i de nye programmeringssprog, og som altid er tingene nemme hvis man har lavet det før ;-)

Serverdelen kunne have følgende: En web-service (til dataindsamling), en hjemmeside (brugerne logger ind her og du har nogle hemmelige administrationsmoduler), og en database, hvor data bliver gemt.

Klienterne skal kunne opsamle data (sensorer), og via (http-)socketforbindelse sende data til serverens web-service.

Et program, som blot skal demostrere kommunikationen fylder på server siden 20-40 linjer og på klientsiden 10-30 linjer.

 

Offline microtec

  • Jordet Basic
  • **
  • Indlæg: 157
  • Antal brugbare Indlæg: 27
    • Vis profil
    • PicoScope PC-baserede oscilloskoper
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #8 Dato: Januar 20, 2015, 09:31:16 »
Du har alle elementerne i de nye programmeringssprog, og som altid er tingene nemme hvis man har lavet det før ;-)

Serverdelen kunne have følgende: En web-service (til dataindsamling), en hjemmeside (brugerne logger ind her og du har nogle hemmelige administrationsmoduler), og en database, hvor data bliver gemt.

Klienterne skal kunne opsamle data (sensorer), og via (http-)socketforbindelse sende data til serverens web-service.

Et program, som blot skal demostrere kommunikationen fylder på server siden 20-40 linjer og på klientsiden 10-30 linjer.

Alle de overordnede delelementer du nævner har jeg helt styr på, det jeg eftersøger er protokol og mekanismen til at udveksle data og kommandoer mellem de små klienter og den "store" centrale webserver.

Det undre mig, hvis det ikke er lavet før, der er ingen grund til at opfinde den dybe tallerken igen :-)
Dansk importør af PicoScope PC-baserede oscilloskoper og Lascar dataloggere.
http://www.microtec.dk

 

Offline edn

  • Modstanden
  • **
  • Indlæg: 17
  • Antal brugbare Indlæg: 1
    • Vis profil
Sv: Ide til ”internet of things” med Arduino eller Raspberry Pi
« Svar #9 Dato: Januar 20, 2015, 10:54:52 »
Jo, men du har jo et specifikt problem, og dette problem kan løses med en række generelle komponenter (klasser, funktioner og så videre).

Jeg kender mest til .net - her vil du kunne lave et 'web-service-projekt' , som benytter JSON eller XML. På den måde får du meget forærende.

Og klienterne kan skrives i java hvis du rpi (og samme kode kan anvendes på PC'ere i begyndelsen til at teste systemet) hvor du kan oprette en http-forbindelse og sende JSON.

Men du skal selv hente data, og selv pakke dem på passende vis.

Hvilke data skal du kunne sende fra klienterne ? Og hvilke kommandoer har du brug for ?


Hvis du ikke havde alle disse komponenter, så ville du virkelig have mange ting der skulle laves ;-)