Gut controleren een Tweeting en Facebooking koelkast (3 / 7 stap)

Stap 3: Arduino Code


De code is gebouwd met "SimpleClient" als een uitgangspunt vanuit asynclabs' code.
Eerst zal ik Toon u alle code en dan breken.
(I vervangen van mijn router belangrijke info met XXXXXXs, net fyi)

=====================================================
/*
* Een eenvoudige schets die WiServer gebruikt om een webpagina
*/
int fsrAnalogPin = 0; FSR is aangesloten op de analoge 0
int fsrReading; de analoge lezen van de FSR weerstand scheidingslijn
Boole hasOpened = false;
Boole hasClosed = false;
Booleaanse isOpen = false;

#include < WiServer.h >

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

Draadloze configuratieparameters---
unsigned char local_ip [] {192,168, X, X} =; IP-adres van de WiShield
unsigned char gateway_ip [] {192,168, X, X} =; router of gateway IP-adres
unsigned char subnet_mask [] = {255,255,255,0}; subnetmasker voor het lokale netwerk
Const prog_char ssid [] PROGMEM = {"XXXXXXXXX"}; Max 32 bytes

unsigned char security_type = 1; 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

WPA/WPA2-wachtwoord
Const prog_char security_passphrase [] PROGMEM = {"XXXXXXX"}; Max 64 tekens

128-bits WEP-sleutels
monster HEX sleutels
prog_uchar wep_keys [PROGMEM] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};

de draadloze modus instellen
infrastructuur - AP verbinden
Adhoc - verbinden met een andere WiFi-apparaat
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
Einde van draadloze configuratieparameters---

Functie waarmee gegevens vanuit de server worden afgedrukt
VOID drukwerk (char * data, int len) {}

Afdrukken van de gegevens die zijn geretourneerd door de server
Merk op dat de data niet null-is afgesloten, kan worden opgesplitst in kleinere pakketten, en
bevat de HTTP-header.
terwijl (len--> 0) {}
Serial.Print(*(Data++));
}
}

uint8 ip2 [] = {XXX, XXX, XXX, XXX};
Een verzoek dat de meest recente METAR weergegevens voor LAX ophaalt
GETrequest getOpened (ip2, 80, "XXXXXX.com", "/ gutcheck/opened.php");

VOID Setup {}
Initialiseren van de WiServer (we passeren NULL voor de functie dienen omdat we niet hoeven te dienen van webpagina's pagina)
WiServer.init(NULL);

Uitgang voor seriële inschakelen en vragen van de WiServer voor het genereren van berichten in het logboek (optioneel)
Serial.begin(57600);
WiServer.enableVerboseMode(true);

Hebben de processData functie aangeroepen wanneer gegevens door de server wordt opgehaald
getOpened.setReturnFunc(printData);

}

void loop {}

fsrReading = analogRead(fsrAnalogPin);
Serial.Print(fsrReading);
Serial.Print("\n");

Als (fsrReading > 200) {}
isOpen = false;
} else {}
isOpen = true;
}

Als (! hasOpened & & isOpen) {}
hasOpened = true;
hasClosed = false;
Serial.Print("OPENED\n");
getOpened.submit();
}
else if (! hasClosed & &! isOpen)
{
hasClosed = true;
hasOpened = false;
Serial.Print("CLOSED\n");
}

WiServer.server_task();
delay(100);
}

===============================================

Nu de verdeling

=========
int fsrAnalogPin = 0; FSR is aangesloten op de analoge 0
int fsrReading; de analoge lezen van de FSR weerstand scheidingslijn
Boole hasOpened = false;
Boole hasClosed = false;
Booleaanse isOpen = false;
=========

fsrAnalogPin stelt de waarden voor de arduino te lezen van de druk-weerstand, het moet worden aangesloten op een analoge pin
fsrReading is voor het lezen van de waarde later.
De Booleaanse variabelen zullen in de loop-functie worden gebruikt om bij te houden wanneer de deur wordt geopend en gesloten.

