Gut kontrollera en Tweeting och Facebooking kylskåp (3 / 7 steg)

Steg 3: Arduino kod



Koden är byggd med "SimpleClient" som utgångspunkt från asynclabs' kod.
Först ska jag visa dig all kod och sedan bryta ner.
(Jag ersatte min router viktig information med XXXXXXs, bara fyi)

=====================================================
/*
* En enkel skiss som använder WiServer för att visa en webbsida
*/
int fsrAnalogPin = 0; FSR är ansluten till analoga 0
int fsrReading; analog läsning från FSR resistor avdelare
booleska hasOpened = false;
booleska hasClosed = false;
booleska isOpen = false;

#include < WiServer.h >

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

Trådlös konfigurationsparametrar---
unsigned char local_ip [] = {192.168, X, X}; IP-adressen för WiShield
unsigned char gateway_ip [] = {192.168, X, X}; routerns eller gatewayens IP-adress
unsigned char subnet_mask [] = {255,255,255,0}. nätmasken för det lokala nätverket
CONST prog_char ssid [] PROGMEM = {"XXXXXXXXX"}; max 32 byte

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

WPA/WPA2-lösenfrasen
CONST prog_char security_passphrase [] PROGMEM = {"XXXXXXX"}; Max 64 tecken

128-bitars WEP-nycklar
prova på HEX nycklar
prog_uchar wep_keys [PROGMEM] = {0xXX 0xXX 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};

setup trådlöst läge
infrastruktur - ansluta till AP
adhoc - Anslut till en annan WiFi-enhet
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
Slutet av trådlösa konfigurationsparametrar---

Funktion som skriver ut data från servern
void printData (char * data, int len) {

Skriva ut data som returneras av servern
Observera att data inte är null-avslutad, kan delas i mindre paket, och
inkluderar HTTP-huvudet.
medan (len--> 0) {
Serial.Print(*(data++));
}
}

uint8 ip2 [] = {XXX, XXX, XXX, XXX};
En begäran som får den senaste METAR väderdata för LAX
GETrequest getOpened (ip2 80, "Congratuations", "/ gutcheck/opened.php");

void setup() {
Initiera WiServer (vi ska passera NULL för sidtillhandahållande funktion eftersom vi inte behöver tjäna webbsidor)
WiServer.init(NULL);

Aktiverar seriella produktionen och be WiServer att generera logga meddelanden (valfritt)
Serial.BEGIN(57600);
WiServer.enableVerboseMode(true);

Har funktionen processData när data returneras av servern
getOpened.setReturnFunc(printData);

}

