Arduino
From its website: https://www.arduino.cc/
"Arduino is an open-source electronics platform based on easy-to-use hardware and software. It's intended for anyone making interactive projects."
You should buy a Arduino board and get its software environment. (Arduino Products, Arduino Software) Good news that linux 64bit or 32bit version also available.
1602 LCD
I'm ordering an Arduino board, until arrives I checked the software. I realize that it can use my usbtiny programmer too. On The Internet I have found that there is an addon to use ATTiny45 as a board, so I've installed it.
I'm showing how much easier to use preprogrammed libraries with Arduino. I did the same as previously, write to 1602 LCD. (So you don't need to program how to handle LCD, it's already done. Just include and use it.)
As it did almost everything, I haven't find yet where/how to setup fuse bits, so I used avrdude for that.
// Test program for accessing 1602LCD from ATTiny45 in Arduino sw environment (Tóthpál István, istvan@tothpal.eu)
//
// =================================================================================================
// ATtiny 1602 LCD 4bit interface
// 25/45/85
// +--------+
// RS - PB5 --+ o Vcc +------------ G + G P G P P + G
// D6 - PB3 --+ +-- PB2 - D5 PIN N 5 N B N B B 5 N
// D7 - PB4 --+ +-- PB1 - D4 PIN D V D 5 D 0 1--4 V D
// ------------+ GND +-- PB0 - EN PIN | | | | | | |||| | |
// +--------+ VSS VDD VO RS RW E D0-D7 A K
// =================================================================================================
//
// FUSE: HFUSE: 0x5F - RESET DISABLED; LFUSE: 0xD2 - 8Mhz no_div
//
// The library we need to handle LCD
#include <LiquidCrystal.h>
// rs=pb5, en=pb0, d4=pb1, d5=pb2, d6=pb3, d7=pb4 pins on AVR
LiquidCrystal lcd(5, 0, 1, 2, 3, 4);
int i=0;
void setup()
{
lcd.begin(16, 2); // 16 col 2 row
lcd.clear();
lcd.setCursor(6,0);
lcd.print("TIS");
}
void loop()
{
lcd.setCursor(i,1);
lcd.print(" Hello!");
i++;
if (i>15) {
i=0;
}
delay(500);
}
The minute it arrived I tried the Arduino Nano board. At my Linux nothing had to do, just had to connect to the USB port. I've tried the previous code, only the port numbers had to modify. I connected LCD lines to D0-D7 and the code:
// RS=D0/RXD, EN=PD2, D4=PD4, D5=PD5, D6=PD6, D7=PD7 pins on Arduino Nano
LiquidCrystal lcd(0, 2, 4, 5, 6, 7);
If you would like to change FUSE bits of your Nano board, you may connect the board to an another ISP e.g. USBTiny or another Arduino.
ESP Boards - ESP-12F
First you have to add an addon which will enable installing ESP8266 boards to the IDE: https://create.arduino.cc/projecthub/electropeak/getting-started-w-nodemcu-esp8266-on-arduino-ide-28184f
How to connect explained at Serial Communication page.
Example code, connect to specified Wifi and obtain IP and log to serial console. (The built in led will blink fast while connecting and slow when finished):
// https://arduino-esp8266.readthedocs.io/en/latest/esp8266wifi/readme.html
#include <ESP8266WiFi.h>
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(100);
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(100);
Serial.begin(115200);
Serial.println();
WiFi.begin("your WIFI", "passphrase");
Serial.print("Connecting");
while (WiFi.status() != WL_CONNECTED)
{
digitalWrite(LED_BUILTIN, HIGH); //blink fast while connecting
delay(100);
digitalWrite(LED_BUILTIN, LOW);
delay(100);
Serial.print(".");
}
Serial.println();
Serial.print("Connected, IP address: ");
Serial.println(WiFi.localIP());
}
// the loop function runs over and over again forever
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // blink slow
delay(2000);
digitalWrite(LED_BUILTIN, LOW);
delay(2000);
}