=========
#include < WiServer.h >

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

Draadloze configuratieparameters---
unsigned char local_ip [] {192,168, X, X} =; IP-adres van de WiShield
unsigned char gateway_ip [] {192,168, X, X} =; router of gateway IP-adres
unsigned char subnet_mask [] = {255,255,255,0}; subnetmasker voor het lokale netwerk
Const prog_char ssid [] PROGMEM = {"XXXXXXXXX"}; Max 32 bytes

unsigned char security_type = 1; 0 - open; 1 - WEP; 2 - WPA; 3 - WPA2

WPA/WPA2-wachtwoord
Const prog_char security_passphrase [] PROGMEM = {"XXXXXXX"}; Max 64 tekens

128-bits WEP-sleutels
monster HEX sleutels
prog_uchar wep_keys [PROGMEM] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};

de draadloze modus instellen
infrastructuur - AP verbinden
Adhoc - verbinden met een andere WiFi-apparaat
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
Einde van draadloze configuratieparameters---
=========

Het moeilijkste gedeelte voor mij kreeg om te werken met mijn router, ik heb een linksys e2000 beschermd met WEP 64-bits en er niet teveel instructies over hoe om het te krijgen om te werken. Het was allemaal een kwestie van uitzoeken wat info ging het veld.

[local_ip] is het IP-adres dat is ingesteld op de arduino, vinden van een IP-adres dat niet wordt gebruikt door de router en stel deze in op die. Mijn router is vrij goed in niet-conflicterende adressen.

[gateway_ip] is meestal het IP-adres kunt u het configureren van uw router instellingen via webbrowser.

subnet_mask [] wat is al ingesteld is vrij typisch van wat ik heb gezien, maar Controleer uw router instellingen gewoon het geval.

[SSID] is wat u uw verbinding genoemd, wat u ziet wanneer u toegang wilt tot de draadloze router uit de lijst met beschikbare draadloze verbindingen met een computer of telefoon.

security_type is het soort zekerheid hebt over het, gebruik ik 1 - WEP
Standaard gebruikt de WiShield code 128-bits codering. Dus in plaats van proberen te wijzigen van de WiShield code, veranderde ik mijn router naar 128-bits codering ook. Het klinkt veiliger hoe dan ook, lol.
Er is informatie in de forums en wiki over hoe dat te veranderen.
En wanneer bewerken in je bent een 128 bits sleutel, moet u de waarden opsplitsen in paren dus bijvoorbeeld:

Uw sleutel: 4F45EEF232...
In de arduino-code: 0x4F, 0x45, 0xEE, 0xF2, 0x32,...
(U zult zien wat ik bedoel als u van een beschermde router gebruikmaakt)

unsigned char wireless_mode = WIRELESS_MODE_INFRA;
zorgt ervoor dat het verbindt met het toegangspunt (router) als een nieuw apparaat, zodat het toegang het internet tot kan.

Alles is gewoon instelling variabelen voor de WiShield te gebruiken.

De wiki en het forum op asynclabs is een geweldige plek om te kijken om te beginnen met het krijgen van uw WiShield te werken.

=========
Functie waarmee gegevens vanuit de server worden afgedrukt
VOID drukwerk (char * data, int len) {}

Afdrukken van de gegevens die zijn geretourneerd door de server
Merk op dat de data niet null-is afgesloten, kan worden opgesplitst in kleinere pakketten, en
bevat de HTTP-header.
terwijl (len--> 0) {}
Serial.Print(*(Data++));
}
}
=========

Deze functie schrijft informatie naar de seriële Monitor in de Arduino IDE, nuttig voor debugging.

=========
uint8 ip2 [] = {XXX, XXX, XXX, XXX};
Een verzoek dat de meest recente METAR weergegevens voor LAX ophaalt
GETrequest getOpened (ip2, 80, "XXXXXX.com", "/ gutcheck/opened.php");
=========

