Internet gecontroleerde auto (2 / 6 stap)

Stap 2: Programmeren van de Arduino

de Raad sluit aan op de pc en het uploaden van de code om toegang te krijgen tot het internet

#include < EEPROM.h >
#include < Servo.h >
#include < Wire.h >
#include < SERVER328.h >

#include < SPI.h >
#include < Ethernet.h >

Configureerbare gebruikersvariabelen
byte useDhcp = true;
byte useDns = true;
byte mac [] = {0xXX, 0xXX, 0xXX, 0xXX, 0xXX, 0xXX};
char [servernaam] = "us01.proxy.SERVER.org"; Alleen als useDns klopt
unsigned int serverPort = 5353; Kan worden ingesteld 53 of 5353
byte statusLedPin = 8;

Gebruiker configureerbaar sleutel, dit wordt gebruikt voor verificatie met de proxyserver
Dit is getoetst aan de EEPROM op boot en geschreven indien nodig
De proxy server haalt de sleutel uit de EEPROM
byte [key] = {0xXX, 0xXX, 0xXX, 0xXX,
0xXX, 0xXX, 0xXX, 0xXX,
0xXX, 0xXX, 0xXX, 0xXX,
0xXX, 0xXX, 0xXX, 0xXX};

Andere vereiste variabelen
bytegegevens [257];
byte dataLength;
byte hexStage;
unsigned long lastInstruction = 0;
unsigned long lastRefresh = 0;
byte fase = 0;

Client-object declareren
EthernetClient de klant;

VOID Setup
{
Voorinstellingen laden
SERVER.loadPresets();

Status LED pincode instellen
SERVER.setStatusLedPin(statusLedPin);

SERVER.setStatusLed(1); Initialisatie
Controleer de EEPROM kop en controleren om te zien als de sleutel klopt
Dit is om ervoor te zorgen dat de sleutel wordt niet gewist uit de EEPROM
if(EEPROM.Read(0)! = '#')
{
EEPROM.write (0, ' #');
}
if(EEPROM.Read(1)! = 0)
{
EEPROM.write (1, 0);
}
if(EEPROM.Read(2)! = '#')
{
EEPROM.write (2, ' #');
}
if(EEPROM.Read(160)! = '#')
{
EEPROM.write (160, ' #');
}
voor (byte ik = 0; ik < 16; i ++)
{
Als (EEPROM.read(161 + i)! = key[i])
{
EEPROM.write (161 + i, key[i]);
}
}
if(EEPROM.Read(177)! = '#')
{
EEPROM.write (177, ' #');
}

Start netwerk en probeert te verbinden met proxyserver
SERVER.setStatusLed(2); Netwerkconfiguratie
if(useDhcp)
{
if (!. Ethernet.begin(Mac))
{
SERVER.setStatusLed (2, false, 10000);
SERVER.reset();
}
}

delay(1000);

SERVER.setStatusLed(3); Verbinding maken met server
Als (useDns & &! Client.Connect (servernaam, serverPort))
{
SERVER.setStatusLed (3, false, 10000);
SERVER.reset();
}
lastInstruction = millis();
}

