Sakernas Internet (6 / 6 steg)

Steg 6: VB netto och xively

Efter att ha testat här ute i flera månader har jag stött på några problem med ethernet shield tillförlitlighet. Detta är främst om det finns flera router/repeater humle och kanske på grund av timeout förseningar. Det finns problem med att hantera semi pålitliga anslutningar vilket naturligtvis inkluderar radiolänkar som kan störas. Det kan också finnas buggar i standard Arduino ethernet shield kod - det verkar finnas ett antal korrigeringar på internet men jag är inte säker på vilka som fungerar. Det är inte det enklaste att felsöka eftersom hela systemet kommer att köras i flera dagar och sedan hänga.

En hårdvara hacka är att ha en Arduino styra ett relä och slå på strömmen till en andra Arduino som har en Ethernet-shield. Sedan kan hela systemet stängs av och sedan drivs tillbaka upp igen.

Ett annat alternativ kan vara att titta på wifi moduler - år (2014) de har kommit ner till som lågt som $5, och dessa kan så småningom komma med kod som förhoppningsvis inte mer graciöst, eller kanske kan återställas med programvara.

En annan lösning är att använda en dator som i internet-gränssnittet. En liten netbook kommer att göra. Följande kod är vb.net och lyssnar till arduino på en com-port och därefter inlagda data till xively.

Import System
Import System.IO
Import System.Net
Import System.Text
' skapa ett formulär. I verktygslådan lägga Knapp1 textbox1, textbox2, timer1, serialport1
"ändra timer1 fästingar till 4000. Ändra timer1 aktiverat True
"i rutinen opencomport ändrar com-portens nummer
"Lägg till checkbox1, namnge det ladda upp kontinuerligt

"Arduino Provningsmetod
' / / skickar allt fler varje 5 sek
"int n;
"void setup()
'{
' Serial.begin(9600); också tala på en långsam 1200 baud - enklare felsökning om alla baud klassar samma
"tag (! Serial) {}; vänta med att ansluta
'}
"void loop() / / kör om och om igen
'{
' Serial.println(n);
"n + = 1;
' delay(5000);
'}

Public Class Form1
Offentliga InPacket (0 till 2000) som Byte

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar MyBase.Load
OpenComPort()
End sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar Button1.Click
xivelyFeedUpdate ("shsCNFtxuGELLZx8ehqglXAgDo9lkyBam5Zj22p3g3urH2FM", "970253233", "sensor1", "14")
End Sub