Dit stelt de php-bestanden die de koelkast zal delen. Het PHP bestand reageren op de mededeling van de Arduino te plaatsen op Facebook en/of Twitter. Zij zal later worden uiteengezet.

=========
VOID Setup {}
Initialiseren van de WiServer (we passeren NULL voor de functie dienen omdat we niet hoeven te dienen van webpagina's pagina)
WiServer.init(NULL);

Uitgang voor seriële inschakelen en vragen van de WiServer voor het genereren van berichten in het logboek (optioneel)
Serial.begin(57600);
WiServer.enableVerboseMode(true);

Hebben de processData functie aangeroepen wanneer gegevens door de server wordt opgehaald
getOpened.setReturnFunc(printData);

}
=========

De Setup-functie stelt alle de benodigde variabele voor de weerstand en de mededeling van de WiShield.

=========
void loop {}

fsrReading = analogRead(fsrAnalogPin);
Serial.Print(fsrReading);
Serial.Print("\n");

Als (fsrReading > 200) {}
isOpen = false;
} else {}
isOpen = true;
}

Als (! hasOpened & & isOpen) {}
hasOpened = true;
hasClosed = false;
Serial.Print("OPENED\n");
getOpened.submit();
}
else if (! hasClosed & &! isOpen)
{
hasClosed = true;
hasOpened = false;
Serial.Print("CLOSED\n");
}

WiServer.server_task();
delay(100);
}
========

Dit is de loop-functie waarmee alles wordt uitgevoerd.
fsrReading = analogRead(fsrAnalogPin); Deze eigenschap haalt de huidige waarde van de druk-weerstand.
Vervolgens controleert of de waarde hoog of laag genoeg om te weten als de koelkast wordt geopend of gesloten is.
De volgende reeks van conditionele controleren om te zien of de status van de koelkast om het even welk sinds de laatste lus is gewijzigd.
Als het is gewijzigd, zal het ofwel de getOpened naar het toepasselijke PHP bestand afgeven.

De WiShield-code zal paginaverzoeken rij als u opent en sluit de koelkast snel en herhaaldelijk, maar het is niet noodzakelijkerwijs kogelvrij. Dus gewoon om dat in gedachten te houden.

Ook in eerste instantie had ik de vergelijking van de fsrReading op 0. Maar aangezien de weerstand is geplakt naar beneden, er was een beetje residuele pers links wanneer de deur geopend. Het is goed om open te stellen het seriële display en zie als u wilt dit zelf aanpassen.

Gerelateerde Artikelen

Arduino nano controleren een tandheelkundige vacuüm motor door het controleren van afval vloeistofniveau

Arduino nano controleren een tandheelkundige vacuüm motor door het controleren van afval vloeistofniveau

/ *//////////////                            DESCRIPTION                      ///////////////////////////////////////////////////////////Dit is een toepassing voor controleren een tandheelkundige vacuüm motor.De motor moet een 24 volt signaal (via ee
LinkIt een Tutorial #13 - Stuur een tweet

LinkIt een Tutorial #13 - Stuur een tweet

We kunnen doen sommige echt grote dingen met de LinkIt One. Tot nu toe de LinkIt One niet in staat geweest om de wereld te vertellen.Dat alles is aan het veranderen met deze tutorial.Zullen we de LinkIt één voor het verzenden van een tweet via twitte
Stuur een Tweet met praten

Stuur een Tweet met praten

Dit idee kwam bij me laatste year.ı wilt verzenden van een tweet met praten en ı geprobeerd bijna een dag, maar ä± niet. En vorige week, idee kwam bij me weer. En ı hebben een esp8266 module, ja! I kan doen, en begon om opnieuw te proberen.De volgend
Bouwen van een ultra efficiënte koelkast

Bouwen van een ultra efficiënte koelkast

dit is mijn instructable op het nemen van een gewone koelkast, en waardoor het zeer efficiënte, door gebruik te maken van de koude winterlucht. Ik kreeg dit idee tijdens het werken aan projecten in mijn kelder. Ik heb genoeg gaan op en neer de trap,
Hoe maak je een post op Facebook