void loop
{
if(client.Connected())
{
Wat we moeten doen is afhankelijk van welke 'on-stage' Wij staan
switch(stage)
{
geval van 0: / / Wait voor start byte
if(client.available())
{
char c = Client.read();
Als (c == '?')
{
fase ++;
}
}
breken;
geval 1: / / Reset variabelen
dataLength = 0;
hexStage = 0;
fase ++;
breken;
geval 2: / / instructie byte
if(client.available())
{
char c = Client.read();
Als (c == '?')
{
fase = 1;
breken;
}
anders als (c '\r' == || c == '\n' || c == '.')
{
fase = 0;
breken;
}
if(!hexStage)
{
gegevens [0] = SERVER.hexDecode(c) * 16;
}
anders
{
gegevens [0] += SERVER.hexDecode(c);
}
hexStage =! hexStage;
if(!hexStage)
{
fase ++;
}
}
breken;
Case 3: / / lengte gegevensbyte
if(client.available())
{
char c = Client.read();
Als (c == '?')
{
fase = 1;
breken;
}
anders als (c '\r' == || c == '\n' || c == '.')
{
fase = 0;
breken;
}
if(!hexStage)
{
gegevens [1] = SERVER.hexDecode(c) * 16;
}
anders
{
gegevens [1] += SERVER.hexDecode(c);
}
hexStage =! hexStage;
if(!hexStage)
{
fase ++;
}
}
breken;
geval 4: / / gegevens
if(client.available())
{
char c = Client.read();
Als (c == '?')
{
fase = 1;
breken;
}
anders als (c '\r' == || c == '\n' || c == '.')
{
if(dataLength == data[1])
{
fase ++;
breken;
}
anders
{
fase = 0;
breken;
}
}
if(!hexStage)
{
gegevens [2 + dataLength] = SERVER.hexDecode(c) * 16;
}
anders
{
gegevens [2 + dataLength] += SERVER.hexDecode(c);
}
hexStage =! hexStage;
if(!hexStage)
{
dataLength ++;
}
}
breken;
geval 5: / / instructie uitvoeren en resultaat
SERVER.instruction(data);
Client.write('!');
for (int i = 0; ik < data [1] + 2; i ++)
{
Client.write (SERVER.hexEncode (gegevens [i] / 16));
Client.write (SERVER.hexEncode (gegevens [i] % 16));
}
Client.write('\n');
lastInstruction = millis();
fase = 0;
breken;
}
}
anders
{
SERVER.setStatusLed(10);
SERVER.reset();
}

De instructie time-out is bereikt?
if(Millis() - lastInstruction > 30000)
{
Client.Flush();
Client.stop();
SERVER.setStatusLed(9);
SERVER.reset();
}

Proces worden vernieuwd elke 50 MS
if(Millis() - lastRefresh > = 50)
{
SERVER.pinTimers();
SERVER.shiftRegisterTimers();
SERVER.shiftRegisters();
lastRefresh = millis();
}

Controleren om te zien als reset heeft aangevraagd
SERVER.checkReset();
}

Gerelateerde Artikelen

Internet-gecontroleerde RC auto

Internet-gecontroleerde RC auto

De Internet gecontroleerde RC auto kunt u op afstand rijden rond een kleine rc auto van waar u kan worden en zien waar het heen gaat. Dit is leuk, want je externe kunt onderzoeken welke ruimte u laat het in, of hand over de toetsen - zogezegd - en pe
Internet gecontroleerde lamp met ESP8266 wifi relay IoT

Internet gecontroleerde lamp met ESP8266 wifi relay IoT

ESP8266 wifi relay (ESP01) IoT controle per lampInternet gecontroleerde elektrische lamp met ESP8266 wifi (ESP01) IoTInternet gecontroleerde lamp met ESP8266 wifi relay IoTESP8266 (ESP01) is een zeer goedkope WiFi-transceiver die kan worden toegevoeg
Raspberry PI extern gecontroleerde auto

Raspberry PI extern gecontroleerde auto

Ik kom uit de dagen toen de eerste personal computer met Zilog Z-80 microprocessor werd geboren. Deze dagen hebben we programma codes schrijven in assembler. Het schrijven van programma's in EEPROMs via eeprom branders en bewerken/wissen in EEPROM vi
Internet gecontroleerde Telepresence Robot

Internet gecontroleerde Telepresence Robot

