diff --git a/docs/index.md b/docs/index.md index e04e75d..7b5b308 100644 --- a/docs/index.md +++ b/docs/index.md @@ -91,6 +91,7 @@ hide: 1. From the Barduino? !!! example annotate "22. Let's send it to someone (1)" + [Day 22](solutions/22/22.md) 1. From Barduino with love :love_letter: !!! warning annotate "23. Barduino meets traditions (1)" diff --git a/docs/solutions/22/21.md b/docs/solutions/22/21.md new file mode 100644 index 0000000..f1d382a --- /dev/null +++ b/docs/solutions/22/21.md @@ -0,0 +1,93 @@ +# Day twenty one: + +Now send the message from yesterday to te Telegram group using a bot! You can use te Bot we created if you want, the token is in the code as the groupID. Have fun! + +## Possible solution! + +### Arduino code + +```c++ +#include +#include +#include +#include +#include +#include + + +const char* ssid = "yournetwork"; +const char* password = "yourpassword"; + +#define BOTtoken "6851800826:AAFR3MVc8p9a77InL4mVXcwVaMCmfa96kAs" +#define CHAT_ID "-1002075060951" + +WiFiClientSecure clientTELEGRAM; +UniversalTelegramBot bot(BOTtoken, clientTELEGRAM); + +WiFiClientSecure clientGPT; +ChatGPT chat_gpt(&clientGPT, "v1", "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"); + + +#define PIN 38 +#define NUMPIXELS 1 +Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800); + +String result; + +void setup() { + Serial.begin(115200); + Serial.print("Connecting to WiFi network: "); + Serial.print(ssid); + Serial.println("'..."); + WiFi.begin(ssid, password); + pixels.begin(); + + while (WiFi.status() != WL_CONNECTED) { + Serial.println("Connecting..."); + delay(500); + } + Serial.println("Connected!"); + + clientGPT.setInsecure(); + clientTELEGRAM.setCACert(TELEGRAM_CERTIFICATE_ROOT); // Add root certificate for api.telegram.org + + //bot.sendMessage(CHAT_ID, "Bot started up", ""); +} + +void loop() { + int touch = touchRead(2); + + if(touch>29000){ + pixels.setPixelColor(0, pixels.Color(0, 150, 0)); + pixels.show(); // Send the updated pixel colors to the hardware. + delay(500); // Pause before next pass through loop + }else{ + pixels.setPixelColor(0, pixels.Color(0, 0, 0)); + pixels.show(); // Send the updated pixel colors to the hardware. + delay(500); // Pause before next pass through loop + } + + if(touch>300000){ + Serial.println(touch); + if (chat_gpt.simple_message("gpt-4", "user", "Can you create for me a Christmas card with an ASCII drawing and a text for the Adventronics participants? Signed with love from Josep, please.", result)) { + Serial.println("===OK==="); + Serial.println(result); + bot.sendMessage(CHAT_ID, result, ""); + Serial.println("Telegram message sent!"); + } else { + Serial.println("===ERROR==="); + Serial.println(result); + bot.sendMessage(CHAT_ID, "This is not a ChatGPT message because the API Key is not correct, but Josep's Barduino wish you all HAPPY HOLIDAYS! <3", ""); + Serial.println("Telegram message sent!"); + } + } + Serial.println(touch); + delay(500); +} +``` + +## Hero shot + + \ No newline at end of file diff --git a/docs/video/day22.mp4 b/docs/video/day22.mp4 new file mode 100644 index 0000000..bf7fb1c Binary files /dev/null and b/docs/video/day22.mp4 differ diff --git a/mkdocs.yml b/mkdocs.yml index 4154a21..ece4500 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -34,6 +34,7 @@ nav: - Day 19: solutions/19/19.md - Day 20: solutions/20/20.md - Day 21: solutions/21/21.md + - Day 22: solutions/22/22.md - Solution template: - template.md