void loop() {

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

om (fsrReading > 200) {
isOpen = false;
} annat {
isOpen = sant;
}

om (! hasOpened & & isOpen) {
hasOpened = sant;
hasClosed = false;
Serial.Print("OPENED\n");
getOpened.submit();
}
annars om (! hasClosed & &! isOpen)
{
hasClosed = sant;
hasOpened = false;
Serial.Print("CLOSED\n");
}

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

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

Nu fördelningen

=========
int fsrAnalogPin = 0; FSR är ansluten till analoga 0
int fsrReading; analog läsning från FSR resistor avdelare
booleska hasOpened = false;
booleska hasClosed = false;
booleska isOpen = false;
=========

fsrAnalogPin anger värdena för arduino att läsa tryck motståndet, det måste vara ansluten till en Analog stift
fsrReading är för att läsa värdet senare.
De booleska variablerna kommer att användas i loop() funktion att hålla reda på när dörren öppnas och stängs.

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

#define WIRELESS_MODE_INFRA 1
#define WIRELESS_MODE_ADHOC 2

Trådlös konfigurationsparametrar---
unsigned char local_ip [] = {192.168, X, X}; IP-adressen för WiShield
unsigned char gateway_ip [] = {192.168, X, X}; routerns eller gatewayens IP-adress
unsigned char subnet_mask [] = {255,255,255,0}. nätmasken för det lokala nätverket
CONST prog_char ssid [] PROGMEM = {"XXXXXXXXX"}; max 32 byte

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

WPA/WPA2-lösenfrasen
CONST prog_char security_passphrase [] PROGMEM = {"XXXXXXX"}; Max 64 tecken

128-bitars WEP-nycklar
prova på HEX nycklar
prog_uchar wep_keys [PROGMEM] = {0xXX 0xXX 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};

setup trådlöst läge
infrastruktur - ansluta till AP
adhoc - Anslut till en annan WiFi-enhet
unsigned char wireless_mode = WIRELESS_MODE_INFRA;

unsigned char ssid_len;
unsigned char security_passphrase_len;
Slutet av trådlösa konfigurationsparametrar---
=========

Den svåraste delen för mig var att få det att fungera med min router, jag har en linksys e2000 skyddas med WEP 64-bitars och det fanns inte för mycket instruktioner på hur man får det att fungera. Det var allt en fråga om räkna ut vad info gick det fältet.

local_ip [] är IP-adressen som är inställd på arduino, hitta en IP-adress som inte används av routern och sätta den till som. Min router är ganska bra på att inte motstridiga adresser.

gateway_ip [] är vanligtvis IP-adressen du anger routerns inställningar via webbläsare.

subnet_mask [] Vad har redan angetts är ganska typiskt från vad jag har sett, men kontrollera routerns inställningar bara ifall.

SSID [] är vad du kallar din anslutning, vad du ser när du vill komma åt den trådlösa routern från listan över tillgängliga trådlösa anslutningar med en dator eller telefon.

security_type är typ av säkerhet du har på den, jag använda 1 - WEP
Standard använder WiShield koden 128-bitars kryptering. Så istället för att försöka ändra WiShield koden, ändrade jag min router till 128-bitars kryptering också. Det låter säkrare ändå, lol.
Det finns information i forum och wiki om hur man ändrar den.
Och när redigering i du är 128 bitars nyckel, du behöver bryta värdena i par så till exempel:

Din nyckel: 4F45EEF232...
I arduino koden: 0x4F, 0x45, 0xEE, 0xF2, 0x32,...
(Ser du vad jag menar om du använder en skyddad router)

unsigned char wireless_mode = WIRELESS_MODE_INFRA;
ser till att den ansluts till åtkomstpunkten (routern) som en ny enhet så det kan komma åt internet.

Allt annat är bara inställningen variabler för WiShield att använda.

Wiki och Forum på asynclabs är ett bra ställe för att få ditt WiShield att arbeta.

=========
Funktion som skriver ut data från servern
void printData (char * data, int len) {

Skriva ut data som returneras av servern
Observera att data inte är null-avslutad, kan delas i mindre paket, och
inkluderar HTTP-huvudet.
medan (len--> 0) {
Serial.Print(*(data++));
}
}
=========

Denna funktion skriver ut information till den seriella Monitor i Arduino IDE, användbara för felsökning.

=========
uint8 ip2 [] = {XXX, XXX, XXX, XXX};
En begäran som får den senaste METAR väderdata för LAX
GETrequest getOpened (ip2 80, "Congratuations", "/ gutcheck/opened.php");
=========

Detta sätter upp php-filer som kylen kommer till. PHP-filen reagerar på Arduino meddelande till post till Facebook eller Twitter. De kommer att vara detaljerat senare.

=========
void setup() {
Initiera WiServer (vi ska passera NULL för sidtillhandahållande funktion eftersom vi inte behöver tjäna webbsidor)
WiServer.init(NULL);

Aktiverar seriella produktionen och be WiServer att generera logga meddelanden (valfritt)
Serial.BEGIN(57600);
WiServer.enableVerboseMode(true);

Har funktionen processData när data returneras av servern
getOpened.setReturnFunc(printData);

}
=========

Funktionen setup() anger alla nödvändiga variabeln för motstånd och WiShield kommunikation.

=========
void loop() {

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

om (fsrReading > 200) {
isOpen = false;
} annat {
isOpen = sant;
}

om (! hasOpened & & isOpen) {
hasOpened = sant;
hasClosed = false;
Serial.Print("OPENED\n");
getOpened.submit();
}
annars om (! hasClosed & &! isOpen)
{
hasClosed = sant;
hasOpened = false;
Serial.Print("CLOSED\n");
}

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

Detta är den loop() funktionen som driver allt.
fsrReading = analogRead(fsrAnalogPin); blir det aktuella värdet av trycket motståndet.
Sedan kontrollerar den om värdet är hög eller låg för att veta om kylskåpet öppnas eller stängs.
Nästa uppsättning villkorssatser check till se om status för kylskåpet har ändrats något sedan den sista slingan.
Om det har ändrats, kommer det antingen skicka ut getOpened till tillämpliga PHP-filen.

WiShield koden kommer att köa upp sidförfrågningar om du öppnar och stänger kylen snabbt och flera gånger, men det inte är nödvändigtvis skottsäker. Så bara håll detta i åtanke.

Först hade jag också, fsrReading jämföra med 0. Men eftersom motståndet är tejpade ner, var det en liten kvarvarande Tryck vänster när dörren öppnas. Det är bra att öppna upp seriella displayen och se om du behöver justera detta själv.

Se Steg
Relaterade Ämnen

Kontrollera de positiva och negativa

Hej,Denna video förklarar registrering för Matshoof.com , där du kan kontrollera positiva och negativa av någotatt följa på facebook, http://www.facebook.com/Matshoof...

Magnetiska anteckningsbok och penna (kylskåpsmagneter)

denna magnetiska anteckningsbok och penna är perfekt för att göra livsmedelsbutiker listor, ta ner telefonnummer, eller skriva påminnelser till dig medan du är i köket. Detta är ett ganska enkelt projekt som kräver saker som du förmodligen redan.Steg...

Katt och mus kylskåpsmagnet

Här är en oemotståndlig kylskåp magnet som tar minuter att skapa på en laserskärare.Steg 1: Detta kylskåp magnet var klippa ur en bit skrot.188 plywood. Du måste vara mycket noga med att inte förlora musen genom nätet. Klipp ut katt och råtta som vis...

Syndikera din Instructables, foruminlägg och favoriter till Twitter och Facebook

använda RSS-feeds från ditt konto och ett par användbara webbplatser, är det möjligt att syndikera och dela din Instructables, foruminlägg, favoriter och alla resten av din aktivitet på Instructables till Facebook eller Twitter. Detta är ett bra sätt...

Varicap kontrolleras 555 Oscillator och Varicap diod handledning

jag beställt några Varicap dioder för radio experiment men bestämde mig för att lära sig använda dem genom att göra en Varicap LED 555 Flasher. Du bör tänka på att få Varicaps de är verkligen fascinerande.Min Hackerspace fick en awesome paket med rik...

Ombrovision: vintage tv förvandlats till regnväder larm

En lunchrummet i mitt kvarter har en trädgård som är ganska trevligt. Men när det regnar alla går inuti, och sedan när regnduschen är över, alla börjar frågar om det är OK igen för att gå sitta ute igen. Folk som kör lunchrummet tänkte det skulle var...

Crustless Portobello Pizza

KRAFTIGHET av portobello svampar gör denna crustless pizza så tillfredsställande! Stor som en skuld-fri förrätt eller ett mellanmål för en lowcarb diet eller bara för att lägga till grönsaker i din kost.Jag älskar mejeri men mejeri älskar inte mig =...

DIY Photobooth med en ipad

Gifta eller har en händelse och vill ha en kul Fotoautomaten på ditt evenemang? Fotoautomater är stora pengar men du kan göra det på billiga och har något ännu bättre! Vad sägs om en photo booth eller selfie maskin som automatiskt publicerar dina bil...

Nybörjarens guide till ESP8266 och tweeting med ESP8266

Jag lärde mig om Arduino 2 år sedan. Så började jag spela runt med enkla saker som lysdioder, knappar, motorer etc. Då tänkte jag skulle inte det vara häftigt att ansluta för att göra saker som visar dagens väder, aktiekurser, träna timings på en LCD...

Våren rengöring Tips kylskåp ugn mörkar bricka mögel och mer

Hej har alla våren vuxit! Jag fick våren rengöring feber och tänkte jag skulle varna dig. Jag kommer att dela vad rengöring produkter och verktyg jag använder för att få jobbet gjort. Jag kommer att fokusera på våren rengöring metoder med hjälp av da...

Den ultimata Facebook tillägg och Extension Guide

denna guide fungerar bara för Google Chrome, som kan laddas genom att gå till detta länk.Google Chrome har många set ryggar, mest som jag tvivlar på att fixas, men Google Chrome har extensions och tillägg, som du hittar här.Detta Instructable kommer...

Arduino Uno och Visuino: kontrollera Smart Car Robot med Joystick och L298N motorn förarens

Smart Car anger i kombination med L298N Motor drivrutinsmoduler, erbjuder en av de enklaste sätten att göra roboten bilar. L298N Motor Driver modul är lätt att kontrollera med Arduino, och med hjälp av Visuino kan du programmera din bil i sekunder.I...

Arduino kylskåpsmagnet

Du har en vana att lämna anteckningar på kylskåpet, nu ta det digitala och lägga till en Arduino i den.I detta instructable jag ska visa dig hur man gör just detta. Allt du behöver är en Arduino, en LCD-skärm och en Bluetooth-modul att göra detta och...

Arm och Hand gest kontroll i Python

För dem som inte hört talas om Myo innan - det är ett armband som läser de elektriska impulserna från musklerna, låta du styra enheter genom att helt enkelt vinka eller göra en gest med handen.Om du har sett det och vill utveckla på det, kommer du sn...

Tweet-a-watt - hur man gör en kvittrande kraftmätare...

Tweet-a-watt - hur man gör en kvittrande kraftmätare...Detta projekt dokumenterar mina äventyr i att lära hur tråd upp mitt hem för trådlöst strömförsörjning övervakning. Jag bor i en hyrd lägenhet så jag inte har hacka-tillgång till panelen mätaren...

Linux dator tweeting.

Gjort detta för ett bra tag och jag älskar det. Riktiga datorn automation. Detta är en instructable att få din linux dator komma åt twiiter via kommandoraden för att både skicka och ta emot tweets. Fina med detta är det kommer att fungera på ett syst...

STOR bricka Sander: Bygga, använda och Tips

Jag har tappat räkningen för de gånger när jag har varit mitten av projektet och tänkte, vad jag verkligen vill ha nu är en trevlig stor fet disk sander. Med dem kan du göra exakta vinklar i trä och metall. Du kan producera lysande ytterkanten kurvor...

Hur man gör snö Cupcakes och snö is grädde

Det snöar ett par gånger per år där jag bor och vi har redan haft en snöstorm dumpning mer snö än vi har haft i många år. Detta instructable är vad jag har kunnat göra under en snöstorm. . med få ingredienser för att tillfredsställa en socker sug.Ele...

Sova n' Tweet

Steg 1: Den sömn n' Tweet Nu är jag lycklig nog att arbeta på det största företaget i världen som en University of Waterloo, co-op utbytesstudent. Det kanske inte ens är ett företag som du har hört talas om ännu. De är namngivna Upverter och vi försö...