Add push event (P13/PD.5 toggle every 10 sec && send state P13 to BLYNK

server)
master
maxxir_w 7 years ago
parent 476de6c47f
commit df1ef9a57f

@ -693,11 +693,13 @@ uint32_t millis(void)
}
*/
/*
// Time count function; this function have to call by timer (1ms)
void blynk_time_handler(void)
{
blynk_time_1ms++;
}
*/
// Custom delay for checking timeout count
uint8_t blynk_custom_delay(uint32_t delayms)
@ -771,3 +773,14 @@ void blynk_syncAll(void)
{
sendCmd(BLYNK_CMD_HARDWARE_SYNC, 0, NULL, 0, NULL, 0);
}
void blynk_push_pin(uint8_t pin)
{
uint8_t rsp_mem[16];
uint16_t rsp_len;
memset(rsp_mem, 0, sizeof(rsp_mem));
rsp_len = SPRINTF((char *)rsp_mem, "dw %d %d", pin, digitalRead(pin));
replacetonull(rsp_mem, ' ');
sendCmd(BLYNK_CMD_HARDWARE, 0, rsp_mem, rsp_len, NULL, 0);
}

@ -141,5 +141,7 @@ void blynk_run(void);
uint8_t is_blynk_connection_available(void);
void sendCmd(uint8_t cmd, uint16_t id, uint8_t * data, size_t length, uint8_t * data2, size_t length2);
void blynk_syncAll(void);
void blynk_push_pin(uint8_t pin);
#endif

@ -25,6 +25,11 @@ uint8_t digitalRead(uint8_t pin)
val = sw1_read()?0:!0;
PRINTF("SW1 is: %d %s\r\n", val, val?"HIGH":"LOW");
}
else if(pin == 13)
{
val = led2_read()?1:0;
PRINTF("LED2 is: %d %s\r\n", val, val?"HIGH":"LOW");
}
else
{
val = 1;

@ -16,6 +16,7 @@
#include "Ethernet/socket.h"
#include "Ethernet/wizchip_conf.h"
//Shouldn't use here
//******************************* Fat FS declare related: BEGIN
/*
#include "string.h"
@ -44,13 +45,20 @@ extern unsigned long millis(void);
extern int freeRam (void);
//M644P/M1284p Users LEDS:
//LED1/PORTC.4- m644p/m1284p maxxir
//LED1/PORTC.4/20 - m644p/m1284p maxxir brd
#define led1_conf() DDRC |= (1<<DDC4)
#define led1_high() PORTC |= (1<<PORTC4)
#define led1_low() PORTC &= ~(1<<PORTC4)
#define led1_tgl() PORTC ^= (1<<PORTC4)
#define led1_read() (PORTC & (1<<PORTC4))
//LED2/PORTD.5/13 - m644p/m1284p maxxir brd
#define led2_conf() DDRD |= (1<<DDD5)
#define led2_high() PORTD |= (1<<PORTD5)
#define led2_low() PORTD &= ~(1<<PORTD5)
#define led2_tgl() PORTD ^= (1<<PORTD5)
#define led2_read() (PORTD & (1<<PORTD5))
#define sw1_conf() {DDRC &= ~(1<<DDC5); PORTC |= (1<<PORTC5);}
#define sw1_read() (PINC & (1<<PINC5))

@ -65,6 +65,7 @@ uint8_t Domain_IP[4] = {0, }; // Translated IP address by DNS S
* OK (v1.4)Analog Read/Write
* OK (v1.5)Restore pins state on board reboot
* OK ??3.Try fix frequent reconnection with blynk server - every ~22sec may be this OK.
* OK (v1.6) Add push event (P13/PD.5 toggle every 10 sec && send state P13 to BLYNK server)
* Need compare local blynk.c code with modern <blynk> library - (Too old version here - 0.2.1 (On git blynk March 2019 - 0.6.x) )
*
* (3) Trying WIZNET5500 init with using official Wiznet ioLibrary_Driver
@ -100,7 +101,7 @@ volatile unsigned long _millis; // for millis tick !! Overflow every ~49.7 days
//*********Program metrics
const char compile_date[] PROGMEM = __DATE__; // Mmm dd yyyy - Дата компиляции
const char compile_time[] PROGMEM = __TIME__; // hh:mm:ss - Время компиляции
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.5 Static IP BLYNK WIZNET_5500 ETHERNET 14/03/2019\r\n"; // Program name
const char str_prog_name[] PROGMEM = "\r\nAtMega1284p v1.6 Static IP BLYNK WIZNET_5500 ETHERNET 14/03/2019\r\n"; // Program name
#if defined(__AVR_ATmega128__)
const char PROGMEM str_mcu[] = "ATmega128"; //CPU is m128
@ -382,42 +383,12 @@ void IO_LIBRARY_Init(void) {
}
//***************** WIZCHIP INIT: END
/*
void spi_speed_tst(void)
{
// Here on SPI pins: MOSI 400Khz freq out, on SCLK 3.2MhzOUT
while(1)
{
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
SPI_WRITE(0xF0);
}
}
*/
int main()
{
//uint8_t prev_sw1 = 1; // VAR for sw1 pressing detect
// INIT MCU
avr_init();
spi_init(); //SPI Master, MODE0, 4Mhz(DIV4), CS_PB.3=HIGH - suitable for WIZNET 5x00(1/2/5)
//spi_speed_tst(); / Here on SPI pins: MOSI 400Khz freq out, on SCLK 3.2MhzOUT (Witk SPI CLK 4Mhz)
// Print program metrics
@ -499,6 +470,7 @@ int main()
// Test for Ethernet data transfer validation
uint32_t timer_tick_1sec = millis();
uint8_t blynk_restore_connection = 1;
uint8_t timer_led2_push_10sec = 0;
while(1)
{
//Here at least every 1sec
@ -506,17 +478,7 @@ int main()
// Blynk process handler
blynk_run();
//Use Hercules Terminal to check loopback tcp:5000 and udp:3000
/*
* https://www.hw-group.com/software/hercules-setup-utility
* */
//loopback_tcps(SOCK_TCPS,ethBuf0,PORT_TCPS);
//loopback_udps(SOCK_UDPS,ethBuf0,PORT_UDPS);
//loopback_ret = loopback_tcpc(SOCK_TCPS, gDATABUF, destip, destport);
//if(loopback_ret < 0) printf("loopback ret: %ld\r\n", loopback_ret); // TCP Socket Error code
//Here every 1sec
//Here every 1sec event
if((millis()-timer_tick_1sec)> 1000)
{
//here every 1 sec
@ -532,6 +494,14 @@ int main()
blynk_syncAll();
}
}
//Every 10sec event for LED2 PIN13
if(++timer_led2_push_10sec == 10)
{
timer_led2_push_10sec = 0; //Clear timer_led2..
//Every 10sec toggle, and push LED2 PIN13/PD5 state to BLYNK server
led2_tgl();
blynk_push_pin(13);
}
}
}
return 0;
@ -589,6 +559,9 @@ static void avr_init(void)
led1_conf();
led1_low();// LED1 is OFF
led2_conf();
led2_low();//LED2 is OFF
sw1_conf();//SW1 internal pull-up