Sub xivelyFeedUpdate (ByVal ApiKey As String, ByVal feedId As String, ByVal kanal som sträng, ByVal värde som sträng)
Dim begäran som WebRequest = WebRequest.Create ("http://api.xively.com/v2/feeds/" + feedId + "CSV")
Dim postData As String
postData = kanal + "," + värde 't.ex sensor1, 5' bygga sträng för att skicka
Dim byteArray som Byte() = Encoding.UTF8.GetBytes(postData)
begäran. Metoden = "Sätta" "PUT eller GET
begäran. ContentLength = byteArray.Length ' längd kanal och värde
begäran. ContentType = "text/csv" "text och semikolon avgränsade data
begäran. Headers.Add ("X-ApiKey", ApiKey) ' sända huvud
begäran. Timeout = 5000
Försök
Dim dataStream som ström = begäran. GetRequestStream() ' få Begäranströmmen.
dataStream.Write (byteArray, 0, byteArray.Length) ' skriva data till Begäranströmmen.
dataStream.Close() ' stänger Stream objektet.
Dim svar som WebResponse = begäran. GetResponse() ' få svaret - oftast bara Ok
"måste lägga till ett try/catch fel rutin här om internet-anslutningen går
TextBox1.Text += bförebild (svar, HttpWebResponse). StatusDescription "Visa status.
dataStream = svar. GetResponseStream() ' få den ström som innehåller innehåll som returneras av servern.
Dim läsare som nya StreamReader(dataStream) "öppna dataström med en StreamReader för enkel åtkomst.
Dim responseFromServer As String = läsare. ReadToEnd() ' läsa innehållet.
TextBox1.Text += responseFromServer ' uppvisning belåtenhet.
läsaren. Close() ' Stäng strömmar
dataStream.Close()
svar. Close()
Fånga som undantag
TextBox1.Text = "Ingen anslutning"
Slutet försök
End Sub
Sub OpenComPort()
Försök
SerialPort1.PortName = "COM9" ' Fönstren nyckel "Kontrollpanelen", Enhetshanteraren, seriella portar att hitta nummer
SerialPort1.BaudRate = "9600"
SerialPort1.Parity = IO. Ports.Parity.None ' ingen paritet
SerialPort1.DataBits = 8 ' 8 bitar
SerialPort1.StopBits = IO. Ports.StopBits.One "en stoppbit
' SerialPort1.ReadTimeout = 1000' millisekunder så gånger i 1 sekund om inget svar
SerialPort1.Open() ' öppna porten
SerialPort1.DiscardInBuffer() ' Rensa indatabufferten
' SerialPort1.Handshake = System.IO.Ports.Handshake.RequestToSend ' handskakning på (eller. Ingen att stänga av)
Fånga som undantag
MsgBox ("fel öppning seriell port - är ett annat program använder den valda COM-porten?")
Slutet försök
End Sub
Private Sub Timer1_Tick_1(ByVal sender As System.Object, ByVal e As System.EventArgs) hanterar Timer1.Tick
Dim BytesToRead som heltal
Dim jag som heltal
Dim karaktär som sträng
"samla in byte från den seriella porten
Timer1.Enabled = False
TextBox2.Clear() ' Rensa textrutan
Om SerialPort1.IsOpen = True Then
Göra
Om SerialPort1.BytesToRead = 0 då Exit gör "inga fler byte
BytesToRead = SerialPort1.BytesToRead
Om BytesToRead > 2000 då BytesToRead = 2000
SerialPort1.Read (InPacket, 0, BytesToRead) ' läsa i ett paket
För i = 1 till BytesToRead
Tecken = Strings.Chr (InPacket (i - 1))
TextBox2.Text += karaktär ' lägga till textrutan
Nästa
Loop
Om CheckBox1.Checked = True Then
TextBox1.Clear()
xivelyFeedUpdate ("shsCNFtxuGELLZx8ehqglXAgDo9lkyBam5Zj22p3g3urH2FM", "970253233", "sensor1", Str(Val(TextBox2.Text)))
Slut om
Slut om
Timer1.Enabled = sant
End Sub
Avsluta klass

Se Steg
Relaterade Ämnen

Sakernas Internet Time Warp Dali klockan

Tiden flyger när du har roligt och drar när du är uttråkad. Tid är uppenbarligen relativ: vår uppfattning av tid ändras med våra sinnestillstånd, och det är enda mässa som klockor ska kunna anpassa sig till våra erfarna hastighet tid. Sakernas Intern...

CC3200 Wi-Fi styrelsen för Sakernas Internet

Goda nyheter för Sakernas Internet människor!Texas instrument CC3200-LAUNCHXL styrelsen stöds nu av Energia v.13+http://Energia.nu/PIN-Maps/guide_cc3200launchpad/http://Energia.nu/cc3200guide/Energia är Arduino miljö anpassad för Texas målning marker...

Sakernas Internet med Raspberry Pi-2

Detta är en uppföljning till mitt tidigare instructable Sakernas Internet med Raspberry Pi - 1.(Om inte du är bekant med webbservrar, PHP kodning och grundläggande begrepp för Sakernas Internet, bör du nog gå igenom del 1 första.)I den tidigare instr...

Sakernas Internet med Raspberry Pi - 1

När jag var ny på IOT (Internet Of Things), såg jag att det fanns knappt några tutorials som var tillräckligt enkelt för nybörjare att förstå och prova. Det var antingen till mycket tekniska jargong, eller hårdvaran var alltför komplex.Så nu när jag...

Sakernas Internet baserade giftig gas övervakning

Personer som arbetar i kloakerna och underjordiska gruvor eller andra gruvindustrin ofta har andningsbesvär på grund av typen av luft i arbetsklimat. Till exempel i mitt land har arbetarna ofta ange brunnar eller avlopp ska rengöras. Städmaskiner fin...

Mjölk i kylen - Sakernas Internet

Jag tror att en dag, alla livsmedel skåp och kylskåp/frysar blir smart. Alla produkter kommer att ha en RFID eller video igenkännlig etikett, som kommer att uppdatera en förteckning över produktens användning. Din lokala mataffär kommer att samla in...

Skapa din första IoT Ethernet-enhet. Del 5: Sakernas Internet, Home Automation