Hoe maak je een post op Facebook

* Als yon't Facebook gedownload op uw elektronische hebt downloaden apparaten voor het lezen van de instructies... Downloaden met behulp van uw mobiele apparaat app store (Google Play Store, Apple App Store)* Materialen nodig: Elektronisch apparaat,
Controleren een voetbal

Controleren een voetbal

Beheersing van een bal is zeer essentieel in het voetbal, het zou het verschil tussen het beheersen van een wedstrijd of het weg te gooien, ik speel voetbal voor 7 jaar en ik heb geleerd er zijn drie manieren om de controle van de bal. Er is control
Guts voor een draaibank de goede en goedkope manier (Oland Tool)

Guts voor een draaibank de goede en goedkope manier (Oland Tool)

goede gutsen zijn duur; maar niet zo een! Ik was blij om te ontdekken deze grote DIY draaibank tool. Het heet een Oland gereedschap http://www.aroundthewoods.com/oland.shtml het werd uitgevonden in de jaren 1970 door Knud Oland.Gemeenschappelijke wij
Wolverine of een motief op uw koelkast.

Wolverine of een motief op uw koelkast.

Wilt u meer informatie - zal commentaar en ik een instructable hiervan.Gewoon meten uw koelkast. Hebt u een normale koelkast Oke, is een dubbel-doored leuker.Ga naar De Homepage van de Rasterbator een aanpassen uw foto, monteren van de afgedrukte afb
Maak een foto van Facebook dat Tags al uw vrienden!

Maak een foto van Facebook dat Tags al uw vrienden!

Hier is een cool idee om al je vrienden tag in een FACEBOOK MASHUP!De foto wordt weergegeven op hun tijdlijn en in hun fotoalbum.Stap 1: Upload deze foto: [Sgt. Pepper's Cover foto]http://images.coveralia.com/audio/t/The_Beatles-Sgt_Pepper_s_Lonely_H
Controleren een magneetventiel met een Arduino

Controleren een magneetventiel met een Arduino

Ik moet even vakantie duren, en helaas, terwijl ik geen kinderen heb, heb ik bonsais.Als kinderen, deze kleine beestjes behoefte constante zorg en vooral water.Elke dag.Argh!Waarom kunnen niet zij bier/wijn drinken zelf?Hoe dan ook... Geconfronteerd
Toilet Flush Gamification - Office zwart Opps overleven Tip

Toilet Flush Gamification - Office zwart Opps overleven Tip

Wat is het probleem?Nou, moet ik toegeven dat ik ben een van degenen die graag een plassen in een schone plek. Kantoren openbare urinoirs worden echter heel vaak gebruikt door mensen in zo'n haast om te controleren hun tweeter of facebook account, di
Tweet-a-watt - hoe maak je een gekwetter Energiemeter...

Tweet-a-watt - hoe maak je een gekwetter Energiemeter...

Tweet-a-watt - hoe maak je een gekwetter Energiemeter...Dit project documenten mijn avonturen in het leren hoe aan kabellengte tot mijn huis voor het toezicht op draadloze macht. Ik woon in een gehuurde appartement dus ik heb geen hacken-toegang tot
Tweeting foto's van een Webcam deel 2

Tweeting foto's van een Webcam deel 2

Als u uitcheckt 'Tweeting foto's van een Webcam', we zetten onze Twitter Developer-Account, en gemaakt van een toepassing die een foto naar Twitter post zal wanneer we de "snap" knop raken. Dit is pretty cool, maar nu wat als we wilden om te pos
Hoe tweet van een Arduino met behulp van de wifi-Shield

Hoe tweet van een Arduino met behulp van de wifi-Shield

he, ik ben een grote fan van Instructables. Ik heb het consequent gebruikt voor de afgelopen 3 jaar en nu is het tijd voor mij om te schrijven een zelf.Hier gaan we. Dit instructable is voor degenen die willen een levenloos voorwerp tweet automatisch