#include<Base64.h>
/****************************************************************************************************
Inclusione librerie
****************************************************************************************************/
#include <JPEGCamera.h>
#include <SoftwareSerial.h>
#include <SD.h>
// Chunk size per salvataggio immagine
#define CHUNK_SIZE 64
/****************************************************************************************************
Definizione pin I/O Arduino
****************************************************************************************************/
// Led scheda Arduino
const int pinBoardLed = 13;
// Pin Arduino Chip Select SD
const int pinSDChipSelect = 4;
// Set up macros for wifi and connection.
#define SSID "Por-WiFi" // SSID
#define PASS "x7777777x" // Network Password
#define HOST "192.168.0.109" // Webhost
/****************************************************************************************************
Variabili programma
****************************************************************************************************/
// Oggetto JPEG Camera
JPEGCamera jpegCamera;
// JPEG file
File jpegFile;
int c;
String s;
// Contatore immagine
byte i = 0;
/****************************************************************************************************
Codice programma
****************************************************************************************************/
// Inizializzazione Scheda
void setup() {
Serial.begin(9600);
connectWiFi();
// Inizializzo I/O
pinMode(pinBoardLed, OUTPUT);
pinMode(pinSDChipSelect, OUTPUT);
// Accendo led Arduino
digitalWrite(pinBoardLed, HIGH);
// Inizializzo JPEG Camera
jpegCamera.begin();
// Init SD
pinMode(10, OUTPUT);
if (!SD.begin(pinSDChipSelect)) {
// Lampeggio led Arduino
for (;;) {
digitalWrite(pinBoardLed, HIGH);
delay(500);
digitalWrite(pinBoardLed, LOW);
delay(500);
}
}
// Spengo led Arduino
digitalWrite(pinBoardLed, LOW);
} // Chiusura funzione setup
// Prepare HTTP request
// Programma Principale
void loop() {
boolean isEnd = false;
uint16_t address = 0x0000;
uint16_t chunkSize = CHUNK_SIZE;
byte body[CHUNK_SIZE];
byte a[10]={1,2,3,4,5,6,7,8,9};
// Imposto dimensione immagine
jpegCamera.setImageSize(jpegCamera.ImageSize320x280);
// Reset JPEG Camera
jpegCamera.reset();
// Scatto immagine
jpegCamera.takePicture();
// Identifico nome file
char fileName[12] = "image00.jpg";
fileName[5] = ((i / 10) + 0x30);
fileName[6] = ((i % 10) + 0x30);
// Apro file
jpegFile = SD.open(fileName, FILE_WRITE);
isEnd = false;
while (isEnd == false) {
jpegCamera.readJpegFileContent(address, chunkSize, body, &isEnd);
address += chunkSize;
// Salvo i dati sul file
jpegFile.write(body, chunkSize);
}
jpegFile.close();
jpegFile = SD.open("image00.jpg",FILE_READ);
uint16_t jpglen = jpegFile.size();
uint16_t extra_length;
Serial.println(jpglen);
Serial.println(jpegFile);
jpegFile.read();
if(jpegFile){
Serial.println(" Not Error ");
while (jpegFile.available()) {
Serial.print(jpegFile.read());
int jpegFile1 = jpegFile.read();
}
}
// close the file:
jpegFile.close();
// Chiudo file
// Fermo immagine
jpegCamera.stopTakingPictures();
//sendData(jpegFile1);
// Attesa
delay(10000);
Serial.print("take");
//void sendData(String jpegFile2) {
delay(1000);
// Set up TCP connection.
String cmd = "AT+CIPSTART=\"TCP\",\"";
cmd += HOST;
cmd += "\",80";
Serial.println(cmd);
delay(2000);
// Send data.
cmd += "POST /add.php"; //Place the link to your PHP script here
cmd += " HTTP/1.1\r\nHost:192.168.0.109\r\n";
cmd += "Content-Type: image/jpeg\r\n";
cmd += "content-disposition: form-data; name=""image""; filename=""image.jpg""";
cmd += "Content-Transfer-Encoding: binary";
cmd += "Content-Length:";
cmd += (cmd.length());
cmd += "/r/n/r/n";
for (int i=0;i<=9; i++){
Serial.write(a, i);
}
Serial.print("AT+CIPSEND=");
Serial.println(cmd.length());
}
boolean connectWiFi() {
Serial.println("AT+CWMODE=1");
delay(2000);
String cmd = "AT+CWJAP=\"";
cmd += SSID;
cmd += "\",\"";
cmd += PASS;
cmd += "\"";
Serial.println(cmd);
delay(5000);
if (Serial.find("OK")) {
Serial.println("Connection");
return true;
}
else {
Serial.println("No Connection");
return false;
}
}
ต้องขออภัยผมยังไม่ได้เล่น ลองดูตามลิงค์นี้ครับ
http://johan.kanflo.com/building-a-low-cost-wifi-camera/
https://www.youtube.com/watch?v=G_WQs602IzA