Detta är en "twofer" (två för en) är den första delen (A) Ethernet motsvarande sin WiFi ESP8266/DHT22 baserat föregångare med en extra I2C LCD-display för sammanfattningsdata (se andra bilden ovan). I del (B) vi kommer att utöka design (se först...

Att inrätta en MQTT mäklare. Del 2: Sakernas Internet, Home Automation

FörordOkej i "Del1: Sakernas Internet, Home Automation", du har skapat och konfigurerat din "Vanilj" Raspberry Pi (ursäkta ordvitsen) och kan fjärransluta till det med kitt. Nu ställer vi in en server som kommer att upprätta din huvuds...

Skapa din första IoT WiFi-enhet. Del 3: Sakernas Internet, Home Automation

Detta Instructable dokument hur man skapar en enkel IoT enhet (bilden ovan) baserat runt ESP8266-01 WiFi aktiverat modulen och är den tredje delen i en serie av Instructables beskriver hur du ställer in egna IoT hemnätverket.IoT enheten i fråga har e...

"Koppleri" din första IoT WiFi-enhet. Del 4: Sakernas Internet, Home Automation

OK, inte så mycket koppleri men att utvidga din första IoT enhetIntroduktionDetta Instructable dokumenterar hur enkelt det är att utvidga och ytterligare utveckla en IoT enhet (bilden ovan) och är uppbyggd kring ESP8266-01 WiFi aktiverat modulen från...

Sakernas Internet kontrollerad Smart lampa/Outlet med spark core och IFTTT

Jag ville ha en natt-lampa som kommer att slå på efter solnedgången och stänga av mitt i natten. Finns på homedepot eller andra järnhandeln timers kan bara ställa in en tid. Eftersom det finns sommartid i USA, fick det bytas. För att lösa detta, är u...

Bakåtkompilera RF fjärrkontrollen för Sakernas Internet!

I detta instructable, lär du hur du återför ingenjör Radio Frequency (RF) fjärrkontroller och implementera i en mycket billig WiFi aktiverat datorn, nod MCU. Med denna teknik kan du IoT aktivera äldre apparater och enheter!Jag köpte denna Harbor Bree...

Återanvända en gammal wifi router för-sakernas internet

Internet-anslutna enheter byggt med Arduino sköldar eller single-board dator som Raspberry Pi och Beaglebone popularitet har exploderat, men för enkla uppgifter som att styra ett relä, läsa en sensor, vattna din trädgård eller belysning LED finns en...

Sakernas Internet | Spåra din dators minne/CPU

Internet of Things (IoT) hänvisar till det växande nätverket av fysiska objekt som har en IP-adress för internet-anslutning och den kommunikation som sker mellan dessa objekt och andra Internet-aktiverade enheter och system. I detta instructable, ser...

Internet möjliggj橬一j kylskåp: En första razzia i sakernas Internet

Hej alla!Jag hade ett problem med frysen i vårt hus. Då och då, frysen skulle misslyckas att stänga helt, antingen studsar öppen eller få något stödd öppen. Denna lilla lucka var nog av en lucka så att varm och fuktig luft inne i frysen. Vattnet skul...

Lei: Sakernas Internet Wi-Fi omgivande lampan

I detta projekt, vi prototyper en 3x3W rgb IoT omgivande lampa som kan styras via internet, med Lelylan och vilken webbläsare som helst i världen.Lampan var från början avsedd att vara kickstarted, men brist på tid och en massa andra saker, vi stanna...

Sakernas Internet aktiverat Egg bricka

detta hackat ägg fack som har själv skrivs ut med 3D-skrivare, håller en sammanräkning av äggen i facket och uppdaterar den live på internet. Sedan visar en stöder Android applikation live scenariot av ägg tillgängligheten. Inte bara detta, men också...

Sakernas Internet: dusch kontroll

Minska varmvatten förbrukning med 40% och har fortfarande en bra dusch.I många år, jag undrar, hur jag att minska dusch tid för mina barn. de har numera, 14, 16 och 18 års ålder. De gillar att duscha i, åtminstone 5-10 min. 8 min är den genomsnittlig...

Installation och konfiguration av OpenHAB. Del 6: Sakernas Internet, Home Automation

FörordSå, om du har följt de tidigare delarna (IoT - "Intranät" saker: Home Automation. Del1: IoT, introduktion och framåt) du kommer att ha dig en IoT nätverk liknar den som visas ovan (bild 2 och 3). I denna del kommer vi lägga sista touch. An...