In deze tutorial zal ik u tonen hoe te bouwen van een Internet-gecontroleerde Telepresence Robot met een robotachtig wapen voor onder $100.Stap 1: Basismaterialen Voor deze tutorial zijn er sommige must-have:1. een Arduino board (ik ben met behulp va
Xmas-box: Arduino/ioBridge internet gecontroleerde Kerstverlichting en muziek show

Xmas-box: Arduino/ioBridge internet gecontroleerde Kerstverlichting en muziek show

mijn xmas-box project bestaat uit een internet gecontroleerde Kerstverlichting en muziek show. Een kerstlied kan aangevraagd worden on-line die vervolgens in een wachtrij zetten en speelde in de volgorde waarin die zij werden gevraagd. De muziek word
Eenvoudige Bluetooth gecontroleerde auto

Eenvoudige Bluetooth gecontroleerde auto

Het is een eenvoudige Bluetooth gecontroleerde auto.Het is makkelijk te maken met behulp van de arduino en bluetooth module hc-05.Hoop die u willen maken.Stap 1: Onderdelen die nodig zijn 1. Arduino Atmega8 of een board2. batterijen3. accu klemmen4.
Arduino gecontroleerde auto volgsysteem op basis van SMS

Arduino gecontroleerde auto volgsysteem op basis van SMS

Hi ik een Arduino gecontroleerde auto volgsysteem op basis van SMS voor mijn vaders auto maakte.De gebruikte modules zijn;Arduino nano V3.0SkyLab GPS-moduleWaveCom GSM moduleDe SoftwareSerial bibliotheek, TinyGPS worden gebruikt om te communiceren me
Internet gecontroleerde vis eten Feeder

Internet gecontroleerde vis eten Feeder

Dit is de tutorial drie van de serie, waarbij ik overnemen elektronische apparaten die u normaal met behulp van een Arduino, met het internet via een Vonk Core. In dit instructable ga ik om u te tonen hoe kunt u een internet gecontroleerde Vis eten F
LinKit ONE Internet gecontroleerde Robot!

LinKit ONE Internet gecontroleerde Robot!

In dit instructable, ik zal u tonen hoe maak je een robot internet gecontroleerd. U kunt gebruiken om objecten te verplaatsen over een kamer, of doen andere taken. Ik nam de minder productieve route en joeg mijn hond mee.Stap 1: Onderdelen en Tools D
Infrarood gecontroleerde auto

Infrarood gecontroleerde auto

Dit instructable ontstond vervulling de project-eis van de Makecourse bij de Universiteit van Zuid-Florida (www.makecourse.com)HalloIk ben met de make-up cursus bij de Universiteit van Zuid-Florida. Dit instructable beschikt over mijn project een inf
1ste BM ARDUINO gecontroleerde auto met HC-SR04

1ste BM ARDUINO gecontroleerde auto met HC-SR04

Met dit project wil ik je laten zien de manier op hoe te converteren van een RC auto in een automatisch gecontroleerde auto met Arduino Uno R3.Stap 1: Benodigde materialen: RC auto (met gescheiden achterwiel motors)Arduino Uno R39V battaryDradenUltra
Bouw je Robot Internet gecontroleerde Video-Streaming met Arduino en Raspberry Pi

Bouw je Robot Internet gecontroleerde Video-Streaming met Arduino en Raspberry Pi

< the Instructable en de code zijn klaar. Geniet van! Laat een reactie met je feedback! >Ik ben (aka LiquidCrystalDisplay / Itay), een 14 jaar oude student van Israël leren in de Max Shein Junior High School voor geavanceerde wetenschap en wiskunde.
FPV Internet gecontroleerde speelgoed graafmachine

FPV Internet gecontroleerde speelgoed graafmachine

Het doel was om te zetten van een oude en gebroken RC speelgoed graafmachine in een First Person View aangestuurd via het internet een.Proberen om zoveel mogelijk hergebruiken, en waarbij de kinderen in het proces.Bestuurd vanuit een webbrowser vanaf
Hoe het bouwen van een Internet gecontroleerde Mars Rover

Hoe het bouwen van een Internet gecontroleerde Mars Rover

dit Instructable zal uitleggen alles wat u moet weten om te bouwen van een internet alle terrein robot gecontroleerd. Deze toevallig worden gemodelleerd naar de nieuwsgierigheid van de Mars rover. Deze robot is controleerbaar vanaf elk apparaat dat i